【发布时间】:2020-08-19 04:34:24
【问题描述】:
我正在用Visual Studio Code 和Unity 编写一个2D 平台游戏。到目前为止,我已经确定了稍后将在主角和敌人中使用的动画。对于主角,我已经定义了“水平移动”和“垂直移动”。但是,当我运行游戏时,角色会向上移动,但不会向左或向右移动。
这是我为主角准备的代码:
public class Hero : Monobehaviour
{
public float vel =10f;
public Animator anim;
private Vector2 moveVelocity;
float horizontalMove = 0f;
private Rigidbody2D rb;
void Start()
{
rb = GetComponent<Rigidbody2D>();
}
void Update()
{
horizontalMove = Input.GetAxisRaw("Horizontal") * vel;
Vector2 moveInput = new Vector2(Input.GetAxisRaw("Horizontal"), Input.GetAxisRaw("Vertical"));
moveVelocity = moveInput.normalized * vel;
}
void FixedUpdate()
{
Vector2 v = new Vector2 (vel, 0);
rb.velocity = v;
rb.MovePosition(rb.position + moveVelocity * Time.fixedDeltaTime);
}
}
谁能告诉我我错过了什么?
【问题讨论】:
-
您的意思是使用
CrossPlatformInputManager而不是Input.GetAxisRaw("Horizontal")?因为写Input.GetAxisRaw("Horizontal")而不是Input.GetKeyDown(KeyCode.D)没有什么意义
标签: c# unity3d game-physics