最近常用到一些基础的知识,在这里做一下总结,大大们请无视啦~
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;
}
}