【发布时间】:2017-07-13 10:45:12
【问题描述】:
我想问为什么要使用'sphere'来访问script1中的sphere.transform.position的transform.position。但是在script2中,我们可以直接评估transform.Rotate之前没有任何对象,为什么不写成:sphere.transform.Rotate?
脚本1
void Update () {
}
private IEnumerator SphereIndicator(Vector3 pos)
{
GameObject sphere = GameObject.CreatePrimitive (PrimitiveType.Sphere);
sphere.transform.position = pos;
yield return new WaitForSeconds (1);
Destroy(sphere)
}
脚本2
void Update () {
if (axes == RotationAxes.MouseX) {
transform.Rotate (0, Input.GetAxis ("Mouse X") * sensitivityHor, 0);
}
【问题讨论】:
-
Script2 修改当前父对象的旋转变换。 Script1 将修改与该特定脚本无关的对象的旋转变换。这不是关于 Unity 的问题,而是关于 OOP 基础的问题。