Руководство API скрипты

PhotoCapture

класс в UnityEngine.Windows.WebCam / Реализовано в: UnityEngine.CoreModule

Описание

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

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

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

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

// Используйте это для инициализации void Start() { Resolution cameraResolution = PhotoCapture.SupportedResolutions.OrderByDescending((res) => res.width * res.height).First(); targetTexture = new Texture2D(cameraResolution.width, cameraResolution.height);

// Создаём объект PhotoCapture 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) { // Сделаем фото photoCaptureObject.TakePhotoAsync(OnCapturedPhotoToMemory); }); }); }

void OnCapturedPhotoToMemory(PhotoCapture.PhotoCaptureResult result, PhotoCaptureFrame photoCaptureFrame) { // Копируем необработанные данные изображения в нашу целевую текстуру photoCaptureFrame.UploadImageDataToTexture(targetTexture);

// Создаем игровой объект, к которому мы можем применить нашу текстуру 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);

// Деактивируем нашу камеру photoCaptureObject.StopPhotoModeAsync(OnStoppedPhotoMode); }

void OnStoppedPhotoMode(PhotoCapture.PhotoCaptureResult result) { // Отключаем наш ресурс захвата фотографий photoCaptureObject.Dispose(); photoCaptureObject = null; } }

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

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

Публичные Методы

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

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

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

Делегаты

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