当gameObject被实例化时,是否可以在检查器中显示它的位置以便可以更改它?我选择要在场景中实例化的gameObject (通过枚举),如何在检查器中声明以显示脚本中的位置,以便用户在实例化后可以自由地更改它?
public enum GOs {
One,
Two
}
public GOs go= GOs.Two;
public void CreateGameObject () {
if (go== GOs.One) {
GameObject One_Prefab = UnityEditor.AssetDatabase.LoadAssetAtPath ("Resources/1.prefab", typeof (GameObject)) as GameObject;
GameObject One = (GameObject) GameObject.Instantiate (One_Prefab, Vector3.zero, Quaternion.identity);
One.name = One_Prefab.name;
One.transform.parent = this.transform;
One.GetComponent<RectTransform>().localPosition = new Vector3 (0, 0, 0); //declare this as public so that it can be changed by the user
}发布于 2020-10-08 13:25:44
如果您的主脚本处理实例化gameObject的位置,您可以这样做: GameObject One;Vector3 OnePosition;
private void Update()
{
One.transform.position = OnePosition;
}不要忘记设置一个游戏对象:
public void CreateGameObject ()
{
if (go== GOs.One) {
GameObject One_Prefab = UnityEditor.AssetDatabase.LoadAssetAtPath ("Resources/1.prefab", typeof (GameObject)) as GameObject;
One = (GameObject) GameObject.Instantiate (One_Prefab, Vector3.zero, Quaternion.identity);
One.name = One_Prefab.name;
One.transform.parent = this.transform;
One.GetComponent<RectTransform>().localPosition = new Vector3 (0, 0, 0); //declare this as public so that it can be changed by the user
}如果您的脚本不操作实例化游戏对象,您可以在场景层次结构面板上找到新的实例化游戏对象,单击它并修改转换位置。
另一种解决方案可以是创建一个自定义检查器来处理向量字段上的更改,并在字段更改时设置实例化的游戏对象位置。它移除更新位置属性。如果这是您想要的,您可以看看文献资料。
https://stackoverflow.com/questions/64260702
复制相似问题