如何解决字符不在水平轴上移动
我正在用2D
和Visual Studio Code
来开发Unity
平台游戏。到目前为止,我已经建立了以后将在主角和敌人中使用的动画。在主角中,我定义了“水平移动”和“垂直移动”。但是,当我运行游戏时,角色会向上移动,但不会向左或向右移动。
这是我为主要角色准备的代码:
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);
}
}
有人可以告诉我我想念什么吗?
解决方法
如果将代码更改为此,它应该起作用:
void Update()
{
if(Input.GetKeyDown(KeyCode.D))
{
rb.AddRelativeForce(Vector2.right * (vel*Time.deltaTime));
}
else if(Input.GetKeyDown(KeyCode.A))
{
rb.AddRelativeForce(Vector2.left * (vel*Time.deltaTime));
}
}
由于您在游戏对象上附加了刚体,因此在用户按下D / A时向对象添加相对力将是有意义的,而不仅仅是更改对象的变换位置。这应该起作用。
,基本上,您可以在输入管理器的“编辑”>“项目设置”>“输入”下设置水平向上移动。仔细检查水平轴是否设置在左右按钮上。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。