簡體   English   中英

如何統一修復“找不到類型或命名空間名稱”錯誤?

[英]How to fix 'The type or namespace name could not be found ' error in unity?

我在 Unity 5 中設置了一個新的可編寫腳本的 object,當我嘗試設置對它的引用時,出現錯誤:'找不到類型或命名空間名稱'ES'(您是否缺少 using 指令或裝配參考?

可編寫腳本的 object 腳本:

 using System.Collections; using System.Collections.Generic; using UnityEngine; [CreateAssetMenu(fileName = "new ES", menuName = "ES")] public class LAMP: ScriptableObject { public int groupNum; void Start() { groupNum = 1; } }

monobehavior 腳本中的參考:

 using System.Collections; using System.Collections.Generic; using UnityEngine; public class Bout: MonoBehaviour { public ES et; // Use this for initialization void Start() { } // Update is called once per frame void Update() { } }

這是一個名稱空間錯誤,如果您使用沖突變量,您將面臨此錯誤。

使用 My.Players.namespace;

在您的文件 Bout.cs 中,您嘗試創建 ES 類型的變量“et”,但 ES 類型不存在,您可能想要創建 LAMP?

 public class Bout: MonoBehaviour { public LAMP et; // Use this for initialization void Start() {

創建一個名為 ES (fileName = "new ES") 的可編寫腳本的 object 文件並不意味着它的類型是 ES,它采用 class 的類型,即 LAMP

我在運行時嘗試將腳本組件添加到游戲對象時遇到了同樣的錯誤。 通過以下格式修復它:

 GameObject.AddComponent(typeof(namespace.className));

The The type or namespace name 'xxxx' could not be found的含義是因為您嘗試使用不存在的 class,或者您沒有使用 class 所在的命名空間。

您遇到的問題是您正在嘗試使用不存在的東西。

您正在嘗試創建一個名為 ES 的可編寫腳本的 object,但創建一個名為 ES 的 class 完全不同。

如果您創建 class ES,您將看到錯誤消失。

剛剛遇到這個錯誤,這是關於它的頂級 SO 帖子,所以我將在這里發布我的修復:

我們引入了單元測試,它要求每個“組”相關腳本都有.asmdef 在我們這個特定的例子中,原始開發人員擁有一個包含在自動生成文件夾(ROS 消息)中的腳本的.asmdef文件,該文件夾被設置為被 Git 忽略。

他推送了代碼,Git 忽略了 AutoGenerated 文件的.asmdef文件,然后因為我們使用的是.asmdef文件並且該文件夾未包含在我的盒子中,我的 Unity “找不到”那里的文件。

也可能是您的問題,但是 100 次中有 99 次出現此錯誤,因為您拼錯了 class 名稱 - 大寫很重要 在 OP 的情況下,特別是實際的 class 是LAMP ,即使它在 AssetMenu 中被稱為ES 而不是public ES et; OP 應該有public LAMP et; 然后它會起作用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM