Unity2018入門 最新開発環境による簡単3D&2Dゲーム制作 その4
Chapter 4 2Dゲームを作ってみよう!
今回はスクリプトを記述していきます。
プレイヤーの移動
キー入力によってプレイヤーを移動させます。今回のゲームではプレイヤーは水平方向にしか動けません。なので水平方向に対応する"Horizontal"が入力されたかどうかの処理をUpdate()関数内に記述します。
public float speed = 8f; public float moveableRange = 5.5f; void Update () { transform.Translate(Input.GetAxisRaw( "Horizontal") * speed * Time.deltaTime, 0, 0); transform.position = new Vector2(Mathf.Clamp( transform.position.x, -moveableRange, moveableRange), transform.position.y); }
transform.Translate()でプレイヤの座標を変えています。また、プレイヤーが画面外に出ないようにMathf.Clamp()で移動可能なx座標を制限しています。
移動後の座標を調べているのが少し不思議に思いました。
大砲
大砲の玉をプレハブ化してスクリプトから呼び出します。
// 大砲の発射 void Shot() { // Quaterion.identityでRotationを(0, 0, 0)とする。 GameObject newBullet = Instantiate(cannonBall, spawnPoint.position, Quaternion.identity) as GameObject; newBullet.GetComponent<Rigidbody2D>().AddForce(Vector3.up * power); }
また、砲弾のプレハブに時間で消滅するようなスクリプトを付加しています。
public class DestroyObj : MonoBehaviour { public float deleteTime = 2.0f; // Use this for initialization void Start () { Destroy(gameObject, deleteTime); } // Update is called once per frame void Update () { } }
Unity2018入門 最新開発環境による簡単3D&2Dゲーム制作 (Entertainment&IDEA)
- 作者: 荒川巧也,浅野祐一
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2018/08/22
- メディア: 単行本
- この商品を含むブログを見る
動画
やったこと
4-05: プレイヤーを操作できるようにしよう!
4-06: 砲弾をうてるようにしよう!
感想
挫折しないという方針の下で作られた本なので分かりやすいですね。このままのペースで終わらせたいです。