Pat*_*icz 5 c# unity-game-engine
我昨天写了一个小脚本,但它不起作用。(序列化字段未统一显示且很少有错误,例如我无法使用对非静态成员(序列化字段)的引用)。你能帮我吗。
例如。
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()
}
}
}
Run Code Online (Sandbox Code Playgroud)
多谢
那应该有效。我认为当您想向编辑器公开某些内容时,不能使用静态。
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()
}
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:
正如这篇文章中提到的,静态似乎适用于 JavaScript 。要完成这项工作,您必须切换到检查器中的调试视图。就像下图所示:
编辑2:
Serializeable 的作用的解释取自 Unity文档。
Serialized 属性允许您在检查器中嵌入具有子属性的类。
您可以使用它在检查器中显示变量,类似于 Vector3 在检查器中的显示方式。名称和一个三角形来扩展其属性。为此,您需要创建一个从 System.Object 派生的类,并为其赋予 Serializable 属性。在 JavaScript 中,可序列化属性是隐式的且不是必需的。
using UnityEngine;
[System.Serializable]
class Test : System.Object
{
public int p = 5;
public Color c = Color.white;
}
Run Code Online (Sandbox Code Playgroud)