Unity基础知识—Transform

组件介绍

Transform

属性名作用
Position表示世界坐标/本地坐标
Rotation表示世界旋转角度/本地旋转角度
Scale表示缩放

在Transform面板上显示的是相对于父物体的变化
子物体世界坐标=子物体本地坐标+父物体的世界坐标
子物体世界旋转=子物体本地旋转+父物体的世界旋转
子物体世界缩放=子物体本地缩放*父物体的世界缩放

常用属性和方法

功能说明使用说明
坐标transform.position(Vector3 pos)(世界坐标) / transfrom.localPosition(Vector3 pos)(本地坐标)
角度(欧拉角)transform.eulerAngles(Vector3 pos)(世界欧拉角) / transform.localEulerAngles(Vector3 pos)(本地欧拉⻆)
角度(四元数)transform.rotation(世界四元数) / transform.localRotation(本地四元数)
缩放transform.localScale
方向transform.forword(自身前方) / transform.up(自身上方) / transform.right(自身右方) 相反方向只需要加个 " - " 就可以了
移动transform.Translate(Vector3 translation) / transform.Translate(Vector3 translation, Space relativeTo)translation为移动向量,包括方向和大小,relativeTo参考坐标系空间,默认为Space.Self(本地)Space.World(世界)
自转transform.Rotate(Vecotr3 axis, float angle, Space relativeTo)其中参数axis为旋转轴方向,参数angle为旋转角度,参数relativeTo为参数坐标系,默认为space.self(本地)Space.World(世界)
绕某个点和某个轴旋转transform.RotateAround(Vector3 point, Vector3 axis, float angle)其中参数point为参考点坐标,参数axis为旋转轴方向,参数angle为旋转角度此方法的功能使使得GameObject对象绕着point点的axis方向旋转angle度
看向某个对象transform.LookAt(Transform target) / transform.LookAt(Vector3 worldPosition) / transform.LookAt(Transform target, Vector3 worldup) / transform.LookAt(Vector3 worldPosition, Vector3 worldup)其中参数target为transform自身坐标系中z轴指向的目标,参数worldup为transform自身坐标系中y轴最大限度指向的方向此方法的功能是使得GameObject对象自身坐标系中的z轴指向target,y轴方向最大限度地指向worldup方向
获得根对象transform.root返回的是根对象的位置
获得父对象transform.parent返回的是父对象的位置
获得子对象transform.GetChild(int index)index是子物体的下标,从0开始
获得子物体的数量transform.childCount返回的数子物体数量 “int” 型
是否是某个对象的子物体transform.IsChildOf(Transform patent)用于判断transform对应的GameObject对象是否为参数parent的子物体,返回值为true的三种情况:A.isChildOf(B):①A和B指向同一对象,②A是B的一级子物体,③A是B的多级子物体
设置父物体transform.SetParent(Transform patent)patent是父对象的position
查找对象transform.Find(string name)参数name可以是对象名或者对象路径,相较于Gameobject.Find来说此方法可以查找隐藏对象(若其有父对象,则父对象的Transform组件必须是激活状态)
位置是否发生了变化transform.hasChanged;返回的是 “bool” 值
分离层级关系transform.DetachChildren()使GameObject对象的所有子物体和自身分离层级关系
设置物体的层级顺序transform.SetSiblingIndex(int index);参数index是物体要修改的序号 transform.SetAsFirstSibling();设置物体为第一个子对象,transform.SetAsLastSibling();设置物体为最后一个子物体

欧拉角:是物体绕坐标系三个坐标轴(x,y,z轴)的旋转角度
静态欧拉角:绕世界坐标系三个轴的旋转,由于物体旋转过程中坐标轴保持静止
动态欧拉角:绕物体坐标系三个轴的旋转,由于物体旋转过程中坐标轴随着物体做相同的转动
万向锁:对于动态欧拉角,无论heading和bank为多少度,只要pitch为±90°,就会出现万向锁现象
四元素:在计算机图形学中,四元数用于物体的旋转,是一种较为复杂,但是效率较高的旋转方式。其中x,y,z 代表的是向量的三维坐标,w代表的是角度

欧拉角四元数
三个角度组成,直观,容易理解,可以进行从一个方向到另一个方向旋转大于180度的角度,但是容易产生死锁四元旋转不存在万向节锁问题,存储空间小,计算效率高。但是单个四元数不能表示在任何方向上超过180度的旋转,四元数的数字表示不直观。

缩放:当缩放的是父物体,则其子物体也会进行缩放,而目标是子物体则只会影响子物体

  • 1
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值