オブジェクトをある座標まで移動させるのに、今回はUpdate()を使用せずに動かしてみましょう。
Cubeが上がっていって、Y座標3の位置まで来ればストップします。
whileを使った条件文とコルーチンで、ゆっくりとした動きをつけています。
関連記事:
約1秒かけてオブジェクトをゆっくり移動させる
特定の座標で移動を止める
4つの座標で回転して四角形に動く
触れると他の位置へワープする
キーを押すと特定の位置にワープ
2つのオブジェクトを順繰りで動かす
3地点で方向転換しながら移動し続ける
ある座標まで来ればストップ
Cubeを作成します。
CubeUp.csを作成し、Cubeに追加します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class CubeUp : MonoBehaviour { private Vector3 pos; void Start() { StartCoroutine("MoveUp"); } IEnumerator MoveUp() { while (pos.y < 3.0f) { pos = transform.position; transform.Translate(0, 0.02f, 0); yield return new WaitForSeconds(0.01f); } } } |
プレイしてみましょう。
スタートのタイミングで、MoveUpのコルーチンを実行。
Y座標が3未満であれば、0.01秒おきに0.02ずつ上昇します。
関連記事:
約1秒かけてオブジェクトをゆっくり移動させる
特定の座標で移動を止める
4つの座標で回転して四角形に動く
触れると他の位置へワープする
キーを押すと特定の位置にワープ
2つのオブジェクトを順繰りで動かす
3地点で方向転換しながら移動し続ける