2012-07-28 17 views
1

我一直在嘗試幾個小時,但我不知道什麼是錯的。統一:公衆不會出現在默認引用/督察..?

通常,當您在Unity C#中定義一個公共對象/ var時,它會顯示在檢查器或默認引用中,您可以在其中拖動某些內容。

這裏是我的測試代碼:

using UnityEngine; 
using System; 
using System.Collections; 

[Serializable] 
public class modGlobals : MonoBehaviour { 

    public static GUIStyle defaultMask; 
    public GUIStyle trollo; 

} 

Aaaaaand ...

Object doesn't show up

我試了幾個選項,寫的東西MonoDev也如Visual Studio中,把我所有的文件一個命名空間,w和w/o可序列化的attribe但是..什麼可能是錯誤的?

感謝您的幫助!

+0

我想它的節目時,你會這個腳本附加到任何遊戲對象比你將能夠訪問此督察的變量。 – 2012-07-28 19:29:50

+0

可能,是的。我還沒有嘗試過。但我需要一個帶有全局腳本的對象,我可以從任何地方訪問(不同的場景),而不必將其附加到每個場景中的遊戲對象。 – user1450661 2012-07-28 19:49:29

+0

試過了:沒有。 – user1450661 2012-07-28 19:51:19

回答

1

是的,您需要將它附加到場景中的gameObject,以便在屬性檢查器中顯示公共成員,因爲您的腳本是從MonoBehaviour繼承的。

這就是我得到的。 The property inspector in scene view.

此外,無法在屬性檢查器中公開靜態成員 - 即使標記爲SerializableAttribute時也是如此。 System.SerializableAttribute在此聲明類型上無效。它僅對`class,struct,enum,delegate'聲明有效。

關於你對需要與對象全局訪問腳本註釋,你有幾個選項,比如

  • 辛格爾頓腳本附加到遊戲物體(example),與DontDestroyOnLoad()設定所以場景變化之間仍然存在。
  • 靜態類