我一直遵循this tutorial series来创建2D横向滚动游戏。在PlayerController中,我将CrossPlatformController的Input交换为使用屏幕上的按钮进行移动,但是现在按下任一移动按钮都无济于事。
两者都是Canvas上名为“ Horizontal”的UIButton;向右移动的轴值为1,向左移动的轴值为-1。我设置了一个Debug.Log以在按下按钮时读取GetAxis,然后these are the results.
我想象应该显示的唯一数字是1和0,但事实并非如此。
忽略跳跃和动画制作者,这就是我对ComputeVelocity函数的要求。 “运动”与教程代码中的“运动”相同。
protected override void ComputeVelocity()
{
Vector2 motion = Vector2.zero;
motion.x = CrossPlatformInputManager.GetAxis("Horiztonal");
if (motion.x != 0) { Debug.Log("Should be moving."); }
Debug.Log(CrossPlatformInputManager.GetAxis("Horizontal"));
targetVelocity = motion * maxSpeed;
}
我猜想当我将motion.x设置为GetAxis值时,由于数字太小,它会四舍五入。我尝试通过测试GetAxis是否大于或小于零,然后将targetVelocity设置为maxSpeed(或-maxSpeed)来解决此问题,但是在这种情况下,在我释放按钮之后,播放器不会总是停止移动。
我对设置是否有问题或是否需要在变通方法中进行编码感到困惑。