Unity 6.3
0 онлайн 67 гостей 3 в системе
Вход

PhotoCapture

класс в UnityEngine.Windows.WebCam

Выполнено в:UnityEngine.CoreModule

Описание

Захватывает фотографию с веб-камеры и сохраняет ее в памяти или на диске.

Демонстрирует, как сделать фотографию с помощью функции PhotoCapture и отобразить ее на Unity GameObject.

using UnityEngine;
using System.Collections;
using System.Linq;
using UnityEngine.Windows.WebCam;

public class PhotoCaptureExample : MonoBehaviour { PhotoCapture photoCaptureObject = null; Texture2D targetTexture = null;

// Use this for initialization void Start() { Resolution cameraResolution = PhotoCapture.SupportedResolutions.OrderByDescending((res) => res.width * res.height).First(); targetTexture = new Texture2D(cameraResolution.width, cameraResolution.height);

// Create a PhotoCapture object PhotoCapture.CreateAsync(false, delegate(PhotoCapture captureObject) { photoCaptureObject = captureObject; CameraParameters cameraParameters = new CameraParameters(); cameraParameters.hologramOpacity = 0.0f; cameraParameters.cameraResolutionWidth = cameraResolution.width; cameraParameters.cameraResolutionHeight = cameraResolution.height; cameraParameters.pixelFormat = CapturePixelFormat.BGRA32;

// Activate the camera photoCaptureObject.StartPhotoModeAsync(cameraParameters, delegate(PhotoCapture.PhotoCaptureResult result) { // Take a picture photoCaptureObject.TakePhotoAsync(OnCapturedPhotoToMemory); }); }); }

void OnCapturedPhotoToMemory(PhotoCapture.PhotoCaptureResult result, PhotoCaptureFrame photoCaptureFrame) { // Copy the raw image data into our target texture photoCaptureFrame.UploadImageDataToTexture(targetTexture);

// Create a gameobject that we can apply our texture to GameObject quad = GameObject.CreatePrimitive(PrimitiveType.Quad); Renderer quadRenderer = quad.GetComponent<Renderer>() as Renderer; quadRenderer.material = new Material(Shader.Find("Unlit/Texture"));

quad.transform.parent = this.transform; quad.transform.localPosition = new Vector3(0.0f, 0.0f, 3.0f);

quadRenderer.material.SetTexture("_MainTex", targetTexture);

// Deactivate our camera photoCaptureObject.StopPhotoModeAsync(OnStoppedPhotoMode); }

void OnStoppedPhotoMode(PhotoCapture.PhotoCaptureResult result) { // Shutdown our photo capture resource photoCaptureObject.Dispose(); photoCaptureObject = null; } }

Статические свойства

Свойство Описание
SupportedResolutionsСписок всех поддерживаемых разрешений устройств для съемки фотографий.

Открытые методы

Метод Описание
DisposeДля выключения экземпляра PhotoCapture необходимо вызвать Dispose.
GetUnsafePointerToVideoDeviceControllerПредоставляет указатель COM на основной IVideoDeviceController.
StartPhotoModeAsyncАсинхронно запускает фоторежим.
StopPhotoModeAsyncАсинхронно останавливает фоторежим.
TakePhotoAsyncАсинхронно захватывает фотографию с веб-камеры и сохраняет ее на диск.

Статические методы

Метод Описание
CreateAsyncАсинхронно создает экземпляр объекта PhotoCapture, который может быть использован для записи фотографий.

Делегаты

делегат Описание
OnCapturedToDiskCallbackВызывается при сохранении фотографии в файловую систему.
OnCapturedToMemoryCallbackВызывается, когда фотография была записана в память.
OnCaptureResourceCreatedCallbackВызывается при создании ресурса PhotoCapture.
OnPhotoModeStartedCallbackВызывается при запуске режима фото.
OnPhotoModeStoppedCallbackВызывается при остановке режима фото.