using UnityEngine; public class FollowPosition : MonoBehaviour { public Transform targetTrans; public Transform lookAtTrans; public Vector3 offsetPos; //与本跟随者之间的位置偏移 public bool x, y, z; //是否在对应的轴上进行跟随 Transform selfTrans; Vector3 targetPos; Vector3 curPos; void Start() { selfTrans = transform; } void LateUpdate() { if(targetTrans != null) { targetPos = targetTrans.position; curPos = selfTrans.position; if (x) curPos.x = targetPos.x + offsetPos.x; if (y) curPos.y = targetPos.y + offsetPos.y; if (z) curPos.z = targetPos.z + offsetPos.z; selfTrans.position = curPos; } if(lookAtTrans != null) { selfTrans.LookAt(lookAtTrans.position); } } }
测试的过程及效果如下:
这个时候,当cube的位置发生变化的时候sphere的即跟随运动: