【问题标题】:Enemies aren't moving in my tower defense game in Unity 3D C#敌人在我的 Unity 3D C# 塔防游戏中没有移动#
【发布时间】:2022-12-01 17:32:05
【问题描述】:

我最近开始使用 Unity,并决定在 Youtube 上关注 Brackey 的塔防游戏教程。在第 2 部分之后,(https://www.youtube.com/watch?v=aFxucZQ_5E4&list=PLPV2KyIb3jR4u5jX8za5iU1cqnQPmbzG0&index=2) 敌人没有移动。奇怪的是,Unity 控制台中没有显示任何错误。我只有 2 个脚本,如下所示。

航点脚本:

using UnityEngine;

public class Waypoints : MonoBehaviour {

   public static Transform[] points;

   void Awake ()
   {
        points = new Transform[transform.childCount];
            for (int i = 0; i < points.Length; i++)
        {
            points[i] = transform.GetChild(i);
        }
   }

}

敌人脚本:

using UnityEngine;

public class Enemy : MonoBehaviour {

    public float speed = 10f;

    private Transform target;
    private int wavepointindex = 0;

    void Start ()
    {
            target = Waypoints.points[0];
    }

    void update ()
    {
        Vector3 dir = target.position - transform.position;
        transform.Translate(dir.normalized * speed * Time.deltaTime, Space.World);

        if (Vector3.Distance(transform.position, target.position) <= 0.4f)
        {
            GetNextWaypoint();
        }
    }

    void GetNextWaypoint()
    {
        if (wavepointindex >= Waypoints.points.Length - 1)
        {
            Destroy(gameObject);
            return;
        }
        wavepointindex++;
        target = Waypoints.points[wavepointindex];
    }

}

我已确保 Waypoints 脚本仅在名为“Waypoints”的父级中,其中包含所有 Waypoints。 我的敌人脚本被添加到我场景中的敌人。 我已经多次检查 Youtube 教程以确保代码相同。 Waypoints 脚本在 Enemy 脚本之前运行。我已通过转到“编辑”>“项目设置”>“脚本执行顺序”来确保这一点。 敌人只是静止不动。似乎没有任何效果,请帮助我。谢谢。

【问题讨论】:

    标签: c# unity3d


    【解决方案1】:

    我认为这是因为您的 update() 函数是小写的。

    试试这样写:

    void Update(){
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-22
      • 1970-01-01
      相关资源
      最近更新 更多