如何在 Unity 中通过单击手机屏幕来更改相机? (安卓)

How to change cameras by a single touch on my phone's screen in Unity? (Android)

这是我编写的代码,但是当我在我的 phone 上测试它时,它冻结并且没有任何反应(当我通过 Remote4 连接到我的 phone 时,在编辑器模式下也是如此)所以我想要的是随时通过触摸屏幕来更换相机。我应该怎么做?

当我只想在触摸屏幕时将相机从 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;
                         }
                     }
                 }
             }

问题

你的循环是问题所在,ifs 有一些奇怪的逻辑。


触摸并按住解决方案

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;
        }
    }
}

标签切换解决方案

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