Transform类继承自Component类,并实现了IEnumberable接口。Transform是GameObject必须拥有得一个组件,用来管理所在GameObject对象的坐标位置、选择角度、和大小缩放。
Transform实现了IEnumberable接口,因此可以在程序中使用foreach()方法快速遍历子物体的Transform结构。
Transfrom类实例属性
在Transform类中,涉及的实例属性有 eulerAngles 、forwardr 、hasChanged、localPosition、localToWorldMatrix 、parent 和 worldToLocalMatrix属性
eulerAngles属性:欧拉角
基本语法
public Vector3 eulerAngles{ get; set; }
功能说明 :此属性用于返回或设置GameObject对象的欧拉角
1、在Unity引擎中使用四元数Quaternion来存储和表示GameObject的旋转角度,无论是在Inspector面板中对Rotation设置了数值,还是在脚本中对transform.eulerAngles赋予了数值,程序在编译运行时都会把它们转换成Quaternion类型再计算。
2、只能对transform.eulerAngles进行整体赋值,如transform.eulerAngles=new Vector(1.0f,2.0f,3.0f),不可以对transform.eulerAngles的单独分量进行赋值。
3、transform.eulerAngles.x返回值的范围为[0,90]和[270,360);transform.eulerAngles.y和transform.eulerAngles.z返回值的范围为[0,360)。
4、对transform.eulerAngles进行赋值或获取transform.eulerAngles的值都是相对世界坐标系而言的,若要相对transform的父物体(如果有的话)进行角度的变换则需要使用属性localEulerAngles来设置
5、设在脚本中有代码:transform.eulerAngles=new Vector3(10.0f, 20.0f ,30.0f),则GameObject对象会先沿着z轴旋转30度,再沿着x轴旋转10度,最后再沿着y轴旋转20度。(不同的旋转执行顺序,物体的最终状态是不同的)
forward属性:z轴单位向量
基本语法
public Vector3 forward{get ; set;}
功能说明:此属性用于返回或设置transform自身坐标系中z轴方向的单位向量对应的世界坐标系中的单位向量。transform.forward即为transform.TransformDirection(new Vector3(0.0f , 0.0f ,1.0f))的简化方式。
hasChanged属性:transform组件是否被修改
基本语法
public bool hasChanged{ get; set;}
功能说明
此属性用于判断GameObject对象从上次将此属性设为false以来,其transform组件的属性是否被修改过。
注意:即使transform某个属性修改后的值与修改前的值相同,hasChanged的返回值仍然为true
localPosition属性:局部坐标系位置
基本语法
public Vector3 localPosition{ get; set; }
功能说明
此属性用于设置或返回GameObject对象在局部坐标系中的位置,若无父级对象则和属性Transform.position返回值相同。
transform.loaclPosition的值受父级对象属性影响,当transform.localPosition的值增加1时,transform.position值的赠量不一定是1,而是在相对父级坐标系中增加父级对象的值。
localToWorldMatrix属性:转换矩阵
基本语法
public Matrix4x4 localToWorldMatrix{ get; }
功能说明
此属性用于返回从transform局部坐标系向世界坐标系转换的Matrix4x4矩阵
parent属性:父物体Transform实例
基本语法
public Transform parent{get;set;}
功能说明
此属性用于返回父物体的Transform实例。
transform.parent只能返回父一级对象的Transform,若要返回父物体的父物体,可以使用transform.parent.parent,更多级父物体以此类推。
若父物体不存在,则返回null。
若想返回transform的最顶层的父物体,可以使用transform.rooot属性
worldToLocalMatrix属性:转换矩阵
基本语法
public Matrix4x4 worldToLocalMatrix{ get; }
功能说明
此属性用于返回物体从世界坐标系向transform自身坐标系转换的Matrix4x4矩阵
Transform类实例方法
DetachChildren方法:分离物体层级关系
基本语法
public void DetachChildren();
功能说明
此方法的功能是使GameObject对象的所有子物体和自身分离层级关系,当子物体的行为不再依赖父物体时可以用此方法使父子关系分离。
若子物体仍有子物体,分离后的子物体将保留子物体的子物体的层级关系
GetChild方法:获取GameObject对象子类
基本语法
public Transform GetChild(int index);
功能说明
此方法用于返回transform的索引值为index的子类Transform实例。
参数index的值要小于transform的childCount值
InverseTransformDirection方法:坐标系转换
基本语法
1、public Vector3 InverseTransformDirection(Vector3 direction);
其中参数direction为待转换的向量
2、public Vector3 InverseTransformDirection(float x,float y,float z);
功能说明:
此方法用于将参数direction从世界坐标系转换到GameObject对象的局部坐标系。
InverseTransformPoint方法:点的相对坐标向量
基本语法
1、public Vector3 InverseTransformPoint(Vector3 position);
2、public Vector3 InverseTransformPoint(float x, float y, float z);
功能说明
此方法用于返回参数position向量相对于GameObject对象局部坐标系的差向量,即返回向量position和向量transform.position的差值。
IsChildOf方法:是否为子物体
基本语法
public bool IsChildOf(Transform parent);
其中参数parent为父物体的Transform实例
功能说明
此方法用于判断transform对应的GameObject对象是否为参数parent的子物体
LookAt方法:物体朝向
基本语法
1、public void LookAt(Transform target);
2、public void LookAt(Vector3 worldPosition);
3、public void LookAt(Transform target,Vector3 worldUp);
4、public void LookAt(Vector3 worldPosition , Vector3 worldUp);
其中参数target为transform自身坐标系中z轴指向的目标,参数worldUp为transform自身坐标系中y轴最大限度指向的方向
功能说明
此方法的功能是使得GameObject对象自身坐标系中的z轴指向target,y轴方向最大限度地指向worldUp方向。
Rotate方法:绕坐标轴旋转
基本语法
1、public void Rotate(Vector3 eul服务器托管网erAngles);
2、public void Rotate(Vector3 eulerAngles , Space relativeTo);
3、public void Rotate(float xAngle , float yAngle ,float zAngle);
4、public void Rotate(flaot xAngle , float yAngle ,float zAngle ,Space relativeTo);
其中参数eulerAngles为transform要旋转的欧拉角,参数relativeTo为transform旋转时参考的坐标系,默认为Space.Self。
功能说明
此方法的功能是使得transform实例在相对参数relativeTo的坐标系中旋转欧拉角eulerAngles。
Rotate方法:绕某个向量旋转
基本语法
1、public void Rotate(Vector3 axis ,float angle);
2、public void Rotate(Vector3 axis ,float angle ,Space relativeTo);
其中参数axis为旋转轴方向,参数angle为旋转角度,参数relativeTo为参考坐标系,默认为Space.self。
功能说明
此方法的功能是使得GameObject对象在relativeTo坐标系中绕轴向量axis旋转angle度。
RotateAround方法:绕轴点旋转
基本语法
1、public void RotateAround(Vector3 axis ,float angle);
2、public void RotateAround(Vector3 point,Vector3 axis ,float angle);
其中参数point为参考点坐标,参数axis为旋转轴方向,参数angle为旋转角度
功能说明
此方法的功能是使得GameObject对象绕着point点的axis方向旋转angle度
TransformDirection方法:坐标系转换
基本语法
1、public Vector3 TransformDirection(Vector3 direction);
其中参数direction为待转换的Vector3实例向量。
2、public Vector3 TransformDirection(float x ,float y ,float z);
功能说明
此方法用于将向量direction从transform局部坐标系转换到世界坐标系
TransformPoint方法:点的世界坐标位置
基本语法
1、public Vector3 TransformPoint服务器托管网(Vector3 position);
其中参数position为transform局部坐标系的向量
2、public Vector3 TransformPoint(float x,float y,float z);
功能说明
此方法用于返回GameObject对象局部坐标系中向量position在世界坐标系中的位置
Translate方法:相对坐标系移动
基本语法
1、public void Translate(Vector3 translation);
2、public void Translate(Vector3 translation ,Space relativeTo);
3、public void Translate(float x ,float y , float z);
4、public void Translate(float x ,float y , float z , Space relativeTo);
其中参数transform为移动向量,包括方向和大小,参数relativeTo为参考坐标系空间,默认为Space.Self
功能说明
此方法的功能是使得GameObject对象在参数relativeTo的坐标系空间中移动参数transform指定的向量
Translate方法:相对其他物体移动
基本语法
1、public void Translate(Vector3 translation , Transform relativeTo);
2、public void Translate(float x ,float y,float z, Transform relativeTo);
其中参数translation为移动向量,包括方向和大小,参数relativeTo为移动参考物体,默认为Space.World。
功能说明
此方法的功能是使得GameObject对象在相对relativeTo的坐标系中移动向量translation。
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
相关推荐: Docker 容器网络:C++ 客户端 — 服务器应用程序。
目录 一、说明 二、Docker 中的桥接网络 2.1 网络构建 2.2 客户端C++ 2.3 服务器C++ 三、Docker 中的覆盖网络 3.1 主机1 3.2 主机1(内部主持人) 3.2 #主机1(其它) 3.3 主机2 3.4 #主机1和#主机2 四…