Unity Space Shooter 教程:CS 1526,unity 5 中的 1525 错误

Unity Space Shooter tutorial : CS 1526 ,1525 error in unity 5

error CS1525: 意外的符号 ,', expecting;' error CS1526: 新表达式需要 () or [] after type

using UnityEngine;
using System.Collections;

public class PlayerControl : MonoBehaviour {
    public float xMax, xMin, zMax, zMin;
    public float speed ;

    void FixedUpdate()
    {     
        float moveHorizontal = Input.GetAxis ("Horizontal");
        float moveVertical = Input.GetAxis ("Vertical");
        Vector3 movement = new Vector3 (moveHorizontal, 0.0f, moveVertical);
        GetComponent<Rigidbody>().velocity = movement* speed;
        GetComponent<Rigidbody>().position = new Vector3 (          
            Mathf(GetComponent.<Rigidbody>().position.x, xMax, xMin),
            0.0f,
            Mathf(GetComponent.<Rigidbody>().position.z, zMax, zMin)
        );
    }
}

这里有几个问题。首先是GetComponent.<Rigidbody>(). 那里有错。调用应该只是

GetComponent<Rigidbody>();

请记住,任何 GetComponent() 调用都相当昂贵。所以多次调用它不仅是不必要的,而且可能非常昂贵。特别是如果你在 Update() 或任何在每帧基础上调用的东西。如果您要经常引用一个组件,请存储它。

所以你最终会得到类似

的东西
Rigidbody rigid_body = GetComponent<Rigidbody>(); //Perhaps once on Start()

然后是

Vector3 current_position = rigid_body.position;
rigid_body.position = new Vector3 ( Mathf(current_position.x, xMax, xMin),
                                    0.0f,
                                    Mathf(current_position.z, zMax, zMin)
                                  );

也许我错了,但我认为你真的在试图限制你的位置值?在那种情况下,呼叫将是

 Mathf.Clamp(current_position.x, xMax, xMin)

所以一定要看看那个。

注:

根据一些错误和评论,我认为您可能正在查看文档,但使用了错误的语言。文档站点就是这样。

确保文档的语言设置正确。您可以在右上角这样做。

这可以解释您所做的一些 "mistakes" 并且很容易落入陷阱。

你拯救了这一天! 这是代码:D

using UnityEngine;
using System.Collections;
 public class PlayerControl : MonoBehaviour
{  public Rigidbody rb;
public float xMax,xMin,zMax,zMin;
public float velocity;
void Start() {
    rb = GetComponent<Rigidbody>();
}
void FixedUpdate()
{
    float moveHorizontal = Input.GetAxis ("Horizontal");
    float moveVertical = Input.GetAxis ("Vertical");
    Vector3 movement = new Vector3 (moveHorizontal, 0.0f, moveVertical);
    rb.velocity = movement*velocity;
    Vector3 current_position = rb.position;
    rb.position = new Vector3 ( Mathf.Clamp(current_position.x,xMin,xMax),
                                       0.0f,
                               Mathf.Clamp(current_position.z, zMin, zMax)
                                       );
                      }
                   }