如何在Unity的手机屏幕上一键式更换相机? (机器人)

时间:2015-01-07 00:53:20

标签: c# android unity3d

这是我制作的代码,但是当我在手机上测试它时会冻结并且没有任何反应(当我通过Remote4与我的手机连接时,在编辑器模式下也是如此)所以我想改变的是只需轻触屏幕上的相机即可。我该怎么做?

当我想要将相机从mainCam更改为topCam时,只有在触摸屏幕时才会出现问题,当我用手指释放屏幕时,它会从topCam更改回mainCam?

此代码进入Update()

while (Input.touchCount > 0) {
                 for (int i = 0; i < Input.touchCount; i++) {
                     if (Input.GetTouch (i).phase == TouchPhase.Ended && Input.GetTouch(i).tapCount == 1) {
                         if (mainCam.enabled){
                             mainCam.enabled = false;
                             topCam.enabled = true;
                         } else {
                             mainCam.enabled = true;
                             topCam.enabled = false;
                         }
                     }
                 }
             }

1 个答案:

答案 0 :(得分:1)

问题

你的循环是问题和if的一些奇怪的逻辑。


触摸并按住解决方案

void Update()
{
    if(Input.touchCount > 0)
    {
        if(Input.GetTouch(0).phase == TouchPhase.Began)
        {
            topCam.enabled = true;
            mainCam.enabled = false;
        }

        if(Input.GetTouch(0).phase == TouchPhase.Ended 
           || Input.GetTouch(0).phase == TouchPhase.Canceled)    
        {
            mainCam.enabled = true;
            topCam.enabled = false;
        }
    }
}

Tab Switch Solution

void Update()
{
    if(Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Began)
    {
         topCam.enabled = !topCam.enabled;
         mainCam.enabled = !mainCam.enabled;
    }
}