Cannot request Webcam Width ,Height and start camera because of too many call? I guess.
I am using Unity Editor and trying to open Logitech webcam to take photo. But everything look so weird.
First I am call my start_webcam() method in ProMainPagePreview.cs, it should print all webcam and open webcam with my config. Here is the code:
     for (int i = 0; i < WebCamTexture.devices.Length; i++)
     {
         Debug.Log("(" + i + ")\tWebCam " + WebCamTexture.devices[i].name);
     }
     string tmpDevName = WebCamTexture.devices[getConfig().USE_WEBCAM_INDEX % WebCamTexture.devices.Length].name;
     Debug.Log("Webcam [" + getConfig().USE_WEBCAM_INDEX + "%" + WebCamTexture.devices.Length + "=" + (getConfig().USE_WEBCAM_INDEX % WebCamTexture.devices.Length) +
         "] <<" + tmpDevName + ">> resolution : (" + getConfig().webcam_resolution_width + "x" + getConfig().webcam_resolution_height + ")");
     mWebCamTexture = new WebCamTexture(
         tmpDevName,
         getConfig().webcam_resolution_width,
         getConfig().webcam_resolution_height
     );
     mWebCamTexture.Play();
     Debug.Log(mWebCamTexture.deviceName + "\twidth x height = " + mWebCamTexture.width + "X" + mWebCamTexture.height + "\tIS PLAYING = " + mWebCamTexture.isPlaying);
 
               But the Debug Log show that the webcam cannot open with my requested resolution and not running at all. DebugLog:
 >>  (0)    WebCam Logitech HD Webcam C270
 UnityEngine.Debug:Log(Object)
 ProMainPagePreview:setup(ProController) (at Assets/_Photobooth Pro/Scripts/ProMainPagePreview.cs:194)
 ProMainPage:show() (at Assets/_Photobooth Pro/Scripts/ProMainPage.cs:113)
 ProController:setUI_MainPage() (at Assets/_Photobooth Pro/Scripts/ProController.cs:130)
 <setup>c__AnonStorey0:<>m__0() (at Assets/_Photobooth Pro/Scripts/ProFirstPage.cs:32)
 UnityEngine.EventSystems.EventSystem:Update()
 >>  (1)    WebCam Integrated Webcam
 UnityEngine.Debug:Log(Object)
 ProMainPagePreview:setup(ProController) (at Assets/_Photobooth Pro/Scripts/ProMainPagePreview.cs:194)
 ProMainPage:show() (at Assets/_Photobooth Pro/Scripts/ProMainPage.cs:113)
 ProController:setUI_MainPage() (at Assets/_Photobooth Pro/Scripts/ProController.cs:130)
 <setup>c__AnonStorey0:<>m__0() (at Assets/_Photobooth Pro/Scripts/ProFirstPage.cs:32)
 UnityEngine.EventSystems.EventSystem:Update()
 >>  (2)    WebCam Logi Capture
 UnityEngine.Debug:Log(Object)
 ProMainPagePreview:setup(ProController) (at Assets/_Photobooth Pro/Scripts/ProMainPagePreview.cs:194)
 ProMainPage:show() (at Assets/_Photobooth Pro/Scripts/ProMainPage.cs:113)
 ProController:setUI_MainPage() (at Assets/_Photobooth Pro/Scripts/ProController.cs:130)
 <setup>c__AnonStorey0:<>m__0() (at Assets/_Photobooth Pro/Scripts/ProFirstPage.cs:32)
 UnityEngine.EventSystems.EventSystem:Update()
 >>  Webcam [0%3=0] <<Logitech HD Webcam C270>> resolution : (640x480)
 UnityEngine.Debug:Log(Object)
 ProMainPagePreview:setup(ProController) (at Assets/_Photobooth Pro/Scripts/ProMainPagePreview.cs:197)
 ProMainPage:show() (at Assets/_Photobooth Pro/Scripts/ProMainPage.cs:113)
 ProController:setUI_MainPage() (at Assets/_Photobooth Pro/Scripts/ProController.cs:130)
 <setup>c__AnonStorey0:<>m__0() (at Assets/_Photobooth Pro/Scripts/ProFirstPage.cs:32)
 UnityEngine.EventSystems.EventSystem:Update()
 >>  Logitech HD Webcam C270    width x height = 16X16    IS PLAYING = False
 UnityEngine.Debug:Log(Object)
 ProMainPagePreview:setup(ProController) (at Assets/_Photobooth Pro/Scripts/ProMainPagePreview.cs:210)
 ProMainPage:show() (at Assets/_Photobooth Pro/Scripts/ProMainPage.cs:113)
 ProController:setUI_MainPage() (at Assets/_Photobooth Pro/Scripts/ProController.cs:130)
 <setup>c__AnonStorey0:<>m__0() (at Assets/_Photobooth Pro/Scripts/ProFirstPage.cs:32)
 UnityEngine.EventSystems.EventSystem:Update()
 
 
               It show webcam texture width and height is "16X16" and isPlaying = "False". And you can see there is so many layer between the button click event to start_webcam() (`ProFirstPage` button click event will show ProMainPage and it call ProMainPagePreview.setup() to start webcam). 
 Then, I copied the same code to ProController.cs and run. the Debug.Log():
 >   (0)    WebCam Logitech HD Webcam C270
 UnityEngine.Debug:Log(Object)
 ProController:Start() (at Assets/_Photobooth Pro/Scripts/ProController.cs:47)
 >   (1)    WebCam Integrated Webcam
 UnityEngine.Debug:Log(Object)
 ProController:Start() (at Assets/_Photobooth Pro/Scripts/ProController.cs:47)
 >   (2)    WebCam Logi Capture
 UnityEngine.Debug:Log(Object)
 ProController:Start() (at Assets/_Photobooth Pro/Scripts/ProController.cs:47)
 >   Webcam [0%3=0] <<Logitech HD Webcam C270>> resolution : (640x480)
 UnityEngine.Debug:Log(Object)
 ProController:Start() (at Assets/_Photobooth Pro/Scripts/ProController.cs:50)
 >   Logitech HD Webcam C270    width x height = 640X480    IS PLAYING = True
 UnityEngine.Debug:Log(Object)
 ProController:Start() (at Assets/_Photobooth Pro/Scripts/ProController.cs:59)
 
               The Code Work!!!! And I don't know why it work I guess it is because my first attempt there are too many layer between the scripts. Anyone know the correct answer?
Your answer
 
             Follow this Question
Related Questions
When I run getPixel32 () in WebcamTexture, only black pixels are returned. 1 Answer
How to capture Camera disconnect in using Webcamtexture for Webgl 1 Answer
Converting Texture2D into a video 1 Answer
Two webcam not play in Linux platform 0 Answers
Stream webcam via Multiplayer networking or websocket 2 Answers