今日はキャラクターを操作します。背景を動かす方法まで行く予定でしたが、思いのほかボリュームがありそうなので、一旦まとめました。
(#2~#4をまとめた内容をアップしました)
tomo-mana.hatenablog.com
今のオブジェクトの位置
参考
https://atoz-gamedia.com/2018/11/10/2daction-sample-2/atoz-gamedia.com
インターフェース
GetComponent
使用例
public class Player : MonoBehaviour { int speed = 0.01f; void Update() { Vector3 pos; pos = GetComponent<Transform>().position; pos.x = pos.x + speed; GetComponent<Transform>().position = pos; } }
参考
GetComponent
https://www.sejuku.net/blog/51251
十字キーによる操作
キーの取得
インターフェース
Input.GetKey(KeyCode.LeftArrow) // 押している間ずっと
Input.GetKeyUp(KeyCode.LeftArrow) // 離した時
Input.GetKeyDown(KeyCode.LeftArrow) // 押した時
オブジェクトの移動
GetComponent
this.transform.Translate(x, y, z);
使用例
public class Player : MonoBehaviour { void Update() { if (Input.GetKeyDown(KeyCode.LeftArrow)){ this.transform.Translate(-0.1f, 0.0f, 0.0f); } if (Input.GetKeyDown(KeyCode.RightArrow)){ this.transform.Translate(0.1f, 0.0f, 0.0f); } if (Input.GetKeyDown(KeyCode.UpArrow)){ this.transform.Translate(0.0f, 0.1f, 0.0f); } if (Input.GetKeyDown(KeyCode.DownArrow)){ this.transform.Translate(0.0f, -0.1f, 0.0f); } } }
気づいたこと
※GetKey()で実装すると、Update()の頻度で移動速度が変わります
※GetKeyDown()で実装すると、ボタンを押した回数だけ移動します
次にやること
背景の移動は、一枚絵をスクロール(シューティングゲーム系)やタイルマップ(RPG系)などいくつか方法がありそうです。
最初に知りたいのはRPG方式なので、タイルマップを調べます。