前回はロボットを往復させる動きをつけました。
さらにプログラムを追加して、こんな感じでジグザグの動きをつけていきましょう。
しくみは、前回の「行ったり来たり」と全く同じなんですね。

関連記事:
【Unity C#】キャラクターを行ったり来たりさせる
【Unity C#】地面から出たり引っ込んだりする
X座標にマイナスを掛ける
前回はGoback.csで書いたので、これを書き変えていきましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class Goback : MonoBehaviour { int back = 0; int ziguzagu = 0; float moveX = 0.03f; float moveZ = 0.05f; void Update() { Vector3 position = new Vector3(moveX, 0, moveZ); transform.Translate(position); //往復の動き back++; if (back == 250) { back = 0; transform.Rotate(new Vector3(0, 180, 0)); } //ジグザグの動き ziguzagu++; if (ziguzagu == 100) { ziguzagu = 0; moveX *= -1; //-1を掛けて、逆方向に動かす } } } |
ジグザグは横の動き、すなわちX軸の往復運動になります。
変数ziguzaguをカウントして、100に達したときに、マイナスを掛けます。
マイナス方向に進み、また100に達した時点で、マイナスを掛けて、プレス方向へ進む。
これをずっとループさせています。
実行してみましょう。
ロボットがジグザグに動きだしました。
動きのつけかた一つで、ゲームの難しさも調整できますね。
関連記事:
【Unity C#】キャラクターを行ったり来たりさせる
【Unity C#】地面から出たり引っ込んだりする
