我想问为什么使用'sphere'来访问script1中的 sphere.transform.position 的transform.position。但是在script2中,我们可以直接评估transform.Rotate之前没有任何对象,为什么不写为: sphere.transform.Rotate ?
SCRIPT1
void Update () {
}
private IEnumerator SphereIndicator(Vector3 pos)
{
GameObject sphere = GameObject.CreatePrimitive (PrimitiveType.Sphere);
sphere.transform.position = pos;
yield return new WaitForSeconds (1);
Destroy(sphere)
}
SCRIPT2
void Update () {
if (axes == RotationAxes.MouseX) {
transform.Rotate (0, Input.GetAxis ("Mouse X") * sensitivityHor, 0);
}
答案 0 :(得分:3)
正如您所见here,.transform
可让您访问游戏对象的转换组件。如果您只使用transform
,它就像使用this.transform
一样,它将返回附加到调用者脚本附加到的相同游戏对象的Transform组件。
因此,在您的示例中,在 srcipt1 中,您从不同的游戏对象调用Transform组件,但在 script2 中,您正在调用相同游戏对象的组件