代码求助!!!为什么第二个if不生效,次序对调还是第二个。
unity3d吧
全部回复
仅看楼主
level 1
private void Move()
{
float h = Input.GetAxisRaw("Horizontal");
float v = Input.GetAxisRaw("Vertical");
//if (h != 0 && v != 0)
//{
// return;
//}
if (Mathf.Abs(h) > 0)
{
v = 0;
}
if (Mathf.Abs(v) > 0)
{
h = 0;
}
transform.Translate(Vector3.right * h * moveSpeed * Time.deltaTime);
transform.Translate(Vector3.up * v * moveSpeed * Time.deltaTime);
}
初学者,纠结好几天了。
2024年09月29日 02点09分 1
level 8
你的代码如果同时按了两个轴,第二个就是不会生效,建议自己梳理一下需求
2024年09月29日 02点09分 2
[钱]看了楼下的提示,一个帧里程序同时运行两个轴方法的确不合逻辑。谢谢提点。
2024年09月30日 01点09分
level 8
你判断h值,就修正h值 判断v值,就修正v值
另外,在同一帧中用两次Translate()是什么鬼?
下面看看我的移动是怎么做的
这里没有帖“地面检查”和“更新重力” 其它无关的代码你自己去掉就可以了
2024年09月29日 03点09分 3
谢谢你的代码和提点,关键的我都能看懂,比作为初学者的我自己瞎琢磨的可好太多了。收藏了以后作为方向参考。[开心][乖]谢谢
2024年09月30日 01点09分
level 1
看了一眼,直接跑[滑稽]
2024年09月30日 12点09分 4
1