unity3d - 为什么即使一切都很好,我的玩家移动也不起作用?
问题描述
现在,我是统一的新手,所以一个简单的答案会对我有很大帮助。我正在开发一个测试平台游戏项目。我正在编写玩家的移动脚本,我想它应该是正确的。但是当我运行这个项目时,我的播放器根本不动。任何帮助将不胜感激。
using UnityEngine;
public class PlayerMovement : MonoBehaviour
{
private float vaxis;
private float haxis;
public float moveSpeed = 40f;
public float jumpSpeed = 20f;
private Vector2 newForce = new Vector2(0f, 0f);
public Rigidbody2D player;
private void FixedUpdate()
{
haxis = Input.GetAxisRaw("Horizontal");
vaxis = Input.GetAxisRaw("Vertical");
if(vaxis == -1)
vaxis = 0;
newForce.x = moveSpeed * haxis * Time.fixedDeltaTime;
newForce.y = jumpSpeed * vaxis * Time.fixedDeltaTime;
player.AddForce(newForce);
}
}
我已将 Rigidbody2D 分配给我的“玩家”变量。我看不出有什么问题。请帮我。这真是令人沮丧。
谢谢,南丹·戈亚尔
解决方案
确保您的 Ridgidbody 设置为动态而不是运动学,并且您是否附加了物理组件?希望有帮助:)