这里在介绍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;
    }

unity的transform组件里面的属性被锁住不能修改 unity中transform_游戏开发

     

Set系列:
     SetParent:设置父物体(给对象一个父物体)
    需要指定父物体的对象.SetParent(父对象)。
    
    DetachChildren:解除父子关系。
    父对象.DetachChildren().

    SetAsFirstSibing:设置对象到同级列表中的第一个    
    SetAsLastSibing:设置对象到同级列表中的最后个
    SetSibingIndex:设置对象到同级列表中的指定索引值

    GetSibingIndex:获取对象在统计列表中的索引值。

转换系列:
    TransformDirection(方向)变换方向:将对象的方向从自身坐标转换到世界坐标。
    InverseTransformDirection(方向) 反向变换方向:将对象的方向从世界坐标转换到自身坐标。
    TransformPoint(位置) 变换点:将对象的位置坐标点从自身坐标转换到世界坐标。
    InverseTransformPoint(位置) 反响变换点:将对象的位置坐标点从世界坐标转换到自身坐标。
    TransformVector(向量) 变换向量:将对象的方向和大小从局部坐标转换到世界坐标。
    InverseTransformVector(向量) 变换向量:将对象的方向和大小从世界坐标转换到自身坐标。

    IsChildOf(transform parent) 是否是子对象:游戏对象是否是parent的子对象,返回bool值