为什么我的触摸屏输入不能在Android上运行?

时间:2015-08-11 17:22:01

标签: android unity3d

我想用触摸输入制作一个小游戏,这是我为它制作的代码:(这是在Update方法中)

//Check if Input has registered more than zero touches
            if(Input.touchCount > 0){
                //Store the first touch detected.
                Touch myTouch = Input.touches[0];
                //Check if the phase of that touch equals Began
                if (myTouch.phase == TouchPhase.Began)
                {
                    //If so, set touchOrigin to the position of that touch
                    touchOrigin = myTouch.position;

                    if(touchOrigin.x < -2){
                        horizontalInput = -1;
                    } else if(touchOrigin.x > 2){
                        horizontalInput = 1;
                    }
                    if(touchOrigin.x > -2 && touchOrigin.x < 2 && touchOrigin.y < 0){
                        verticalInput = 1;
                    }
                } else if(myTouch.phase == TouchPhase.Ended){
                    horizontalInput = 0;
                    verticalInput = 0;
                }

            }

这是我的场景:http://i.stack.imgur.com/PGbd3.jpg 当我在我的Android手机上尝试它时,它只向右移动,我不知道为什么。 (我的相机的位置是:x:-6,6; y:-2,6)我正在使用正交相机

1 个答案:

答案 0 :(得分:1)

这是因为你正在使用Touch.position,它会根据SCREEN空间而不是WORLD空间返回值。

在应用条件之前,您需要做的是将点从屏幕转换为世界空间。您可以使用Camera.ScreenToWorldPoint

来完成此操作