文章目录
- transform类
- transform.Find();
- transform.localPosition
- transform.localPosition.x(y或z)
- transform.eulerAngles
- transform.localEulerAngles
- transform.childCount
- print(transform.lossyScale);
- print(transform.localScale);
- transform.hasChanged
- transform.hierarchyCapacity
- transform.hierarchyCount
- transform.DetachChildren()
- transform.GetSiblingIndex()
- 父子
- transform.InverseTransformVector(transform.position)
- transform.LookAt(Is)
- transform.Rotate
- transform.RotateAround(Vector3.zero,Vector3.up,Time.deltaTime*30)
- //transform.SetAsFirstSibling();
- transform.SetAsLastSibling();
- transform.SetParent(Is)
- transform.SetSiblingIndex(1)
- transform.Translate()
- transform.SetPositionAndRotation
- transform和gameObject转换
transform类
transform.Find();
- 没有静态方法,可以找到子物体自身,隐藏的物体也可以找到(失活的物体)
- 不是子物体找不到,会报错。
gameObject.Find()
- 静态方法,找不到隐藏的物体,对全局非隐藏物体进行搜索,隐藏的物体找不到会报错,物体为null
- transform继承Component
transform.localPosition
-
返回的子物体位置四舍五入,保留以为小数。
-
不受父物体旋转缩放影响
-
但是子物体的世界坐标会被父物体旋转缩放影响
transform.localPosition.x(y或z)
- 不能直接赋值
- 要赋值的话obj.localPosition = new Vector3();
transform.eulerAngles
- 返回世界角度
transform.localEulerAngles
- 韩慧自身角度
transform.childCount
- 返回该物体的儿子数量,不包括孙子
print(transform.lossyScale);
- 返回在世界缩放值
print(transform.localScale);
- 返回子物体缩放值
transform.hasChanged
- 判断上次和现在比是否改变
- 若和之前相比改变了返回true
transform.hierarchyCapacity
- 返回当前族谱所能承载子孙的数量,并且可以设置祖宗承载子孙的数量。
transform.hierarchyCount
- 返回当前族谱承载子孙的数量
transform.DetachChildren()
- 断子绝孙,吧当前该物体所有的儿子去掉,如果该儿子里还有儿子孙子,一起去除掉。
transform.GetSiblingIndex()
- 返回在兄弟姐妹的排行,从0开始
父子
父物体旋转和移动子物体会受影响。
transform.InverseTransformVector(transform.position)
- 返回当前物体的世界坐标,受父物体影响.
- 与之相反的将世界坐标转换自身坐标
transform.TransformVector(transform.position)
(我也没搞懂)用的很少
transform.LookAt(Is)
- 当前物体看向某个位置或者某个物体
transform.Rotate
- 自身旋转
transform.RotateAround(Vector3.zero,Vector3.up,Time.deltaTime*30)
- 围绕着某个点位置或物体旋转
//transform.SetAsFirstSibling();
- 将层级设置最高级,最前面,如果是在子物体,就设置成兄弟姐妹的最前面
transform.SetAsLastSibling();
- 同理,设置成最后面。
transform.SetParent(Is)
- 认贼作父,将ls物体变成父亲
transform.SetSiblingIndex(1)
- 将自己设置层级为1(或者2 3 4 5)
- 如果是负数或者超过最大层级,都会放在最后
transform.Translate()
- 控制物体移动,负数为相反反向
transform.Translate(Vector3.forward * 10*Time.deltaTime);
这是向z方向动
transform.Translate(1,0,0)
三个参数对应的是xyz方向
transform.SetPositionAndRotation
- 将当前物体移动到指定物体
Transform obj = GameObject.Find(“Cylinder”).transform;
transform.SetPositionAndRotation(obj.position,obj.rotation);
transform和gameObject转换
- 如果调用某些方法后返回的是transform类型,但是需要赋值到gameObject类型的话,直接".gameObject"转换