Unity GetComponent导致错误

时间:2015-07-19 08:32:10

标签: c# unity3d

所以我有一个非常基本的动画运动脚本,但我甚至无法进入实际的动画部分,因为我收到了这个错误:

Assets/Player Controllers/PlayerController.cs(18,41): error CS0119: Expression denotes a `type', where a `variable', `value' or `method group' was expected

直到今天它给了我一个关于GetComponent的错误,但现在我甚至无法复制它,尽管事实上我没有改变一行代码。无论如何,这是完整的事情:

using UnityEngine;
using System.Collections;

public class PlayerController : MonoBehaviour{
public float runSpeed = 6.0F;
public float jumpHeight = 8.0F;
public float gravity = 20.0F;

private Vector3 moveDirection = Vector3.zero;

void Start(){
    controller = GetComponent<CharacterController>();
    animController = GetComponent<Animator>();
}

void Update(){
    if(controller.isGrounded){
        moveDirection = Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical"));
        moveDirection = transform.TransformDirection(moveDirection);
        moveDirection *= speed;

        if(moveDirection = Vector3.zero){//Stopped
            isWalking = false;
            isBackpedaling = false;
        }else if(moveDirection = Vector3.back){//Backpedaling
            animController.isWalking = false;
            animController.isBackpedaling = true;
        }else{//Walking
            animController.isWalking = true;
            animController.isBackpedaling = false;
        }

        if(Input.GetButton("Jump")){
            moveDirection.y = jumpSpeed;
        }
    }
    moveDirection.y -= gravity * Time.deltaTime;
    controller.Move(moveDirection * Time.deltaTime);
}
}

1 个答案:

答案 0 :(得分:3)

关于你得到的错误,在第18行:

moveDirection = Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical"));

应该是:

moveDirection = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical"));

您应该做的另一个修复(我假设是您之前的GetComponent错误的来源)是您在Start()方法中分配的变量未被声明。通过添加到顶部来声明它们如下:

public class PlayerController : MonoBehaviour{
public float runSpeed = 6.0F;
public float jumpHeight = 8.0F;
public float gravity = 20.0F;

private Vector3 moveDirection = Vector3.zero;

// Added
private CharacterController controller;
private Animator animController;