• Transform 类
    • Transform.Translate 移动
    • Transform.Rotate 绕着通过物体中心点的某个轴旋转
    • Transform.RotateAround 绕着任意轴旋转
    • Transform.LookAt 使物体的Z轴指向目标

    Transform 类

    变量说明
    childCount该变换的子对象数量。
    eulerAngles此旋转作为欧拉角度。
    forward在世界空间坐标,变换的蓝色轴。也就是z轴。
    hasChanged此变换自从上次标识是否被设置为false了?
    localEulerAngles旋转作为欧拉角度,相对于父级的变换旋转。
    localPosition相对于父级的变换的位置。
    localRotation该变换的旋转角度相对于父级变换的旋转角度。
    localScale相对于父级变换的缩放。
    localToWorldMatrix变换点的矩阵从局部坐标到世界坐标(只读)。
    lossyScale该对象的整体缩放(只读)。
    parent该变换的父对象。
    position在世界空间坐标transform的位置。
    right在世界坐标空间,变换的红色轴。也就是x轴。
    root返回最高层级的变换。
    rotation在世界坐标空间,储存为四元数变换的旋转角度。
    up在世界坐标空间,变换的绿色轴。也就是Y轴。
    worldToLocalMatrix变换点的矩阵从世界坐标到局部坐标(只读)。
    函数说明
    DetachChildren所有子对象解除父子关系。
    Find通过名字查找子对象并返回它。
    GetChild通过索引返回一个变换的子对象。
    GetSiblingIndex获取该对象的同级索引。
    InverseTransformDirection变换的方向从世界坐标转换到局部坐标。和Transform.TransformDirection相反。
    InverseTransformPoint变换位置从世界坐标到局部坐标。和Transform.TransformPoint相反。
    InverseTransformVector变换一个向量从世界坐标空间到局部坐标空间。这个操作与Transform.TransformVector相反。
    IsChildOf这个变换是parent的子对象?
    LookAt旋转此变换,让向前向量指向target的当前位置。(照相机的视口对准目标)
    Rotate应用一个欧拉角的旋转角度,eulerAngles.z度围绕z轴,eulerAngles.x度围绕x轴,eulerAngles.y度围绕y轴(这样的顺序)。
    RotateAround围绕世界坐标的point点的axis旋转该变换angle度。
    SetAsFirstSibling移动该变换到此局部变换列表的开始。
    SetAsLastSibling移动该变换到此局部变换列表的末尾。
    SetParent设置该变换的父级。
    SetSiblingIndex设置同级对象的索引。
    TransformDirection变换方向从局部坐标转换到世界坐标。
    TransformPoint变换位置从局部坐标到世界坐标。
    TransformVector变换一个向量从局部坐标空间到世界坐标空间。
    Translate移动transform在translation的方向和距离。

    Transform.Translate 移动

    示例1:

    1. using UnityEngine;
    2. using System.Collections;
    3. public class ExampleClass : MonoBehaviour {
    4. float moveSpeed = 0.1f;
    5. void Update() {
    6. transform.Translate(Vector3.forward * moveSpeed);
    7. transform.Translate(Vector3.up * moveSpeed, Space.World);
    8. }
    9. }

    示例2:

    1. using UnityEngine;
    2. using System.Collections;
    3. public class ExampleClass : MonoBehaviour {
    4. float moveSpeed = 0.1f;
    5. void Update() {
    6. transform.Translate(0, 0, moveSpeed);
    7. transform.Translate(0, moveSpeed, 0, Space.World);
    8. }
    9. }

    示例3:

    1. using UnityEngine;
    2. using System.Collections;
    3. public class ExampleClass : MonoBehaviour {
    4. float moveSpeed = 0.1f;
    5. void Update() {
    6. transform.Translate(Vector3.right * moveSpeed, Camera.main.transform);
    7. }
    8. }

    示例4:

    1. using UnityEngine;
    2. using System.Collections;
    3. public class ExampleClass : MonoBehaviour {
    4. float moveSpeed = 0.1f;
    5. void Update() {
    6. transform.Translate(moveSpeed, 0, 0, Camera.main.transform);
    7. }
    8. }

    Transform.Rotate 绕着通过物体中心点的某个轴旋转

    示例1:

    1. using UnityEngine;
    2. public class ExampleClass : MonoBehaviour
    3. {
    4. float rotSpeed = 0.1f;
    5. void Update()
    6. {
    7. transform.Rotate(Vector3.right * rotSpeed);
    8. transform.Rotate(Vector3.up * rotSpeed, Space.World);
    9. }
    10. }

    示例2:

    1. using UnityEngine;
    2. public class ExampleClass : MonoBehaviour
    3. {
    4. float rotSpeed = 0.1f;
    5. void Update()
    6. {
    7. transform.Rotate(rotSpeed, 0, 0);
    8. transform.Rotate(0, rotSpeed, 0, Space.World);
    9. }
    10. }

    示例3:

    1. using UnityEngine;
    2. public class ExampleClass : MonoBehaviour
    3. {
    4. float rotSpeed = 0.1f;
    5. void Update()
    6. {
    7. transform.Rotate(Vector3.right, rotSpeed);
    8. transform.Rotate(Vector3.up, rotSpeed, Space.World);
    9. }
    10. }

    Transform.RotateAround 绕着任意轴旋转

    1. using UnityEngine;
    2. using System.Collections;
    3. public class ExampleClass : MonoBehaviour {
    4. float rotSpeed = 0.1f;
    5. void Update() {
    6. transform.RotateAround(Vector3.zero, Vector3.up, 20 * rotSpeed);
    7. }
    8. }

    Transform.LookAt 使物体的Z轴指向目标

    实例1:

    1. using UnityEngine;
    2. using System.Collections;
    3. public class ExampleClass : MonoBehaviour {
    4. public Transform target;
    5. void Update() {
    6. transform.LookAt(target);
    7. }
    8. }

    实例2:

    1. transform.LookAt(Vector3.zero);

    ?