モグラ叩きで出てくるような、モグラの動きをつけてみましょう。
地面のエリア内をランダムで移動し、顔を出しては引っ込みます。
座標のランダム移動と、上下運動を順番にくり返すように、スクリプトを作成します。
関連記事:
地面から出たり引っ込んだりする
エリア内でランダム移動する
地面ともぐらの配置
地面を作成します。
Cubeを新規作成し、位置とサイズを変更します。
カプセルを新規作成し、位置を変更します。
シーンビューでは、ちょうどカプセルの頭が隠れて、見えなくなっています。
わかりやすいように、Cubeとカプセルに、それぞれマテリアルカラーをつけました。
メインカメラの配置と回転角を変え、オブジェクト全体が入るようにします。
もぐらたたきの動き
もぐら(Capsule)の動作は、スクリプトで作成します。
MoguraMove.csを作成し、Capsuleに追加します。
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 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class MoguraMove : MonoBehaviour { private float time; private float vecX; private float vecZ; bool isUp; void Start() { isUp = false; } void Update() { time -= Time.deltaTime; if(time <= 0) { vecX = Random.Range(-4.5f, 4.5f); vecZ = Random.Range(-4.5f, 4.5f); this.transform.position = new Vector3(vecX, -1.1f, vecZ); if(!isUp) { isUp = true; StartCoroutine("MoguraUp"); } time = 2.0f; } } IEnumerator MoguraUp() { for (int i=0; i<16; i++) { transform.Translate(0, 0.1f, 0); yield return new WaitForSeconds(0.01f); } for (int i=0; i<16; i++) { transform.Translate(0, -0.1f, 0); yield return new WaitForSeconds(0.01f); } isUp = false; } } |
ゲームプレイしてみましょう。
地面の座標上、4.5×4.5の範囲内で、ランダム移動。
高さ(Y)は常に、-1.1に移動します。
移動した後、コルーチンを使って、徐々に上へ動いてから、下方向へ下がります。
2秒間待った後、またランダム移動を実行し、この一連の動きをくり返します。
関連記事:
地面から出たり引っ込んだりする
エリア内でランダム移動する