スーパーマリオのゲーム等でよく縦(x軸)や横(y軸)にブロック等が自動で行ったり来たりするコードを書いたのですが「行ったり」は出来てもまた最初の位置に戻る「来たり」が上手くできません。
[SerializeField] private float move; Transform point;
と初めに二つの変数を宣言。
float move 動く速度設定 Transform point 現在の位置情報を取得
void Start () { point = GameObject.FindGameObjectWithTag("Wall").transform; }
pointにタグ付けしたオブジェクトの現在位置を入れる
void Update() { transform.Translate(0, move, 0); if (point.transform.position.y >= 2) { move *= -1; } }
transform.Translate(0, move, 0); 縦(y軸)の動き、つまり上下に動かしたいので、速度設定した変数をy軸に入れる
if文にて現在の位置、y軸が2以上になったら速度の変数に-1をかけて下に下げる。
問題なのはここからで、このあと元に位置に戻ったらまた同じに様に上に向かって動き出すを繰り返すコードがわかりません。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/09/30 07:21