昨天我写了一些小脚本,但它不起作用。 (序列化字段并非显示统一且很少出错。例如,我不能使用对非静态成员的引用(序列化字段))。你能帮我吗?
例如
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()
}
}
}
非常感谢
答案 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。 要完成这项工作,您必须切换到检查器中的调试视图。 如下图所示:
<强> 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;
}