From 21ceeadb24cb9bdc5bdeee81f0891721c65584e4 Mon Sep 17 00:00:00 2001 From: terric Date: Wed, 22 Nov 2023 20:34:04 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9Edebug=E5=B7=A5=E5=85=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Scripts/EventManager.cs | 1 + Assets/Scripts/GlobalData.cs | 21 ++++++-- Assets/Scripts/Tool/DebuggerOptions.cs | 57 +++++++++++++++++++++ Assets/Scripts/Tool/DebuggerOptions.cs.meta | 11 ++++ 4 files changed, 86 insertions(+), 4 deletions(-) create mode 100644 Assets/Scripts/Tool/DebuggerOptions.cs create mode 100644 Assets/Scripts/Tool/DebuggerOptions.cs.meta diff --git a/Assets/Scripts/EventManager.cs b/Assets/Scripts/EventManager.cs index b625a64..38a5854 100644 --- a/Assets/Scripts/EventManager.cs +++ b/Assets/Scripts/EventManager.cs @@ -84,4 +84,5 @@ public enum YogaEventType UpdateProgress, ShowHint, ShowMessage, + ChangeCaptureCameraDevice, } \ No newline at end of file diff --git a/Assets/Scripts/GlobalData.cs b/Assets/Scripts/GlobalData.cs index fe96e71..81a6960 100644 --- a/Assets/Scripts/GlobalData.cs +++ b/Assets/Scripts/GlobalData.cs @@ -1,6 +1,19 @@ -public class GlobalData : MonoSingleton -{ - private PositionType position = PositionType.None; +using UnityEngine; - public PositionType Position { get => position; internal set => position = value; } +public class GlobalData : MonoSingleton +{ + private PositionType _position = PositionType.None; + private int _cameraIndex = 0; + private CameraDeviceType _cameraDeviceType; + + public PositionType Position { get => _position; internal set => _position = value; } + + public int CameraIndex { get => _cameraIndex; internal set => _cameraIndex = value; } + public CameraDeviceType CameraDeviceType { get => _cameraDeviceType; set => _cameraDeviceType = value; } +} + +public enum CameraDeviceType +{ + System, + USB, } \ No newline at end of file diff --git a/Assets/Scripts/Tool/DebuggerOptions.cs b/Assets/Scripts/Tool/DebuggerOptions.cs new file mode 100644 index 0000000..7d96089 --- /dev/null +++ b/Assets/Scripts/Tool/DebuggerOptions.cs @@ -0,0 +1,57 @@ +using System.Collections; +using System.Collections.Generic; +using System.ComponentModel; +using UnityEngine; + +public partial class SROptions +{ + [Category("Camera Related")] + public void SetCameraIndex() + { + var devices = WebCamTexture.devices; + if (devices.Length == 0) + { + Debug.LogError("No camera detected!"); + return; + } + GlobalData.Instance.CameraIndex++; + if (GlobalData.Instance.CameraIndex >= devices.Length) + { + GlobalData.Instance.CameraIndex = 0; + } + + EventManager.Instance.Dispatch(YogaEventType.ChangeCaptureCameraDevice); + } + + [Category("Camera Related")] + public void PrintCurrentCamera() + { + var devices = WebCamTexture.devices; + if (devices.Length == 0) + { + Debug.LogError("No camera detected!"); + return; + } + + Debug.LogWarning($"Current camera: {devices[GlobalData.Instance.CameraIndex].name}"); + foreach (var device in devices) + { + Debug.LogWarning($"Camera: {device.name}"); + } + } + + [Category("Camera Related")] + public void SetCameraDeviceType() + { + if (GlobalData.Instance.CameraDeviceType == CameraDeviceType.System) + { + GlobalData.Instance.CameraDeviceType = CameraDeviceType.USB; + } + else + { + GlobalData.Instance.CameraDeviceType = CameraDeviceType.System; + } + + EventManager.Instance.Dispatch(YogaEventType.ChangeCaptureCameraDevice); + } +} \ No newline at end of file diff --git a/Assets/Scripts/Tool/DebuggerOptions.cs.meta b/Assets/Scripts/Tool/DebuggerOptions.cs.meta new file mode 100644 index 0000000..cd5a066 --- /dev/null +++ b/Assets/Scripts/Tool/DebuggerOptions.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6c3dfe47816f5d7458cb5d4a16745761 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: