是否可以在Unity Editor中显示静态字段?

时间:2017-12-16 07:07:27

标签: c# unity3d

昨天我写了一些小脚本,但它不起作用。 (序列化字段并非显示统一且很少出错。例如,我不能使用对非静态成员的引用(序列化字段))。你能帮我吗?

例如

using UnityEngine;
public class sExample : MonoBehaviour
{
  [SerializeField] public static GameObject gameObj;
  public void serializeUse()
  {
    //Do something with gameObj
  }
}
public class serializeEx : NetworkBehaviour
{
  public void Update()
  {
    If (!isLocalPlayer)
    {
      sExample.serializeUse()
    }
  }
}

非常感谢

1 个答案:

答案 0 :(得分:1)

那应该有用。 当你想向编辑器公开内容时,我认为你不能使用静态。

using UnityEngine;
[Serializable]
public class sExample : MonoBehaviour
{
  [SerializeField] public GameObject gameObj;
  public void serializeUse()
  {
    //Do something with gameObj
  }
}

public class serializeEx : NetworkBehaviour
{
  public void Update()
  {
    If (!isLocalPlayer)
    {
      sExample.serializeUse()
    }
  }
}

修改

静态似乎适用于this帖子中提到的JavaScript。 要完成这项工作,您必须切换到检查器中的调试视图。 如下图所示:

image showing the debug view

<强> EDIT2:

Serializeable所做的解释来自统一documentation

  

Serializable属性允许您嵌入具有子属性的类   检查员。

     

您可以使用它在检查器中显示变量,类似于如何   一个Vector3出现在检查器中。要扩展的名称和三角形   它的属性。要做到这一点,你需要创建一个派生自的类   System.Object并为其提供Serializable属性。在JavaScript中   Serializable属性是隐式的,不是必需的。

using UnityEngine;

[System.Serializable]
class Test : System.Object
{
    public int p = 5;
    public Color c = Color.white;
}