【问题标题】:Can not find namespace or data type NavMeshAgent Unity 3d找不到命名空间或数据类型 NavMeshAgent Unity 3d
【发布时间】:2018-05-19 17:33:00
【问题描述】:

我正在尝试在 Visual Studio 中运行简单的 Unity 脚本(作为我的对象的一个​​组件附加)。代码如下:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.AI;

public class BlackPawnParticleSystem : MonoBehaviour {

    // Use this for initialization
    void Start () {
        ParticleSystem ps = GetComponent<ParticleSystem????);
        var em = ps.emission;
        em.enabled = true;

        em.SetBursts(
            new ParticleSystem.Burst[]{
                new ParticleSystem.Burst(2.0f, 100),
                new ParticleSystem.Burst(4.0f, 100)
            });
    }

  // Update is called once per frame
  void Update () {

  }
}

问题是当我运行它时出现错误:“找不到命名空间或数据类型 NavMeshAgent”。我读过简单的 UnityEngine 导入可能存在问题。所以我把它换成了using UnityEngine.AI

但是像 ParticleSystem 和 MonoBehavior 之类的所有类都带有下划线,并显示相同的“找不到命名空间”错误,就像它们不在此命名空间中一样。那么如何定义命名空间导入以正确运行代码?

更新:完整的错误信息是

D:\userdata\Documents\Scene1\Assets\RPG Character Animation Pack\Code\RPGCharacterControllerFREE.cs(21,10,21,22): error CS0246: Can not find namespace or data type NavMeshAgent

【问题讨论】:

    标签: c# visual-studio unity3d namespaces


    【解决方案1】:

    不要删除 UnityEngine 导入,只需在下一行添加 UnityEngine.AI 导入即可。

    using UnityEngine;
    using UnityEngine.AI;
    

    您必须将此导入添加到给出错误的实际文件中,因此在这种情况下,这意味着您需要转到 RPGCharacterControllerFREE.cs 并将 using UnityEngine.AI; 添加到该文件中。

    【讨论】:

    • 即使我只是添加 UnityEngine.AI 我在执行时也会遇到同样的错误。
    • 如果同时导入UnityEngine和UnityEngine.AI,还是会报数据类型缺失错误?
    • 但是如果你只导入UnityEngine.AI而不导入UnityEngine,那么NavMeshAgent不再丢失但其他所有东西都丢失了吗?这不是正确的命名空间行为,我的 Unity 也不是那样的。如果只有UnityEngine.AI 时它没有丢失,那么如果你同时拥有它们就不应该丢失。
    • 它找不到其他所有东西(ParticleSystem、NavMeshAgent、MonoBehavior)和 NavMeshAgent 也
    • 您在此文件中的何处使用 NavMeshAgent?您可以编辑问题以显示给出错误的代码版本吗?
    猜你喜欢
    • 1970-01-01
    • 2015-12-28
    • 1970-01-01
    • 1970-01-01
    • 2013-03-25
    • 2022-09-27
    • 2017-07-12
    • 2011-05-13
    相关资源
    最近更新 更多