赞
踩
1. 判断输入值是否大于0(我这里用了自定义的虚拟摇杆)
if (Mathf.Abs(scrollRect.output.x) > 0)
2. 判断当前速度是否达到最大速度(如果存在最大速度的话)
- if (Mathf.Abs(scrollRect.output.x) > 0)
- if (Mathf.Abs(rgb.velocity.x) <= maxSpeed)
3. 若没达到最大速度,施加方向力(我这里是将摇杆的向量单位化,乘以力度的浮点值)
- if (Mathf.Abs(scrollRect.output.x) > 0)
- if (Mathf.Abs(rgb.velocity.x) <= maxSpeed)
- rgb.AddForce(new Vector2(scrollRect.output.x, 0).normalized * moveForce);
4. 判断输入值是否等于0(也可以用else或else if),如果是,强制改变当前速度(我这里是2D平台动作游戏的情况,所以只需要将x轴的速度设为0,其他轴保持不变)
- if (Mathf.Abs(scrollRect.output.x) > 0)
- if (Mathf.Abs(rgb.velocity.x) <= maxSpeed)
- rgb.AddForce(new Vector2(scrollRect.output.x, 0).normalized * moveForce);
- if (scrollRect.output.x == 0)
- rgb.velocity = new Vector2(0, rgb.velocity.y);
(解决问题的方法很多,我只是提供一种思路,欢迎交流。)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。