Unity基础知识—Transform
2020-07-18 04:11
441 查看
文章目录
组件介绍
属性名 | 作用 |
---|---|
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度的旋转,四元数的数字表示不直观。 |
缩放:当缩放的是父物体,则其子物体也会进行缩放,而目标是子物体则只会影响子物体
相关文章推荐
- 【蓝鸥Unity开发基础三】课时10 Transform
- Unity之项目知识基础
- 【Unity】5.1 3D坐标系基础知识
- Unity 引擎与物理系统相关的基础知识
- Unity学习:3D数学基础知识
- unity 基础学习 transform
- Unity基础知识—UGUI 组件
- [置顶] unity中关于图形学的基础知识(一)
- Unity之3D数学基础知识
- Unity基础知识 - Know These Before 2D Creation(二) - 物理引擎简述
- unity基础知识
- 计算机 3D图形基础在Unity中的实现(Vector3,Maxtrix4*4,Transform) [转]
- Unity GUI基础知识。。。。。
- 《CG Programming in Unity》笔记1-基础知识
- Unity基础知识—UGUI (四)
- 【Unity基础知识之四】Unity、Mono为何能跨平台?聊聊CIL(MSIL)
- [基础知识] 总结使用Unity 3D优化游戏运行性能的经验
- Unity基础知识 - Know These Before 2D Creation(一) - 视觉设计
- 霍夫变换基础知识-- The Hough Transform: Basics
- Unity 3D_基础理解之GameObject、gameObject、Transform、transform的区别