Transform.Translate

改变物体位置

定义

public void Translate(Vector3 translation, Space relativeTo = Space.Self);
参数名类型必要说明
translationVector3移动方向和大小
relativeToSpace相对的坐标系,默认 Space.Self
Space.Self:局部坐标系
Space.World:世界坐标系
public void Translate(float x, float y, float z, Space relativeTo = Space.Self);
参数名类型必要说明
xfloatX 轴移动大小
yfloatY 轴移动大小
zfloatZ 轴移动大小
relativeToSpace相对的坐标系,默认 Space.Self
Space.Self:局部坐标系
Space.World:世界坐标系

示例:指定向量进行移动

using UnityEngine;
using System.Collections;


public class ExampleClass : MonoBehaviour
{
    private void Update()
    {
        // 让物体沿自身 z 轴移动,每秒一个单位长度
        transform.Translate(Vector3.forward * Time.deltaTime);

        // 让物体沿世界方向向上移动,每秒一个单位长度
        transform.Translate(Vector3.up * Time.deltaTime, Space.World);
    }
}

示例:指定各轴大小进行移动

指定各轴大小进行移动

using UnityEngine;
using System.Collections;


public class ExampleClass : MonoBehaviour
{
    private void Update()
    {
        // 让物体沿自身 z 轴移动,每秒一个单位长度
        transform.Translate(0, 0, Time.deltaTime);

        // 让物体沿世界方向向上移动,每秒一个单位长度
        transform.Translate(0, Time.deltaTime, 0, Space.World);
    }
}

除了 Space.SelfSpcae.World 还可以使用例如 Camera.main.transform 来实现相对座标系的移动。

示例:相对座标系移动

using UnityEngine;
using System.Collections;


public class ExampleClass : MonoBehaviour
{
    private void Update()
    {
        // 让物体向相机右侧移动,每秒一个单位长度
        transform.Translate(Time.deltaTime, 0, 0, Camera.main.Transform);
    }
}