设置物体的坐标
(1)unity 设置坐标有2种方式
①gameObject.transform.position = new Vector3(0, 0, 0);
设置坐标为世界坐标
②gameObject.transform.localPosition = new Vector3(0, 0, 0);
设置坐标为相对于父物体的坐标
设置物体旋转
(1)transform.rotation = Quaternion.Euler(new Vector3(0,90,0));
若改变的物体有父物体,则无效,不能出现预期结果
(2)给 transform.eulerAngles 赋值。
①transform.eulerAngles = new Vector3(0,90,0);
结果与(1)相同
②transform.localEulerAngles = new Vector3(0,90,0);
相对父级坐标旋转
设置物体的缩放
两种形式:
transform.localScale = new Vector3(fx, fy, fz);
cube.transform.localScale *= 2f;
①若改变父物体,则子物体也会跟着缩放
②若改变子物体,那么只有子物体会缩放
物体的生成
(1)Instantiate
①形式
public static Object Instantiate(Object original);
public static Object Instantiate(Object original, Transform parent);
public static Object Instantiate(Object original, Transform parent,bool instantiateInWorldSpace);
public static Object Instantiate(Object original, Vector3 position, Quaternion rotation);
public static Object Instantiate(Object original, Vector3 position, Quaternion rotation, Transform parent);
original:需要复制的对象
position:给复制的新对象指定生成位置
rotation:给复制的新对象指定生成时旋转的角度
parent:给复制的新对象指定要放置的父级目录
instantiateInWorldSpace:为true的时候,则相对世界坐标系的位置不变,相对于父对象的位置改变;为false的时候,则相对世界坐标系的位置改变,相对于父对象的位置不变
(2)使用
①无父级物体
GameObject go = Instantiate(物体名,生成的位置, Quaternion.identity);
②有父级物体
GameObject go = Instantiate(物体名, 生成的位置, Quaternion.identity, 父级物体的名字.transform);