GUI.DrawTexture和GUITexture多点触控

时间:2014-07-13 18:48:49

标签: unity3d

我正在为Android制作汽车游戏,我制作了Throttle,Break和Steering Wheel。

一切都运转良好,但是当我触摸油门或制动器时,我无法使用方向盘。 或者当我使用方向盘时,如果我触摸油门或断开,方向盘有点乱。

节气和休息是GUITexture, 方向盘正在使用GUI.DrawTexture(因为GUITexture不支持旋转)

我正在检查这样的接触:

int touchCount = Input.touchCount;
        for (int i = 0; i < touchCount; ++i){
            Touch t = Input.GetTouch(i);

if (t.phase != TouchPhase.Ended &&
                this.throttleButton.texture.HitTest(t.position)){
                throttle = 1f;

            }

if (t.phase != TouchPhase.Ended &&
                this.brakeButton.texture.HitTest(t.position)){
                brake = 1f; 
            }
       //inputGuiPosition variable was used because Unity3d GUI system is a little opposite

       Vector3 inputGuiPosition = t.position;
       inputGuiPosition.y = Screen.height - inputGuiPosition.y;

       if (t.phase == TouchPhase.Began &&
         wheelRect.Contains((inputGuiPosition))){       
         steerInput = SteeringWheel.GetAngle () * (-1f/270f);

            }
}

2 个答案:

答案 0 :(得分:1)

这是因为Unity的GUI不支持多点触控。如果你想在Unity游戏中进行多点触控,你需要来自unity的资产商店的一些输入触摸控制资产。

答案 1 :(得分:1)

我非常确定OnGUI无法处理多点触控。您应该考虑使用touch API:http://docs.unity3d.com/Documentation/ScriptReference/Input-touches.html