在编辑器中显示变量并不需要将其标记为public
。只需在private
变量顶部添加SerializeField
属性即可让它出现在编辑器中。
[SerializeField]
private GameObject cam1;
public
变量不在编辑器中显示。这可以使用HideInInspector
属性来完成。[HideInInspector]
public GameObject cam1;
但是在Unity中,还有另一种方法可以获得GameObject而避免拖放吗?
是的。有很多种方法。
如果GameObject已经存在于场景中,则您可以使用以下其中之一的 GameObject.FindXXX
函数之一,例如 GameObject.Find
, GameObject.FindGameObjectWithTag
例如,
[HideInInspector]
public GameObject cam1;
// Use this for initialization
void Start()
{
cam1 = GameObject.Find("Name of GameObject");
}
Resources.Load
来加载它。有关更详细的示例,请参见此处。
cam1
一样(它不是GameObject而是组件),首先像上面那样找到GameObject,然后使用GetComponent
函数从中获取组件。private Camera cam1;
// Use this for initialization
void Start()
{
GameObject obj = GameObject.Find("Main Camera");
cam1 = obj.GetComponent<Camera>();
}
cam1
这样的组件。请查看我的另一个编辑。不客气! - Programmer