统一运动触摸



我正在制作一个类似足球点球的游戏,我也需要在移动设备上移动球。我现在正在使用此代码:

float moveHorizontal = Input.GetAxis("Horizontal");
float moveVertical = Input.GetAxis("Vertical");
Vector3 movement = new Vector3(moveHorizontal, 0.0f, moveVertical);
rigidbody.AddForce(movement * speed * Time.deltaTime);

如何制作移动移动系统?

此外,还有一些其他代码可以控制球(例如,当您通过一条线(就像保龄球一样)时,您只能更改其位置 1/10)。但它们基于此代码...游戏脚本是c#...

从使用轴切换到触摸会有点困难。我建议阅读有关Touchscript(http://interactivelab.github.io/TouchScript/)以及API的一般工作原理。你需要做的是,当玩家触摸屏幕时,你缓存该触摸,当他们触摸时,你通过将他们的第一次触摸与他们当前的位置进行比较来测量移动的方向。通过这样做,您可以获得滑动方向。

这样的事情可以帮助你开始:

public void OnTouchBegin( object sender, TouchEventArgs e ){
    foreach( TouchPoint point in e.TouchPoints ){
        firstTouchPosition = new Vector2( point.Position.x, point.Position.y );
    }
}
public void OnTouchContinue( object sender, TouchEventArgs e ){
    foreach( var point in e.TouchPoints ){
        secondTouchPosition  = new Vector2( point.Position.x, point.Position.y );
        currentTouchMovement = new Vector2( ( secondTouchPosition.x - firstTouchPosition.x ),
        ( secondTouchPosition.y - firstTouchPosition.y ));
        currentTouchMovement.Normalize( );
    }
}
public void OnTouchEnd( object sender, TouchEventArgs e ){
    hasTouchEnded = true;
}

您需要一些自定义代码来确定 X 轴和 Y 轴方向与触摸输入相对应。还要注意屏幕坐标和游戏内坐标,因为它们差异很大。起初这看起来令人生畏,但通过一些工作,我保证它不会太糟糕!希望这有帮助!

最新更新