クレーンゲームのように、キーを押すとゆっくりと降りて、離すと上昇していく動きを作ってみましょう。
今回の例では、左右キーでプレーヤーであるCubeを横移動。
Sphereもついて行きますが、スペースキーを押せば下方向に動き、離せば元の位置に向かって上がっていきます。
一つのキーで上昇と下降
CubeとSphereを作成し、それぞれの次のように配置しました。
ゲームビューではこのように見えています。
CubeMove.csを作成し、Cubeに追加します。
CubeMove.csを記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class CubeMove : MonoBehaviour { private int cubeSpeed = 5; void Update() { float dx = Input.GetAxis("Horizontal") * Time.deltaTime * cubeSpeed; transform.position = new Vector3 (transform.position.x + dx, transform.position.y, 0); } } |
SphereMove.csを作成し、Sphereに追加します。
SphereMove.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 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class SpehreMove : MonoBehaviour { private int upDownSpeed = 3; public Transform cubePos; void Update() { transform.position = new Vector3(cubePos.position.x, transform.position.y,transform.position.z); if(Input.GetKey("space")) { transform.Translate(Vector3.up * Time.deltaTime * -upDownSpeed); } else { if(this.transform.position.y < 3) { transform.Translate(Vector3.up * Time.deltaTime * upDownSpeed); } } } } |
CubePosに、Cubeオブジェクトを入れます。
ゲームプレイしてみましょう。
左右キーで移動し、スペースキーを押せばSphereオブジェクトが下降、離せば上昇。
クレーンの上下移動のような動きができました。