初心者目線で知識0から始めるUnity開発第三弾。 前回はアセットストアで必要物資を調達できたので、
今回は大事なステージ・当たり判定作成編 !
ステージの土台作り
前回までで一通りヒヨコの調教が終わったので、次はステージとそれらに対する当たり判定を作っていきます。
まずは実際に土台となるオブジェクトを作る為HierarchyからCubeオブジェクトを作成し、InspectorのTransformを微調整。で、BoxColliderをRemove Componentで削除します。
削除できたら Inspector最下部 Add ComponentからPhysics 2D→Box Collider 2Dを追加します。
※追加するだけでOK
更に、ヒヨコに当たり判定を付けるべくヒヨコにもAdd ComponentからPhysics 2D→ Circle Collider 2Dを追加してやります。
これでヒヨコと土台に当たり判定が付いたので、実行するとお互いがすり抜けず反発してくれるようになり、こんな感じになります↓
KAWAII is Justice
障害物をつくる
HierarchyからCreate→3D Object→Quadを2つ作成します。
追加出来たら先程と同じ要領でInspectorのTransformを微調整して、MeshColliderをRemove Componentで削除。
その後Box Collider 2Dを追加します。※2つとも
これで当たり判定が付き壁となり、ヒヨコの飛翔を妨げる役割になります。
カメラの調整
実際にアプリとしてリリースした時に、ユーザーの視点は左下のゲームビューになります。
今の状態だとカメラが追従していない状態なのでゲームになってません。のでヒヨコを追っかける為にProjectタブすぐ下のCreateからC# Scriptを選択し、下記を入力します。※スクリプトの名前をCameraWork に変更しています。
public class CameraWork : MonoBehaviour {
// 変数の定義
private Transform target;
// シーン開始時に一度だけ呼ばれる関数
void Start(){
// 変数にPlayerオブジェクトのtransformコンポーネントを代入
target = GameObject.Find("Player").transform;
}
// シーン中にフレーム毎に呼ばれる関数
void Update () {
// カメラのx座標をPlayerオブジェクトのx座標から取得y座標とz座標は現在の状態を維持
transform.position = new Vector3(target.position.x, transform.position.y, transform.position.z);
}
}
↓下記を参考にさせて頂きました。
出来上がったらProjectタブにいるこの CameraWork スクリプトをメインカメラにドラッグアンドドロップしてやります。
するとカメラがヒヨコだけを見つめるようになり、ゲームビューでもそれっぽくなります。
障害物と地面にテクスチャを付ける
ここまでで大分ステージ感は芽生えてきましたが、まだ黒一色の地面と壁のままなのでテクスチャを変えます。
一旦テクスチャはインポートしたパックの中に含まれているものを使います。
Project→Assets→SpritePackに色々入ってます。
まずは scene_01_blockTop を適用させたいと思うので、こいつをクリックしてWrap ModeをRepeatにしましょう。
これをしないと画像が引き延ばされてとんでもないことになります。逆に伸ばしたい時はいじんなくてOK。
で、このscene_01_blockTopをQuadに適用したいと思います。
やり方はめちゃシンプル。Projectの画像をSceneの適用したいオブジェクトにドラッグアンドドロップ。
すると暗くて分かり辛いけどSceneに反映され、Inspectorのとこにも勝手に項目が増えます。で、この勝手に増えた項目のShaderをUnlit/Textureへ変更します。すると画像が明るくなりました。けど画像がお伸びになられてしまってます。
これは今変更したShaderの左の三角を押すと出てくるTilingの値を変更する事で解消されます。
その枠の中に何個配置すんのかって設定なのでサイズ感とかは感覚値でOK。
同じ要領でQuad (1)にscene_01_blockDownを適用して、Cubeにscene_01_cradleを適用して動かすとこんな感じ↓
次回予告
次回は背景と障害物の繰り返し動作をやって見ようと思います(ᵔᴥᵔ)
コメント