Unity 3 Dカメラ呼び出し時の最高解像度

1823 ワード

どのようにしてネットカメラがサポートする最高解像度を知っていますか?
1.私たちはこのネットカメラの型番によってその具体的なパラメータを調べて、私の手には羅技C 310と羅技C 920があって、C 310は1280 x 720を支持して、C 920は1920 x 1080を支持して、このようにWebCamTextureを構築する時にその支持する最大解像度を指定することができます.
テスト用のC#スクリプトは次のとおりです.
using UnityEngine;
using System.Collections;

public class CameraTest : MonoBehaviour {

	private string deviceName;
	private WebCamTexture tex;
	private Vector2 resSize = new Vector2(1920,1080);
	//private Vector2 resSize = new Vector2(640,480);
	public GameObject plane;

	// Use this for initialization
	void Start () 
	{
		StartCoroutine(InitCamera());
	}
	
	// Update is called once per frame
	void Update () {
	
	}

	protected IEnumerator InitCamera()
	{
		// 
		yield return Application.RequestUserAuthorization(UserAuthorization.WebCam);
		if (Application.HasUserAuthorization(UserAuthorization.WebCam))
		{
			WebCamDevice[] devices = WebCamTexture.devices;
			Debug.Log( "devices.Length " + devices.Length );
			if( devices.Length>0 )
			{
				deviceName = devices[0].name;
				Debug.Log( "deviceName " + deviceName );
				tex = new WebCamTexture(deviceName,(int)resSize.x, (int)resSize.y, 30);
				Debug.Log( "tex.width " + tex.width );
				Debug.Log( "tex.height " + tex.height );
				plane.renderer.material.mainTexture = tex;
				tex.Play();
				Debug.Log( "tex.width " + tex.width );
				Debug.Log( "tex.height " + tex.height );
			}
		}
	} 
}

2.モデルが分からないカメラなら、WebCamTextureでいいです.Play()の後、WebCamTextureを出力.width()とheight()は、公式ドキュメントをテストして確認しました.コンストラクション関数を使用するときに入力される解像度が大きすぎる場合、例えばC 310を使用するときにコンストラクション関数が1920 x 1080を指定すると、最も近い解像度を使用します.実際には、このとき最も近い解像度がサポートされている最大解像度です.実際、C 310は1280 x 960をサポートし、公式に与えられたデータを上回っています.
参考資料:http://docs.unity3d.com/ScriptReference/WebCamTexture-ctor.html