2016-11-09 68 views
1

我使用Unity 5.4.2f2個人,我已經寫了類似如下的C#腳本:使用嵌套類爲Unity3D組件

using UnityEngine; 
using System; 

public class Outer : MonoBehaviour { 

    // Some public outer fields 

    public class Inner : MonoBehaviour { 
     // Some public inner fields 
    } 

} 

我希望能夠既OuterInner重視GameObjects在我的場景中。不幸的是,Inner不會顯示爲Unity Inspector中的可用腳本,即使我向其中添加了[Serializable]。我知道很多人可能會說我的設置有問題,如果我試圖讓外部世界可見的嵌套類,但爲了這個問題,我只想知道這個是否可以是完成。也就是說,有沒有辦法讓嵌套類可以用作Unity組件?

回答

3

不,沒有辦法將嵌套類用作統一組件。要將MonoBehaviour類用作統一組件,類名必須必須與腳本的文件名相同,因此使用嵌套類將不可能。

如果您將外部類重命名爲您想要的任何其他名稱,而無需重命名腳本文件,您將看到無法使用新的外部類。

[編輯]

我發現documentation。正如我所說: 「類名和文件名必須相同才能將腳本組件附加到GameObject上。」

+0

感謝您的回答!我在Unity Answers上發現了一個似乎與您同意的問題(下面的鏈接),但在文檔中找不到任何官方提及的此規則。你偶然有鏈接嗎? http://answers.unity3d.com/questions/497914/does-every-c-class-need-to-have-its-own-script-wit.html – Rabadash8820

+0

當我看到你的問題,我搜索統一文件,但我也找不到那些信息。我只知道這是因爲以前的經驗。嘗試重命名外部類並將腳本拖放到某個遊戲對象,您將看到一條錯誤消息 – luizcarlosfx

+0

真棒,感謝您的鏈接。非常感謝您的幫助! – Rabadash8820