常にプレーヤーの後方について行く仕組みを、スクリプトから作成してみましょう。
今回の例では、プレーヤーの子オブジェクトとしてSphere生成。
Sphereはプレーヤーの後方に配置されるように、スクリプトから指定します。
後方について動くPrefabオブジェクト
CubeとSphereを作成し、Sphereをプレハブ化します。
Sphereの元データは削除しておきます。
CubeMove.csを作成し、Cubeに追加します。
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 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class CubeMove : MonoBehaviour { private float speed = 5.0f; public GameObject prefab; void Start() { GameObject childObject = Instantiate(prefab, this.transform); childObject.transform.localPosition = new Vector3(0, 0, -2); } void Update() { if(Input.GetKey("up")) { transform.position += transform.forward * speed * Time.deltaTime; } if(Input.GetKey("down")) { transform.position += transform.forward * -speed * Time.deltaTime; } if(Input.GetKey("right")) { transform.Rotate(0,1,0); } if(Input.GetKey("left")) { transform.Rotate(0,-1,0); } } } |
プレハブのフィールドに、Sphereを入れます。
ゲームプレイして、Sphereを動かしましょう。
Cubeの後方、Z方向に-2離れたところで付いて動きます。
Cubeを見ると、Sphereが子オブジェクトとして存在していることがわかります。