我想实例化一个gameObject,并在层次结构中给它一个特定的名称,因为它在默认情况下给出"gameObject(克隆(";,但我想知道是否有一种方法可以让它将派生的对象命名为";gameObject";而不是";gameObject(克隆(";。谢谢
您可以创建一个扩展方法来克隆对象,然后将克隆的名称设置为与原始对象的名称相匹配。
using UnityEngine;
public static class ObjectExtensions
{
public static TObject Instantiate<TObject>(this TObject original) where TObject : Object
{
TObject result = Object.Instantiate(original);
result.name = original.name;
return result;
}
}
用法:
GameObject clone = gameObject.Instantiate();
您可以将实例化的Prefab分配给游戏对象,然后更改游戏对象的名称。
这是的样本代码
my_spawned=Instantiate(prefab,transform.position,Quaternion.identity) as GameObject;
my_spawned.name="Myobject";
来源:https://vionixstudio.com/2019/11/27/unity-instantiate/