Unity Space Shooter教程:CS 1526,1525团结错误5

时间:2015-07-23 12:39:01

标签: c# unity3d game-engine

错误CS1525 :意外的符号,', expecting;'  错误CS1526 :类型

后,新表达式需要()或[]
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)
        );
    }
}

2 个答案:

答案 0 :(得分:3)

这里有几个问题。首先是.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)

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

{{1}}

所以一定要看一下。

注意:

基于一些错误和评论,我认为你可能会看到文档,但是错误的语言。文档站点非常棒。

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

这可以解释一些&#34;错误&#34;你做了,是一个容易陷入陷阱。

答案 1 :(得分:0)

你这家伙救了一天!         这是代码: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)
                                       );
                      }
                   }