首页 > 解决方案 > 敌人移动不顺畅

问题描述

当我的敌人移动时,他们会从一个位置移动到另一个位置,而不会在两个点之间移动。我希望敌人在两个位置之间顺利移动,我不明白为什么敌人不使用以下代码这样做。

public class UltPatrol : MonoBehaviour
{
    public float speed;
    public Transform Enemypos;
    private float waitTime;
    public float StartwaitTime;
    public float MinX;
    public float MaxX;
    public float MinY;
    public float MaxY;
    private void Start()
    {
        Enemypos = GetComponentInParent<Transform>();
        waitTime = StartwaitTime;
        Enemypos.localPosition = new Vector2(Random.Range(MinX, MaxX), Random.Range(MinY, MaxY));
    }
    private void Update()
    {
        transform.localPosition = Vector2.MoveTowards(transform.localPosition, Enemypos.localPosition, speed * Time.deltaTime);
        if (Vector2.Distance(transform.localPosition, Enemypos.localPosition) <0.2f)
        {
            if (waitTime <= 0)
            {
                Enemypos.localPosition = new Vector2(Random.Range(MinX, MaxX), Random.Range(MinY, MaxY));
                waitTime = StartwaitTime;
            }
            else
            {
                waitTime -= Time.deltaTime;
            }
        }


    }
}

标签: c#unity3d

解决方案


你想让你的游戏看起来像这样吗在此处输入图像描述

我所做的只是删除线

Enemypos = GetComponentInParent<Transform>();

然后在编辑器中,我取消了这两个对象的父级,并在检查器中分配了 Enemypos 的值。


推荐阅读