2017-02-18 44 views
1

在腳本文件夾「警告類型應該命名空間AssembleCSharp內部聲明」,在資產項下我試圖定義一個簡單的數據類:MonoDevelop的C#在Unity3D試圖理解:

文件:TirggerObject.cs

using UnityEngine; 
public class TriggerObject { 
    public int TriggerID { get; set;} 
    public Vector2 Location { get; set;} 
    public float TriggerRadius { get; set;} 
} 

類的名字有一個與之相關的警告:

:「警告類型裏面應該命名空間‘AssemblyCSharp’聲明」據我可以告訴AssembleCSharp 所在班級 被定義爲。我看到的唯一古怪的是,在MonoDvelop主UI解決方案文件樹顯示類文件:TriggerObject.cs作爲大會「大會-CSHARP」之中。而警告消息稱它爲「AssemblyCSharp」,沒有破折號。

我假設我可以用這個警告過因爲代碼似乎運行。但是,我對Unity的程序集找不到多少東西感到震驚,我無法找到這個確切的警告。我還沒有找到爲什麼這是正確的尚未組裝或如何,我可以把它在正確的組件中的任何明確的解釋。

我討厭不理解警告。

回答

1

這是因爲你的文件在物理上是統一組件內,但這一事實並沒有反映在你的代碼。我擔心這是Unity通過Unity編輯器創建腳本時的「糟糕的自動練習」。當您通過MonoDevelop創建新文件時,命名空間塊將自動生成。

該問題的解決方案是命名塊添加到您的文件:

namespace AssemblyCSharp { 

    using UnityEngine; 

    public class TriggerObject { 
     public int TriggerID { get; set;} 
     public Vector2 Location { get; set;} 
     public float TriggerRadius { get; set;} 
    } 
} 

實際上,你可以將「使用」的命名空間塊內部或外部聲明。 Read more about it here

請注意添加命名空間部分,以一個文件將迫使你修改所有的代碼文件,這取決於(只是由於能見度類)。