答案 0 :(得分:0)
我想过的一个简单解决方案是,假设我有一个玩家,并且在开始时将其保持在先前的位置,每当它移动时,它说5个单位,那么我们说跟随它的对象将跟随其先前的位置然后将玩家的先前位置更新为当前位置,然后执行相同的步骤。
我创建了一个简单的测试场景,并按照以下步骤操作:
public static event Action<Vector3> FollowMe;
[SerializeField] private float _followDistance;
private Vector3 _previousPosition;
private void Start()
{
_previousPosition = transform.position;
}
private void Update()
{
if(Vector3.Distance(transform.position,_previousPosition) > _followDistance)
{
if(FollowMe != null)
{
FollowMe.Invoke(_previousPosition);
}
_previousPosition = transform.position;
}
}
private void Start()
{
Player.FollowMe += OnFollowMe;
}
private void OnDestroy()
{
Player.FollowMe -= OnFollowMe;
}
private void OnFollowMe(Vector3 position)
{
transform.position = position;
}
同样,这是Gladius游戏中遵循逻辑的简单跟随脚本,我相信您可以使用此想法并使它更通用和可用。