无法像spaceshooter教程中提到的那样缓存刚体组件

时间:2016-03-12 16:54:55

标签: c# unity3d

我一直在关注unity3D太空射击教程系列。它是为Unity 4制作的,我相信,当Unity 5发布时,他们发布了一份文档,说明我们必须做的所有更改,以便遵循Unity 5中的教程。

我正在尝试访问游戏对象的刚体组件。

我试过

  using UnityEngine;
using System.Collections;

public class PlayerController : MonoBehaviour {

    void FixedUpdate(){
        float moveHorizontal = Input.GetAxis ("Horizontal");
        float moveVertical = Input.GetAxis ("Vertical");

        _rb = GetComponent<Rigidbody> ();

        _rb.position = new Vector3 (moveHorizontal, 0.0f, moveVertical);
    }

    }

然而,控制台给了我这个错误。

Assets/_Scripts/PlayerController.cs(12,17): error CS0103: The name `_rb' does not exist in the current context

我对C Sharp很新。所以,我甚至不知道基本的语法。

它指向第一行。

1 个答案:

答案 0 :(得分:2)

您的代码中似乎有拼写错误。你的代码中的某个地方 _rb 而非 rb

_rb 更改为 rb

这可能在第12行。如果情况并非如此,请将整个代码发布在 PlayerController 脚本中。

public class PlayerController : MonoBehaviour {
Rigidbody _rb; //DECLARE _rb
    void FixedUpdate(){
        float moveHorizontal = Input.GetAxis ("Horizontal");
        float moveVertical = Input.GetAxis ("Vertical");

        _rb = GetComponent<Rigidbody> ();

        _rb.position = new Vector3 (moveHorizontal, 0.0f, moveVertical);
    }

    }