2016-02-11 326 views
0

在Unity我想更新y坐标如下:为什么Vector3在这里是不可调用的,我能做些什么呢?

if (ballPos.position.y > aiPos.position.y) 
    { 
     transform.position += Vector3 (0.0f, 1.0f, 0f); 
    } 

,我发现了错误Vector3是一种非可调用方法,我能做些什么有效的改变位置?

+0

的您显示的代码在UnityScript中有效,因为它不需要new关键字。在C#中,你需要新的。 – Everts

+0

[错误:不能像方法一样使用非可调用成员'Vector2']的可能重复(http://stackoverflow.com/questions/32997907/error-non-invocable-member-vector2-cannot-be-used- like-a-method) – Fattie

回答

6

我认为你需要一个构造函数调用有:

transform.position += new Vector3 (0.0f, 1.0f, 0f); 

当然,因为[0,1,0]是如此普遍,它有一个名字:您还可以使用

transform.position += Vector3.up; 
+0

如果可能请不要重复。 Unity3D标签中存在大量混乱。这个特定的问题已经被问过几百次了。 – Fattie

+0

@JoeBlow,这对Unity3D标签中非常活跃的人来说可能是显而易见的,但重复对我来说并不容易被发现 - 而且如果重复的话,也许不容易被其他人发现。我只是把它作为一个随机的C#问题。 –

+0

当然,我只是提到任何会听的人,在这里建立的令人难以置信的Unity3D混乱;我认为值得记住。下一步是answers.unity3d.com:/ – Fattie