C# 如何在手机上一键切换摄像头';什么是统一的屏幕?(安卓)

C# 如何在手机上一键切换摄像头';什么是统一的屏幕?(安卓),c#,android,unity3d,C#,Android,Unity3d,这是我编写的一个代码,但当我在手机上测试它时,它会冻结,什么也不会发生(当我通过Remote4与手机连接时,在编辑器模式下也是如此),所以我想随时只需触摸屏幕即可更换摄像头。我该怎么做 当我只想在触摸屏幕时将摄像头从mainCam切换到topCam,而当我用手指松开屏幕时,它又从topCam切换回mainCam,这是怎么回事 此代码进入Update()中 while(Input.touchCount>0){ 对于(int i=0;i

这是我编写的一个代码,但当我在手机上测试它时,它会冻结,什么也不会发生(当我通过Remote4与手机连接时,在编辑器模式下也是如此),所以我想随时只需触摸屏幕即可更换摄像头。我该怎么做

当我只想在触摸屏幕时将摄像头从mainCam切换到topCam,而当我用手指松开屏幕时,它又从topCam切换回mainCam,这是怎么回事

此代码进入Update()中

while(Input.touchCount>0){
对于(int i=0;i
问题 您的循环就是问题所在,而且
if
s中存在一些奇怪的逻辑


触摸保持解决方案
制表符切换解决方案
也许你的while循环正在扼杀你的应用程序,你是否尝试过你的if,去掉while和for循环并在你的第一个if语句中用0替换i,也许你在应用程序中被while循环冻结了另一件事,我不知道。已启用,但如果你使用setActive(true)和setActive(false)仅使用第二个摄像头,您不必担心主摄像头,将第二个摄像头设置为true将从主摄像头切换到第二个摄像头,而不对主摄像头执行任何操作,然后将第二个摄像头设置为false将自动切换回主摄像头camera@JRowan是的,但是两台相机都会呈现相同的场景,这很昂贵。谢谢!成功了。当我只需轻触一下就想切换到另一个摄像头,如果我再轻触一下,它就会变回原来的状态,这是怎么回事?@Gabe你是什么意思?用你的代码,当我轻触屏幕并用手指按住它时,它会显示另一个摄像头。但是我想用轻触来更改它(我不需要在屏幕上按住它),然后用另一个轻触来更改它。@Gabe更简单的是,检查上面代码的更新。
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;
                         }
                     }
                 }
             }
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;
    }
}