十字キー操作で、およそ1秒間で一定方向に動くしくみをつくってみましょう。
UPキーで前にゆっくり移動、DOWNキーで後ろにゆっくり移動。
前回に続き、迷路のプレーヤー操作で使えそうですね。
前回記事:
約1秒間かけて90°回転
関連記事:
0.1秒おきにゆっくり拡大
空間の中でクリックした位置へ行く
十字キーで1マスだけ移動する
1秒おきにランダムで回転角を変える
前後移動のスクリプト
Cubeオブジェクトを作成し、CubeMove.csを追加します。
CubeMove.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 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class CubeMove : MonoBehaviour { //移動中かどうか bool coroutineBool = false; void Update() { if(Input.GetKeyDown("up")) { //移動中ではない場合は実行 if (!coroutineBool) { coroutineBool = true; StartCoroutine("MoveForward"); } } if(Input.GetKeyDown("down")) { //移動中ではない場合は実行 if (!coroutineBool) { coroutineBool = true; StartCoroutine("MoveBack"); } } } //約1秒かけて前に進む IEnumerator MoveForward() { for (int i=0; i<100; i++) { transform.Translate(0, 0, 0.02f); yield return new WaitForSeconds(0.01f); } coroutineBool = false; } //約1秒かけて後ろに進む IEnumerator MoveBack() { for (int i=0; i<100; i++) { transform.Translate(0, 0, -0.02f); yield return new WaitForSeconds(0.01f); } coroutineBool = false; } } |
プレイしてみましょう。
上キーでゆっくり前進して約1秒でストップ。
下キーも同じようにゆっくり後退していきます。
0.01秒間隔を100回くりかえすということで、およそ1秒かけて移動していきます。
前回記事の「約1秒間かけて90°回転」と組み合わせれば、キューブ型ゲームの操作でも利用できそうです。
前回記事:
約1秒間かけて90°回転
関連記事:
0.1秒おきにゆっくり拡大
空間の中でクリックした位置へ行く
十字キーで1マスだけ移動する
1秒おきにランダムで回転角を変える