オブジェクトを階層化(親子関係の設定)をすれば、簡単に任意のオブジェクトに追従させることができます。しかし、階層化すると親オブジェクトのスケールや回転も同時に影響を受けてしまいます。
目標とするターゲットと指定した距離を保って追従するスクリプトを作成しました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
using UnityEngine; using System.Collections; public class Follow : MonoBehaviour { public GameObject objTarget; public Vector3 offset; void Start () { updatePostion(); } void LateUpdate () { updatePostion(); } void updatePostion() { Vector3 pos = objTarget.transform.localPosition; transform.localPosition = pos + offset; } } |
Inspectorで目標とするオブジェクトと、保つ距離を指定します。
LateUpdate()を使っているのは、目標とするオブジェクトの更新が終わった後で位置を更新したい為です。
※このスクリプトは、目標とするオブジェクトのlocalPositionを参照して追従します。スクリプトを適用するオブジェクトと目標とするオブジェクトが同一の座標系(階層)にあり、目標とするオブジェクト自体が移動した場合にのみ動作します。
コメントを残す
コメントを投稿するにはログインしてください。