首页 > 解决方案 > 为什么即使一切都很好,我的玩家移动也不起作用?

问题描述

现在,我是统一的新手,所以一个简单的答案会对我有很大帮助。我正在开发一个测试平台游戏项目。我正在编写玩家的移动脚本,我想它应该是正确的。但是当我运行这个项目时,我的播放器根本不动。任何帮助将不胜感激。

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 分配给我的“玩家”变量。我看不出有什么问题。请帮我。这真是令人沮丧。

谢谢,南丹·戈亚尔

标签: unity3d

解决方案


确保您的 Ridgidbody 设置为动态而不是运动学,并且您是否附加了物理组件?希望有帮助:)


推荐阅读