“ Player”游戏对象没有附加“ Rigidbody”,但是脚本正在尝试访问它

时间:2019-02-10 15:26:17

标签: c# unity3d

你好,我刚开始团结起来,这是我收到的第一条错误消息之一。而且我似乎无法理解。

这是完整的消息

  

MissingComponentException:“ Player”游戏对象没有附加“ Rigidbody”,但是脚本正在尝试访问它。   您可能需要向游戏对象“玩家”中添加一个刚体。或者您的脚本需要在使用组件之前检查组件是否已连接。   :0中的UnityEngine.Rigidbody.get_velocity()<0x602a2350 + 0x0006a>   Player.Update()(位于Assets / Scripts / Player.cs:25)

https://imgur.com/a/OoYT5FH

这是我在C#中的播放器脚本

[SerializeField]
private Rigidbody playerBody;
private Vector3 inputVector;
private bool jump;


// Start is called before the first frame update
void Start()
{
    playerBody = GetComponent<Rigidbody>();
}

// Update is called once per frame
void Update()
{
    float speed = 10f;

    inputVector = new Vector3(Input.GetAxis("Horizontal") * speed, playerBody.velocity.y, Input.GetAxis("Vertical") * speed);
    transform.LookAt(transform.position + new Vector3(inputVector.x, 0, inputVector.z));
    if (Input.GetButtonDown("Jump"))
    {
        jump = true;
    }
}


private void FixedUpdate()
{
    playerBody.velocity = inputVector;
    if (jump)
    {
        playerBody.AddForce(Vector3.up * 20f, ForceMode.Impulse);
        jump = false;
    }

}

注意:

昨天我没有这个问题,我关闭了团结,今天打开时我遇到了这个问题。 不知道它是否与它有任何关系……似乎很奇怪。

1 个答案:

答案 0 :(得分:1)

在您发布的屏幕截图中,没有Rigidbody组件。 单击按钮“添加组件”,然后在其中选择“刚体”。