Unity ランゲームを作ろう④、ステージの作り方と動く障害物の作成 3Dゲーム作り⑧
今回は、ランゲームのスコア実装の前にステージの作って
いく方法と、動く障害物を取り入れるちょっとした技法の紹介です。
ステージの作り方と動く障害物の作成!
※前回の続きからの作成になっていてスクリプトの内容で
行う手順が少し変わってくるので是非参考にしてください。
www.unityprogram.info
※前回作ったStage1のプレハブは一度削除して新しく作っていきます。
ProjectのAsset内にあるNejikoRun-master⇨Assets⇨①Prefabsをクリックして
②DefaultStageをScene内にドラッグ&ドロップしてください。
※一応NejikoRunのアセットリンクを貼っておきます。
このアセットを使わなくてもCubeで地面のように作成してプレハブ化して使っても構いません。
Nejiko Run - UnityList
名前をStage1に変更して、分かりやすく編集出来るように、
Inspector内にあるTransformの
PositionのXを15にしてY,Zは0にします。
※地面のオブジェクトのデザインが変わっていますが後ほどこの手順をやっていきます。
次はステージの色を変更するために、アセットを使用していきます。
アセットストアから『Yughues Free Metal Materials』と検索して
ダウンロード、インポートしてください。
※リンクは下記に貼っておきます。
assetstore.unity.com
Project内に先程インポートした①Metal texturs packの
▶︎をクリックするとたくさん出てくるので、その中で
自分が変えたい色を選んで、②の丸い形をしたMaterialを
Hierarchy内のStage1の中にある③Groundにドラッグ&ドロップしてください。
そうするとStage1共に前回の続きからやっている人は
全部のStageの色が反映されていると思います。
※全部変わったのは、プレハブ自体の変更をして適用されたからです。
今度は敵キャラクターを新しく用意していきます。
また、アセットストアから『LowPoly Fantasy Monsters Pack 』と
検索してダウンロード、インポートしてください。
※ブラウザからのリンクは下記に貼っておきます。
assetstore.unity.com
Project内の先程インポートしたLowPoly Fantasy Monster⇨①Prefabsをクリックして、
②goblin_01_MecanimをHierarchy内にある③Stage1にドラッグ&ドロップして子要素にしてください。
※一個上のゴブリンはMoveスクリプトが付いていて一緒に動いてしまうので
使う際はスクリプトを削除して使ってください。
④のように自分が配置したい所に動かしましょう。
InspectorのTransform⇨Positionの値を0にすると動かしやすいです。
goblin_01_MecanimのInspector内にある
⑤のTagをRoboに変更しましょう。
コレは前回のダメージ判定で当たるオブジェクトのタグがRoboの
オブジェクトをスクリプトで指定してある為です。
Transform内の⑥PositionのYの値を180にしてゲームが進行した時に
敵キャラクターがコチラを向くようにします。
敵キャラクターを設置していくにあたって
敵キャラクターに付いているSphere Colliderのコライダと
接触する事によってメインキャラクターがダメージを受ける
設定になっていて、コライダが大きすぎてダメージ処理をしてしまったので
Inspectorから②Sphere Colliderの値を変更しました。
自分が好みように大きさを設定してみてください。
今度はジャンプして避ける障害物を作っていきます。
Hierarchy内の①+⇨3D Object⇨Cubeを選択して、
②Cubeを作成したら、Stage1にドラッグ&ドロップして子要素にします。
次にProject内にある③Metal textures Packの中から
好きなものを選んで④のマテリアルをCubeにドラッグ&ドロップして
色を変えていきましょう。
CubeのInspectorの⑤のTagを忘れずにRoboに変更しましょう。
TransformのRotationのYは変更しなくて大丈夫です。
⑥のScaleのX⇨6、Y⇨1、Z⇨0に変更して形を⑦のような
ハードルみたいにします。
後は好きな所に設置してください。
さあ!いよいよ動かすオブジェクトの作成です!
今度も、Hierarchy内の
Cubeを作成⇨Stage1にドラッグ&ドロップして②のようにします。
画像ではStage4と表記してありますが、ステージを4つ作っていたからなので
あまり気にしないでください。
Inspector内のタグをRoboに変更を忘れずに。
かく言う僕は結構忘れてました。
TransformのScaleの値を③のように、
縦長のCubeにします。
色はお好みでマテリアルをつけてください。
今度はCubeを動かすスクリプトを作っていきます。
Project内の自分の好きな所で右クリック⇨Create⇨C# Scriptから
名前をCubeSideにして④のスクリプトを作成します。
次のコードをコピー&ペーストするか同じ記述にしてください。
using System.Collections; using System.Collections.Generic; using UnityEngine; public class CubeSide : MonoBehaviour { //float型を変数moveStateで宣言します。 public float moveState; //float型を変数speedで宣言します。 public float speed; //Vector3型を変数vectorで宣言します。 Vector3 vector; void Start() { //初期位置を保存します。 vector = transform.localPosition; } void Update() { //x軸に移動する移動範囲とスピードの計算をします。 float x = moveState * Mathf.Sin(Time.time * speed); //割当られた数値を元にx軸のポジションを決定します。 transform.localPosition = vector + new Vector3(x, 0, 0); } }
出来上がった④のスクリプトをCubeにドラッグ&ドロップしてアタッチします。
CubeのInspectorからスクリプトの設置をします。
Move Stateを2にしてSpeedを1に変更しましょう。
Move Stateは2の場合右に2進んで左に2進む往復をします。
オブジェクトを配置する位置はなるべく中央のほうが
僕はいいと思います。
後は好みで色々いじってみてください。
ステージが出来上がったら、①Stage1をProjectのアセット内に
ドラッグ&ドロップしてOriginal Prefabとして新しくプレハブ化しましょう。
こような手順で続けてStage2、Stage3と作成してプレハブ化してください。
最後にHierarchy内にあるStageをクリックして、
Inspector内にある、③Stage TipsのSizeを3にして、
プレハブ化したステージをそれぞれドラッグ&ドロップして完成です。
ステージはそれぞれランダムで出現します。
それでは再生してみましょう!
人生避けるので精一杯!
時には壁にぶつかってダメージ受けたり。
道中モンスターを仲間にせたり皆さんの人生色々あると思います。
頑張りましょう!
ご視聴ありがとうございました。
今日のゆうきさんのゲーム実況!
関連記事
※本格的に3Dゲームを作っていきたい方は下記カテゴリを参考にしてください。www.unityprogram.info
※オススメの無料アセットは下記カテゴリより。便利なアセットが有ます。
www.unityprogram.info
※Unityを学習していきたい方は下記カテゴリを覗いて見てください。
www.unityprogram.info
※実際に使って読んでみたオススメの本は下記カテゴリからご覧ください。
www.unityprogram.info
※初心者に向けた簡単な記事は下記カテゴリより。
www.unityprogram.info