0
点赞
收藏
分享

微信扫一扫

【Unity】动态 实例化物体,添加/移除组件,修改子物体顺序

最近常用到一些基础的知识,在这里做一下总结,大大们请无视啦~

1_代码创建物体

//创建空物体
GameObject newGo = new GameObject("NewObj");
//设置父物体
newGo.transform.parent = transform;
//创建Unity内置预设(Capsule/Cube/Cylinder/Plane/Quad/Sphere),不常用到
GameObject newPrimitive = GameObject.CreatePrimitive(PrimitiveType.Sphere);
//克隆原始物体并返回克隆物体
//会将Object实例化到场景中,可以是GameObject,也可以是Component(会实例化挂载Component的物体),脚本也属于Component哦
//Instantiate有多个重载,可以设置实例化对象的属性
GameObject newObj = Instantiate(newGo, transform);

2_代码添加/获取/移除组件
之前知道只有添加组件,而没有移除组件的方法,后来才发现Destroy就可以实现移除,亲测有效~

//GameObject添加组件
newObj.AddComponent<BoxCollider>();
//移除组件,Destroy常用来销毁游戏对象,其实也可以用来销毁某个组件
newGo.AddComponent<BoxCollider>();
Destroy(newGo.GetComponent<BoxCollider>());
//获取组件
BoxCollider collider = newObj.GetComponent<BoxCollider>();

3_代码修改子物体的顺序

//修改子物体顺序
GameObject newChild = new GameObject("newChild");
newChild.transform.SetAsFirstSibling();
newChild.transform.SetAsLastSibling();
newChild.transform.SetSiblingIndex(0);

4_动态创建单例

//单例,脚本不需要事先挂载到场景,在游戏运行过程中,第一次用到该单例的时候,自动实例化到场景
static Script instance;
public static Script Instance

get

if(instance == null)

instance = new GameObject("ScriptObj").AddComponent<Script >();

return instance;


举报

相关推荐

Unity物体路径查询工具

0 条评论