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

您所在的位置:网站首页 unity获取某个子物体 【Unity】动态 实例化物体,添加/移除组件,修改子物体顺序

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

#【Unity】动态 实例化物体,添加/移除组件,修改子物体顺序| 来源: 网络整理| 查看: 265

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

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

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(); } return instance; } }

本文来自博客园,作者:萧然CS,转载请注明原文链接:https://www.cnblogs.com/z-c-s/p/15112990.html



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3