お久しぶりの更新になりました!!
今日は横スクロールアクションで使うキャラクターの横移動について
Unityでいくつか実装の仕方があるのでまとめてみました
右移動のみについてまとめる
①if文について
void Update()
{
if(Input.GetKeyDown(KeyCode.RightArrow))
{
# ②の右移動の処理の内容を書く
}
}
②右移動の処理について
[やり方1]
transform.Translate(1, 0, 0);
この処理を書くと右に1移動する
Translateは現在の位置からどれだけ動かすかを表すから、
現在位置の座標を参照する必要がなくただ動かしたいだけの時に使える
[やり方2]
Vector3 playerPos; を先に宣言しておく(Update()の外)
this.playerPos = transform.position;
transform.position = new Vector3(playerPos.x + 1, playerPos.y, playerPos.z);
この処理を書くと右に1移動する
まずプレイヤーの現在の座標を取得しplayerPosに情報を入れる
この書き方では移動先の座標を直接指定するため、現在位置の座標が必要になる
[やり方3]
Rigidbody2D rb; を宣言しておく(Update()の外)
キャラクターにRigidbody2D をAdd Componentで追加しておく
this.rb.AddForce(transform.right * 〇〇(強さ));
この処理は物理演算を用いて一定の力を加えて右に動かす
1マスずつ移動するような場合には向いていない(オープンワールドみたいなざっくり移動する感じに向いている)
ほんとは無限に速くならないようにif文で制限を付ける必要あり
以上~!
移動する時の向きの変更の仕方とかも色々やり方がある
キャラクターを移動させるっていうシンプルなことだけでも奥深いね...