你好,我刚开始团结起来,这是我收到的第一条错误消息之一。而且我似乎无法理解。
这是完整的消息
MissingComponentException:“ Player”游戏对象没有附加“ Rigidbody”,但是脚本正在尝试访问它。 您可能需要向游戏对象“玩家”中添加一个刚体。或者您的脚本需要在使用组件之前检查组件是否已连接。 :0中的UnityEngine.Rigidbody.get_velocity()<0x602a2350 + 0x0006a> Player.Update()(位于Assets / Scripts / Player.cs:25)
这是我在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;
}
}
注意:
昨天我没有这个问题,我关闭了团结,今天打开时我遇到了这个问题。 不知道它是否与它有任何关系……似乎很奇怪。
答案 0 :(得分:1)
在您发布的屏幕截图中,没有Rigidbody组件。 单击按钮“添加组件”,然后在其中选择“刚体”。