如何创建一个对象来跟随我的播放器

时间:2019-06-23 16:11:31

标签: unity3d

我正在寻找一种方法来做这样的事情: Gradius

在此游戏中,宝珠跟随玩家。在球体跟随播放器的Unity中如何做到这一点。

谢谢!

1 个答案:

答案 0 :(得分:0)

我想过的一个简单解决方案是,假设我有一个玩家,并且在开始时将其保持在先前的位置,每当它移动时,它说5个单位,那么我们说跟随它的对象将跟随其先前的位置然后将玩家的先前位置更新为当前位置,然后执行相同的步骤。

我创建了一个简单的测试场景,并按照以下步骤操作:

  • 我已经创建了两个名为Player和FollowPlayer的游戏对象
  • 我已经在下面编写了脚本并将其附加到播放器上

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;
    }
}

  • 然后对于FollowPlayer对象,我已经在下面编写了脚本并将其附加到了

private void Start()
{
    Player.FollowMe += OnFollowMe;
}

private void OnDestroy()
{
    Player.FollowMe -= OnFollowMe;
}

private void OnFollowMe(Vector3 position)
{
    transform.position = position;
}

同样,这是Gladius游戏中遵循逻辑的简单跟随脚本,我相信您可以使用此想法并使它更通用和可用。