Transform组件是Unity中每个Gameobject必须包含的组件,它控制着物体的位移、旋转、缩放。
在Unity中,物体的运动是通过改变物体的Position(在世界空间坐标transform的位置)。
(1) public void Translate(Vector3 translation, Space relativeTo = Space.Self);
(2) public void Translate(float x, float y, float z, Space relativeTo = Space.Self);
这是一种相对坐标系移动。参数translation为移动向量,包括方向和大小,参数relativeTo为参考坐标系空间。当relativeTo设置为空或者为Space.Self,表面该物体沿着自己本地坐标进行运动。当设置为Space.World,表面它的参考坐标为世界坐标系。 该方法可以将物体从当前位置,移动到指定位置,并且可以选择参照的坐标系。 当需要进行坐标系转换时,可以考虑使用该方法。事例代码如下:
using UnityEngine;
using System.Collections;
public class ExampleClass : MonoBehaviour {
void Update() {
transform.Translate(Vector3.forward * Time.deltaTime);
transform.Translate(Vector3.up * Time.deltaTime, Space.World);
transform.Translate(0, 0, Time.deltaTime);
transform.Translate(0, Time.deltaTime, 0, Space.World);
}
}
(1)public void Translate(Vector3 translation, Transform relativeTo);
(2)public void Translate(float x, float y, float z, Transform relativeTo);
参数translation为移动向量,包括方向和大小,参数relativeTo为移动参考物体,默认为Space.World。它是使物体沿着relativeTo的坐标系中移动向量translation。如果relativeTo为空,则相对坐标系为世界坐标系。
using UnityEngine;
using System.Collections;
public class ExampleClass : MonoBehaviour {
void Update() {
transform.Translate(Vector3.right*Time.deltaTime,Camera.main.transform);
transform.Translate(Time.deltaTime, 0, 0, Camera.main.transform);
}
}
Rigidbody组件用于模拟物体的物理状态,比如通过增加物体的受力来模拟真实的物理效果。Velocity是刚体的一个属性,用来设置刚体的速度值。设置刚体速度可以让物体运动并且忽略静摩擦力。
using UnityEngine;
using System.Collections;
public class ExampleClass : MonoBehaviour {
public Rigidbody rb;
void Start() {
rb = GetComponent();
}
void FixedUpdate() {
if (Input.GetButtonDown("Jump"))
rb.velocity = new Vector3(0, 10, 0);
}
}
《Unity》API解析,陈泉宏,人民邮电出版社
http://gad.qq.com/article/detail/28791
http://blog.csdn.net/myarrow/article/details/45846567
https://docs.unity3d.com/ScriptReference/Rigidbody-velocity.html