这里在介绍Transform组件之前,我们首先先来了解一下什么是API.通俗的讲,API就是程序编程的接口,是一些预先定义好的函数。unity引擎为我们提供了丰富的组件和类库,为开发者提供了很大的便利。熟练掌握和使用这些API,对开发效率的提高有很大的作用。
Transform组件:unity游戏场景中每个游戏对象都有一个Transform组件,它用来保存和操作游戏对象的位置、旋转和缩放。
Transform组件有很多的属性和方法。下面先来看一下Transform的属性。
表示位置的:position: 相对于世界的位置
localposition:相对于父物体的位置
这个属性能改变物体的位置:transform.position=new vector3(1,0,0);//朝着x轴移动
表示旋转四元数:rotation:相对于世界
localerotation:相对于父物体
表示欧拉角度:eulerAngles:相对于世界的旋转角度
localEulerangles:相对于父物体的旋转角度
这个属性能改变物体的旋转:transform.eulerAngles=new vector3(1,0,0);//绕着x轴旋转。
表示缩放:lossyscale:相对于世界的缩放
localscale:相对于父物体的缩放
还有一些表示方向的:forward:表示z轴的方向,up表示y轴的方向,right表示x轴的方向。
还有获取子对象个数的getchild属性,表示对象的transform是否被改变的haschanged,返回对象的父物体的parent,从自身坐标转化为世界坐标的localToWorldMatrix,从世界坐标转换为自身坐标的worldTolocalMatrix,表示或者指定当前游戏对象在hierarchy面板处于第几层的的hierarchyCapacity,表示对象在hierarchy面板处于第几层的hierarchyCount 等等。
下面是transform类提供的一些常用的方法。
表示物体朝着某方向移动的translate。
transform.translate(transform.forward);//物体朝着x轴移动。
表示物体朝着某方向旋转的rotate:
transform.rotate(transform.forward);//物体朝着x轴旋转。
表示物体的z轴始终指向目标物(注释旋转)的lookat:
transform.lookat(target);//物体朝朝向target点
表示物体绕着某点某方向旋转的rotatearound(围绕旋转):
transform.rotatearound(Vector3.zero, Vector3.forward, 20 * Time.deltaTime);//物体朝着某点某方向旋转
查找游戏对象系列方法:
find(name/路径):通过名字或者路径查找对象。
getchild(index):根据索引找子对象。
下面这个例子是用transform提供的方法查找游戏物体:
public void OnGUI()
{
if (GUILayout.Button("GetChild"))
{
Transform child = GetChild(this.transform, "Cylinder (1)");
if (child != null)
{
child.GetComponent<MeshRenderer>().material.color = Color.green;
}
}
}
Boold FindMinEnemyBlood(Boold[] allenemy)
{
Boold minenemy = allenemy[0];
for (var i = 1; i < allenemy.Length; i++)
{
if (allenemy[i].boold < minenemy.boold)
{
minenemy = allenemy[i];
}
}
return minenemy;
}
Set系列:
SetParent:设置父物体(给对象一个父物体)
需要指定父物体的对象.SetParent(父对象)。
DetachChildren:解除父子关系。
父对象.DetachChildren().
SetAsFirstSibing:设置对象到同级列表中的第一个
SetAsLastSibing:设置对象到同级列表中的最后个
SetSibingIndex:设置对象到同级列表中的指定索引值
GetSibingIndex:获取对象在统计列表中的索引值。
转换系列:
TransformDirection(方向)变换方向:将对象的方向从自身坐标转换到世界坐标。
InverseTransformDirection(方向) 反向变换方向:将对象的方向从世界坐标转换到自身坐标。
TransformPoint(位置) 变换点:将对象的位置坐标点从自身坐标转换到世界坐标。
InverseTransformPoint(位置) 反响变换点:将对象的位置坐标点从世界坐标转换到自身坐标。
TransformVector(向量) 变换向量:将对象的方向和大小从局部坐标转换到世界坐标。
InverseTransformVector(向量) 变换向量:将对象的方向和大小从世界坐标转换到自身坐标。
IsChildOf(transform parent) 是否是子对象:游戏对象是否是parent的子对象,返回bool值