├── Assets ├── AVProWithOpenCVForUnityExample.meta ├── AVProWithOpenCVForUnityExample │ ├── AVProLiveCameraAsyncGPUReadbackExample.meta │ ├── AVProLiveCameraAsyncGPUReadbackExample │ │ ├── AVProLiveCameraAsyncGPUReadbackExample.cs │ │ ├── AVProLiveCameraAsyncGPUReadbackExample.cs.meta │ │ ├── AVProLiveCameraAsyncGPUReadbackExample.unity │ │ └── AVProLiveCameraAsyncGPUReadbackExample.unity.meta │ ├── AVProLiveCameraGetFrameAsColor32Example.meta │ ├── AVProLiveCameraGetFrameAsColor32Example │ │ ├── AVProLiveCameraGetFrameAsColor32Example.cs │ │ ├── AVProLiveCameraGetFrameAsColor32Example.cs.meta │ │ ├── AVProLiveCameraGetFrameAsColor32Example.unity │ │ └── AVProLiveCameraGetFrameAsColor32Example.unity.meta │ ├── AVProVideoAsyncGPUReadbackExample.meta │ ├── AVProVideoAsyncGPUReadbackExample │ │ ├── AVProVideoAsyncGPUReadbackExample.cs │ │ ├── AVProVideoAsyncGPUReadbackExample.cs.meta │ │ ├── AVProVideoAsyncGPUReadbackExample.unity │ │ └── AVProVideoAsyncGPUReadbackExample.unity.meta │ ├── AVProVideoExtractFrameExample.meta │ ├── AVProVideoExtractFrameExample │ │ ├── AVProVideoExtractFrameExample.cs │ │ ├── AVProVideoExtractFrameExample.cs.meta │ │ ├── AVProVideoExtractFrameExample.unity │ │ └── AVProVideoExtractFrameExample.unity.meta │ ├── AVProVideoGetReadableTextureExample.meta │ ├── AVProVideoGetReadableTextureExample │ │ ├── AVProVideoGetReadableTextureExample.cs │ │ ├── AVProVideoGetReadableTextureExample.cs.meta │ │ ├── AVProVideoGetReadableTextureExample.unity │ │ └── AVProVideoGetReadableTextureExample.unity.meta │ ├── AVProWithOpenCVForUnityExample.cs │ ├── AVProWithOpenCVForUnityExample.cs.meta │ ├── AVProWithOpenCVForUnityExample.unity │ ├── AVProWithOpenCVForUnityExample.unity.meta │ ├── LoadingIcon.png │ ├── LoadingIcon.png.meta │ ├── Materials.meta │ ├── Materials │ │ ├── ExampleMaterial.mat │ │ └── ExampleMaterial.mat.meta │ ├── Scripts.meta │ ├── Scripts │ │ ├── Utils.meta │ │ └── Utils │ │ │ ├── FpsMonitor.cs │ │ │ └── FpsMonitor.cs.meta │ ├── ShowLicense.cs │ ├── ShowLicense.cs.meta │ ├── ShowLicense.unity │ └── ShowLicense.unity.meta ├── StreamingAssets.meta └── StreamingAssets │ ├── AVProWithOpenCVForUnityExample.meta │ └── AVProWithOpenCVForUnityExample │ ├── BigBuckBunny_720p30.mp4 │ └── BigBuckBunny_720p30.mp4.meta ├── README.md └── ScreenShot.PNG /Assets/AVProWithOpenCVForUnityExample.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d7b8772dfe0de4c40b1a3339297d65dd 3 | folderAsset: yes 4 | timeCreated: 1471094109 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/AVProWithOpenCVForUnityExample/AVProLiveCameraAsyncGPUReadbackExample.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5b52f79706bd5bb4ea572b87e9fedf93 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/AVProWithOpenCVForUnityExample/AVProLiveCameraAsyncGPUReadbackExample/AVProLiveCameraAsyncGPUReadbackExample.cs: -------------------------------------------------------------------------------- 1 | using OpenCVForUnity.CoreModule; 2 | using OpenCVForUnity.ImgprocModule; 3 | using OpenCVForUnity.UnityUtils; 4 | using RenderHeads.Media.AVProLiveCamera; 5 | using UnityEngine; 6 | using UnityEngine.Experimental.Rendering; 7 | using UnityEngine.Rendering; 8 | using UnityEngine.SceneManagement; 9 | using UnityEngine.UI; 10 | 11 | namespace AVProWithOpenCVForUnityExample 12 | { 13 | /// 14 | /// AVProLiveCamera AsyncGPUReadback Example 15 | /// An example of converting an AVProLiveCamera image frame to an OpenCV Mat using AsyncGPUReadback. 16 | /// 17 | public class AVProLiveCameraAsyncGPUReadbackExample : MonoBehaviour 18 | { 19 | public AVProLiveCamera _camera; 20 | private AVProLiveCameraDevice _device; 21 | 22 | private int _frameWidth; 23 | private int _frameHeight; 24 | private uint _lastFrame; 25 | 26 | private bool _graphicsFormatIsFormatSupported; 27 | 28 | /// 29 | /// The texture. 30 | /// 31 | Texture2D texture; 32 | 33 | /// 34 | /// The rgba mat. 35 | /// 36 | Mat rgbaMat; 37 | 38 | /// 39 | /// The m sepia kernel. 40 | /// 41 | Mat mSepiaKernel; 42 | 43 | /// 44 | /// The m size0. 45 | /// 46 | Size mSize0; 47 | 48 | /// 49 | /// The m intermediate mat. 50 | /// 51 | Mat mIntermediateMat; 52 | 53 | public enum modeType 54 | { 55 | original, 56 | sepia, 57 | pixelize, 58 | } 59 | 60 | /// 61 | /// The mode. 62 | /// 63 | modeType mode; 64 | 65 | 66 | /// 67 | /// The original mode toggle. 68 | /// 69 | public Toggle originalModeToggle; 70 | 71 | 72 | /// 73 | /// The sepia mode toggle. 74 | /// 75 | public Toggle sepiaModeToggle; 76 | 77 | 78 | /// 79 | /// The pixelize mode toggle. 80 | /// 81 | public Toggle pixelizeModeToggle; 82 | 83 | // Use this for initialization 84 | void Start() 85 | { 86 | if (originalModeToggle.isOn) 87 | { 88 | mode = modeType.original; 89 | } 90 | if (sepiaModeToggle.isOn) 91 | { 92 | mode = modeType.sepia; 93 | } 94 | if (pixelizeModeToggle.isOn) 95 | { 96 | mode = modeType.pixelize; 97 | } 98 | 99 | // sepia 100 | mSepiaKernel = new Mat(4, 4, CvType.CV_32F); 101 | mSepiaKernel.put(0, 0, /* R */0.189f, 0.769f, 0.393f, 0f); 102 | mSepiaKernel.put(1, 0, /* G */0.168f, 0.686f, 0.349f, 0f); 103 | mSepiaKernel.put(2, 0, /* B */0.131f, 0.534f, 0.272f, 0f); 104 | mSepiaKernel.put(3, 0, /* A */0.000f, 0.000f, 0.000f, 1f); 105 | 106 | 107 | // pixelize 108 | mIntermediateMat = new Mat(); 109 | mSize0 = new Size(); 110 | } 111 | 112 | void Update() 113 | { 114 | if (_camera != null) 115 | _device = _camera.Device; 116 | 117 | if (_device != null && _device.IsActive && !_device.IsPaused && _device.OutputTexture != null) 118 | { 119 | if (_device.CurrentWidth != _frameWidth || _device.CurrentHeight != _frameHeight) 120 | { 121 | CreateBuffer(_device.CurrentWidth, _device.CurrentHeight); 122 | } 123 | 124 | uint lastFrame = AVProLiveCameraPlugin.GetLastFrame(_device.DeviceIndex); 125 | 126 | // Reset _lastFrame at the timing when the camera is reset. 127 | if (lastFrame < _lastFrame) 128 | _lastFrame = 0; 129 | 130 | if (lastFrame != _lastFrame) 131 | { 132 | _lastFrame = lastFrame; 133 | 134 | //Debug.Log("FrameReady " + lastFrame); 135 | 136 | if (_graphicsFormatIsFormatSupported) 137 | { 138 | AsyncGPUReadback.Request(_device.OutputTexture, 0, TextureFormat.RGBA32, (request) => { OnCompleteReadback(request, lastFrame); }); 139 | } 140 | } 141 | } 142 | } 143 | 144 | void OnCompleteReadback(AsyncGPUReadbackRequest request, long frameIndex) 145 | { 146 | 147 | if (request.hasError) 148 | { 149 | Debug.Log("GPU readback error detected. " + frameIndex); 150 | 151 | } 152 | else if (request.done) 153 | { 154 | //Debug.Log("Start GPU readback done. "+frameIndex); 155 | 156 | //Debug.Log("Thread.CurrentThread.ManagedThreadId " + Thread.CurrentThread.ManagedThreadId); 157 | 158 | MatUtils.copyToMat(request.GetData(), rgbaMat); 159 | 160 | Core.flip(rgbaMat, rgbaMat, 0); 161 | 162 | 163 | if (mode == modeType.original) 164 | { 165 | 166 | } 167 | else if (mode == modeType.sepia) 168 | { 169 | 170 | Core.transform(rgbaMat, rgbaMat, mSepiaKernel); 171 | 172 | } 173 | else if (mode == modeType.pixelize) 174 | { 175 | 176 | Imgproc.resize(rgbaMat, mIntermediateMat, mSize0, 0.1, 0.1, Imgproc.INTER_NEAREST); 177 | Imgproc.resize(mIntermediateMat, rgbaMat, rgbaMat.size(), 0.0, 0.0, Imgproc.INTER_NEAREST); 178 | 179 | } 180 | 181 | 182 | Imgproc.putText(rgbaMat, "AVPro With OpenCV for Unity Example", new Point(50, rgbaMat.rows() / 2), Imgproc.FONT_HERSHEY_SIMPLEX, 2.0, new Scalar(255, 0, 0, 255), 5, Imgproc.LINE_AA, false); 183 | Imgproc.putText(rgbaMat, "W:" + rgbaMat.width() + " H:" + rgbaMat.height() + " SO:" + Screen.orientation, new Point(5, rgbaMat.rows() - 10), Imgproc.FONT_HERSHEY_SIMPLEX, 1.0, new Scalar(255, 255, 255, 255), 2, Imgproc.LINE_AA, false); 184 | 185 | //Convert Mat to Texture2D 186 | Utils.matToTexture2D(rgbaMat, texture); 187 | 188 | //Debug.Log("End GPU readback done. " + frameIndex); 189 | 190 | } 191 | } 192 | 193 | private void CreateBuffer(int width, int height) 194 | { 195 | _frameWidth = width; 196 | _frameHeight = height; 197 | 198 | texture = new Texture2D(_frameWidth, _frameHeight, TextureFormat.RGBA32, false, false); 199 | 200 | rgbaMat = new Mat(texture.height, texture.width, CvType.CV_8UC4); 201 | 202 | 203 | gameObject.GetComponent().material.mainTexture = texture; 204 | 205 | gameObject.transform.localScale = new Vector3(texture.width, texture.height, 1); 206 | Debug.Log("Screen.width " + Screen.width + " Screen.height " + Screen.height + " Screen.orientation " + Screen.orientation); 207 | 208 | float widthScale = (float)Screen.width / width; 209 | float heightScale = (float)Screen.height / height; 210 | if (widthScale < heightScale) 211 | { 212 | Camera.main.orthographicSize = (width * (float)Screen.height / (float)Screen.width) / 2; 213 | } 214 | else 215 | { 216 | Camera.main.orthographicSize = height / 2; 217 | } 218 | 219 | 220 | _graphicsFormatIsFormatSupported = SystemInfo.IsFormatSupported(_device.OutputTexture.graphicsFormat, FormatUsage.ReadPixels); 221 | 222 | if (!_graphicsFormatIsFormatSupported) 223 | { 224 | Imgproc.rectangle(rgbaMat, new OpenCVForUnity.CoreModule.Rect(0, 0, rgbaMat.width(), rgbaMat.height()), new Scalar(0, 0, 0, 255), -1); 225 | Imgproc.putText(rgbaMat, _device.OutputTexture.graphicsFormat + " is not supported for AsyncGPUReadback.", new Point(5, rgbaMat.rows() - 10), Imgproc.FONT_HERSHEY_SIMPLEX, 1.0, new Scalar(255, 255, 255, 255), 2, Imgproc.LINE_AA, false); 226 | 227 | Utils.matToTexture2D(rgbaMat, texture); 228 | } 229 | } 230 | 231 | private void FreeBuffer() 232 | { 233 | if (texture) 234 | { 235 | Texture2D.DestroyImmediate(texture); 236 | texture = null; 237 | } 238 | 239 | if (rgbaMat != null) 240 | rgbaMat.Dispose(); 241 | } 242 | 243 | void OnDestroy() 244 | { 245 | AsyncGPUReadback.WaitAllRequests(); 246 | 247 | FreeBuffer(); 248 | 249 | if (mSepiaKernel != null) 250 | { 251 | mSepiaKernel.Dispose(); 252 | mSepiaKernel = null; 253 | } 254 | 255 | if (mIntermediateMat != null) 256 | { 257 | mIntermediateMat.Dispose(); 258 | mIntermediateMat = null; 259 | } 260 | } 261 | 262 | /// 263 | /// Raises the back button event. 264 | /// 265 | public void OnBackButton() 266 | { 267 | SceneManager.LoadScene("AVProWithOpenCVForUnityExample"); 268 | } 269 | 270 | /// 271 | /// Raises the original mode toggle event. 272 | /// 273 | public void OnOriginalModeToggle() 274 | { 275 | 276 | if (originalModeToggle.isOn) 277 | { 278 | mode = modeType.original; 279 | } 280 | } 281 | 282 | /// 283 | /// Raises the sepia mode toggle event. 284 | /// 285 | public void OnSepiaModeToggle() 286 | { 287 | 288 | if (sepiaModeToggle.isOn) 289 | { 290 | mode = modeType.sepia; 291 | } 292 | } 293 | 294 | /// 295 | /// Raises the pixelize mode toggle event. 296 | /// 297 | public void OnPixelizeModeToggle() 298 | { 299 | 300 | if (pixelizeModeToggle.isOn) 301 | { 302 | mode = modeType.pixelize; 303 | } 304 | } 305 | } 306 | } -------------------------------------------------------------------------------- /Assets/AVProWithOpenCVForUnityExample/AVProLiveCameraAsyncGPUReadbackExample/AVProLiveCameraAsyncGPUReadbackExample.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ae6d1a212fa0cb248abfc1d1429d3bfb 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/AVProWithOpenCVForUnityExample/AVProLiveCameraAsyncGPUReadbackExample/AVProLiveCameraAsyncGPUReadbackExample.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c952e8d11b5d4124baa50fddd200d843 3 | -------------------------------------------------------------------------------- /Assets/AVProWithOpenCVForUnityExample/AVProLiveCameraGetFrameAsColor32Example.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7beca3352f1757740a94c68b7455327a 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/AVProWithOpenCVForUnityExample/AVProLiveCameraGetFrameAsColor32Example/AVProLiveCameraGetFrameAsColor32Example.cs: -------------------------------------------------------------------------------- 1 | using OpenCVForUnity.CoreModule; 2 | using OpenCVForUnity.ImgprocModule; 3 | using OpenCVForUnity.UnityUtils; 4 | using RenderHeads.Media.AVProLiveCamera; 5 | using System.Runtime.InteropServices; 6 | using UnityEngine; 7 | using UnityEngine.SceneManagement; 8 | using UnityEngine.UI; 9 | 10 | namespace AVProWithOpenCVForUnityExample 11 | { 12 | /// 13 | /// AVProLiveCamera GetFrameAsColor32 Example 14 | /// An example of converting an AVProLiveCamera image frame to an OpenCV Mat using GetFrameAsColor32. 15 | /// 16 | public class AVProLiveCameraGetFrameAsColor32Example : MonoBehaviour 17 | { 18 | public AVProLiveCamera _camera; 19 | private AVProLiveCameraDevice _device; 20 | 21 | private Color32[] _frameData; 22 | private int _frameWidth; 23 | private int _frameHeight; 24 | private GCHandle _frameHandle; 25 | private System.IntPtr _framePointer; 26 | private uint _lastFrame; 27 | 28 | /// 29 | /// The texture. 30 | /// 31 | Texture2D texture; 32 | 33 | /// 34 | /// The rgba mat. 35 | /// 36 | Mat rgbaMat; 37 | 38 | /// 39 | /// The m sepia kernel. 40 | /// 41 | Mat mSepiaKernel; 42 | 43 | /// 44 | /// The m size0. 45 | /// 46 | Size mSize0; 47 | 48 | /// 49 | /// The m intermediate mat. 50 | /// 51 | Mat mIntermediateMat; 52 | 53 | public enum modeType 54 | { 55 | original, 56 | sepia, 57 | pixelize, 58 | } 59 | 60 | /// 61 | /// The mode. 62 | /// 63 | modeType mode; 64 | 65 | 66 | /// 67 | /// The original mode toggle. 68 | /// 69 | public Toggle originalModeToggle; 70 | 71 | 72 | /// 73 | /// The sepia mode toggle. 74 | /// 75 | public Toggle sepiaModeToggle; 76 | 77 | 78 | /// 79 | /// The pixelize mode toggle. 80 | /// 81 | public Toggle pixelizeModeToggle; 82 | 83 | // Use this for initialization 84 | void Start() 85 | { 86 | if (originalModeToggle.isOn) 87 | { 88 | mode = modeType.original; 89 | } 90 | if (sepiaModeToggle.isOn) 91 | { 92 | mode = modeType.sepia; 93 | } 94 | if (pixelizeModeToggle.isOn) 95 | { 96 | mode = modeType.pixelize; 97 | } 98 | 99 | // sepia 100 | mSepiaKernel = new Mat(4, 4, CvType.CV_32F); 101 | mSepiaKernel.put(0, 0, /* R */0.189f, 0.769f, 0.393f, 0f); 102 | mSepiaKernel.put(1, 0, /* G */0.168f, 0.686f, 0.349f, 0f); 103 | mSepiaKernel.put(2, 0, /* B */0.131f, 0.534f, 0.272f, 0f); 104 | mSepiaKernel.put(3, 0, /* A */0.000f, 0.000f, 0.000f, 1f); 105 | 106 | 107 | // pixelize 108 | mIntermediateMat = new Mat(); 109 | mSize0 = new Size(); 110 | } 111 | 112 | void Update() 113 | { 114 | if (_camera != null) 115 | _device = _camera.Device; 116 | 117 | if (_device != null && _device.IsActive && !_device.IsPaused) 118 | { 119 | if (_device.CurrentWidth != _frameWidth || _device.CurrentHeight != _frameHeight) 120 | { 121 | CreateBuffer(_device.CurrentWidth, _device.CurrentHeight); 122 | } 123 | 124 | uint lastFrame = AVProLiveCameraPlugin.GetLastFrame(_device.DeviceIndex); 125 | 126 | // Reset _lastFrame at the timing when the camera is reset. 127 | if (lastFrame < _lastFrame) 128 | _lastFrame = 0; 129 | 130 | if (lastFrame != _lastFrame) 131 | { 132 | _lastFrame = lastFrame; 133 | 134 | bool result = AVProLiveCameraPlugin.GetFrameAsColor32(_device.DeviceIndex, _framePointer, _frameWidth, _frameHeight); 135 | 136 | if (result) 137 | { 138 | 139 | MatUtils.copyToMat(_frameData, rgbaMat); 140 | 141 | 142 | if (mode == modeType.original) 143 | { 144 | 145 | } 146 | else if (mode == modeType.sepia) 147 | { 148 | 149 | Core.transform(rgbaMat, rgbaMat, mSepiaKernel); 150 | 151 | } 152 | else if (mode == modeType.pixelize) 153 | { 154 | 155 | Imgproc.resize(rgbaMat, mIntermediateMat, mSize0, 0.1, 0.1, Imgproc.INTER_NEAREST); 156 | Imgproc.resize(mIntermediateMat, rgbaMat, rgbaMat.size(), 0.0, 0.0, Imgproc.INTER_NEAREST); 157 | 158 | } 159 | 160 | 161 | Imgproc.putText(rgbaMat, "AVPro With OpenCV for Unity Example", new Point(50, rgbaMat.rows() / 2), Imgproc.FONT_HERSHEY_SIMPLEX, 2.0, new Scalar(255, 0, 0, 255), 5, Imgproc.LINE_AA, false); 162 | Imgproc.putText(rgbaMat, "W:" + rgbaMat.width() + " H:" + rgbaMat.height() + " SO:" + Screen.orientation, new Point(5, rgbaMat.rows() - 10), Imgproc.FONT_HERSHEY_SIMPLEX, 1.0, new Scalar(255, 255, 255, 255), 2, Imgproc.LINE_AA, false); 163 | 164 | //Convert Mat to Texture2D 165 | Utils.matToTexture2D(rgbaMat, texture); 166 | 167 | } 168 | } 169 | } 170 | } 171 | 172 | private void CreateBuffer(int width, int height) 173 | { 174 | // Free buffer if it's diffarent size 175 | if (_frameHandle.IsAllocated && _frameData != null) 176 | { 177 | if (_frameData.Length != width * height) 178 | { 179 | FreeBuffer(); 180 | } 181 | } 182 | 183 | if (_frameData == null) 184 | { 185 | _frameWidth = width; 186 | _frameHeight = height; 187 | _frameData = new Color32[_frameWidth * _frameHeight]; 188 | _frameHandle = GCHandle.Alloc(_frameData, GCHandleType.Pinned); 189 | _framePointer = _frameHandle.AddrOfPinnedObject(); 190 | 191 | texture = new Texture2D(_frameWidth, _frameHeight, TextureFormat.RGBA32, false, false); 192 | 193 | rgbaMat = new Mat(texture.height, texture.width, CvType.CV_8UC4); 194 | 195 | 196 | gameObject.GetComponent().material.mainTexture = texture; 197 | 198 | gameObject.transform.localScale = new Vector3(texture.width, texture.height, 1); 199 | Debug.Log("Screen.width " + Screen.width + " Screen.height " + Screen.height + " Screen.orientation " + Screen.orientation); 200 | 201 | float widthScale = (float)Screen.width / width; 202 | float heightScale = (float)Screen.height / height; 203 | if (widthScale < heightScale) 204 | { 205 | Camera.main.orthographicSize = (width * (float)Screen.height / (float)Screen.width) / 2; 206 | } 207 | else 208 | { 209 | Camera.main.orthographicSize = height / 2; 210 | } 211 | 212 | } 213 | } 214 | 215 | private void FreeBuffer() 216 | { 217 | if (_frameHandle.IsAllocated) 218 | { 219 | _framePointer = System.IntPtr.Zero; 220 | _frameHandle.Free(); 221 | _frameData = null; 222 | } 223 | 224 | if (texture) 225 | { 226 | Texture2D.DestroyImmediate(texture); 227 | texture = null; 228 | } 229 | 230 | if (rgbaMat != null) 231 | rgbaMat.Dispose(); 232 | } 233 | 234 | void OnDestroy() 235 | { 236 | FreeBuffer(); 237 | 238 | if (mSepiaKernel != null) 239 | { 240 | mSepiaKernel.Dispose(); 241 | mSepiaKernel = null; 242 | } 243 | 244 | if (mIntermediateMat != null) 245 | { 246 | mIntermediateMat.Dispose(); 247 | mIntermediateMat = null; 248 | } 249 | } 250 | 251 | /// 252 | /// Raises the back button event. 253 | /// 254 | public void OnBackButton() 255 | { 256 | SceneManager.LoadScene("AVProWithOpenCVForUnityExample"); 257 | } 258 | 259 | /// 260 | /// Raises the original mode toggle event. 261 | /// 262 | public void OnOriginalModeToggle() 263 | { 264 | 265 | if (originalModeToggle.isOn) 266 | { 267 | mode = modeType.original; 268 | } 269 | } 270 | 271 | /// 272 | /// Raises the sepia mode toggle event. 273 | /// 274 | public void OnSepiaModeToggle() 275 | { 276 | 277 | if (sepiaModeToggle.isOn) 278 | { 279 | mode = modeType.sepia; 280 | } 281 | } 282 | 283 | /// 284 | /// Raises the pixelize mode toggle event. 285 | /// 286 | public void OnPixelizeModeToggle() 287 | { 288 | 289 | if (pixelizeModeToggle.isOn) 290 | { 291 | mode = modeType.pixelize; 292 | } 293 | } 294 | } 295 | } -------------------------------------------------------------------------------- /Assets/AVProWithOpenCVForUnityExample/AVProLiveCameraGetFrameAsColor32Example/AVProLiveCameraGetFrameAsColor32Example.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 50481e624086a834188f8f07111ac0c5 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/AVProWithOpenCVForUnityExample/AVProLiveCameraGetFrameAsColor32Example/AVProLiveCameraGetFrameAsColor32Example.unity: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!29 &1 4 | OcclusionCullingSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_OcclusionBakeSettings: 8 | smallestOccluder: 5 9 | smallestHole: 0.25 10 | backfaceThreshold: 100 11 | m_SceneGUID: 00000000000000000000000000000000 12 | m_OcclusionCullingData: {fileID: 0} 13 | --- !u!104 &2 14 | RenderSettings: 15 | m_ObjectHideFlags: 0 16 | serializedVersion: 9 17 | m_Fog: 0 18 | m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} 19 | m_FogMode: 3 20 | m_FogDensity: 0.01 21 | m_LinearFogStart: 0 22 | m_LinearFogEnd: 300 23 | m_AmbientSkyColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} 24 | m_AmbientEquatorColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} 25 | m_AmbientGroundColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} 26 | m_AmbientIntensity: 1 27 | m_AmbientMode: 3 28 | m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} 29 | m_SkyboxMaterial: {fileID: 0} 30 | m_HaloStrength: 0.5 31 | m_FlareStrength: 1 32 | m_FlareFadeSpeed: 3 33 | m_HaloTexture: {fileID: 0} 34 | m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} 35 | m_DefaultReflectionMode: 0 36 | m_DefaultReflectionResolution: 128 37 | m_ReflectionBounces: 1 38 | m_ReflectionIntensity: 1 39 | m_CustomReflection: {fileID: 0} 40 | m_Sun: {fileID: 0} 41 | m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} 42 | m_UseRadianceAmbientProbe: 0 43 | --- !u!157 &4 44 | LightmapSettings: 45 | m_ObjectHideFlags: 0 46 | serializedVersion: 12 47 | m_GIWorkflowMode: 1 48 | m_GISettings: 49 | serializedVersion: 2 50 | m_BounceScale: 1 51 | m_IndirectOutputScale: 1 52 | m_AlbedoBoost: 1 53 | m_EnvironmentLightingMode: 0 54 | m_EnableBakedLightmaps: 1 55 | m_EnableRealtimeLightmaps: 0 56 | m_LightmapEditorSettings: 57 | serializedVersion: 12 58 | m_Resolution: 1 59 | m_BakeResolution: 50 60 | m_AtlasSize: 1024 61 | m_AO: 1 62 | m_AOMaxDistance: 1 63 | m_CompAOExponent: 1 64 | m_CompAOExponentDirect: 0 65 | m_ExtractAmbientOcclusion: 0 66 | m_Padding: 2 67 | m_LightmapParameters: {fileID: 0} 68 | m_LightmapsBakeMode: 1 69 | m_TextureCompression: 0 70 | m_FinalGather: 0 71 | m_FinalGatherFiltering: 1 72 | m_FinalGatherRayCount: 256 73 | m_ReflectionCompression: 2 74 | m_MixedBakeMode: 1 75 | m_BakeBackend: 0 76 | m_PVRSampling: 1 77 | m_PVRDirectSampleCount: 32 78 | m_PVRSampleCount: 512 79 | m_PVRBounces: 2 80 | m_PVREnvironmentSampleCount: 512 81 | m_PVREnvironmentReferencePointCount: 2048 82 | m_PVRFilteringMode: 0 83 | m_PVRDenoiserTypeDirect: 0 84 | m_PVRDenoiserTypeIndirect: 0 85 | m_PVRDenoiserTypeAO: 0 86 | m_PVRFilterTypeDirect: 0 87 | m_PVRFilterTypeIndirect: 0 88 | m_PVRFilterTypeAO: 0 89 | m_PVREnvironmentMIS: 0 90 | m_PVRCulling: 1 91 | m_PVRFilteringGaussRadiusDirect: 1 92 | m_PVRFilteringGaussRadiusIndirect: 5 93 | m_PVRFilteringGaussRadiusAO: 2 94 | m_PVRFilteringAtrousPositionSigmaDirect: 0.5 95 | m_PVRFilteringAtrousPositionSigmaIndirect: 2 96 | m_PVRFilteringAtrousPositionSigmaAO: 1 97 | m_ExportTrainingData: 0 98 | m_TrainingDataDestination: TrainingData 99 | m_LightProbeSampleCountMultiplier: 4 100 | m_LightingDataAsset: {fileID: 0} 101 | m_LightingSettings: {fileID: 557148258} 102 | --- !u!1 &5 103 | GameObject: 104 | m_ObjectHideFlags: 0 105 | m_CorrespondingSourceObject: {fileID: 0} 106 | m_PrefabInstance: {fileID: 0} 107 | m_PrefabAsset: {fileID: 0} 108 | serializedVersion: 6 109 | m_Component: 110 | - component: {fileID: 6} 111 | - component: {fileID: 7} 112 | - component: {fileID: 8} 113 | m_Layer: 0 114 | m_Name: Main Camera 115 | m_TagString: MainCamera 116 | m_Icon: {fileID: 0} 117 | m_NavMeshLayer: 0 118 | m_StaticEditorFlags: 0 119 | m_IsActive: 1 120 | --- !u!4 &6 121 | Transform: 122 | m_ObjectHideFlags: 0 123 | m_CorrespondingSourceObject: {fileID: 0} 124 | m_PrefabInstance: {fileID: 0} 125 | m_PrefabAsset: {fileID: 0} 126 | m_GameObject: {fileID: 5} 127 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 128 | m_LocalPosition: {x: 0, y: 1, z: -10} 129 | m_LocalScale: {x: 1, y: 1, z: 1} 130 | m_Children: [] 131 | m_Father: {fileID: 0} 132 | m_RootOrder: 1 133 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 134 | --- !u!20 &7 135 | Camera: 136 | m_ObjectHideFlags: 0 137 | m_CorrespondingSourceObject: {fileID: 0} 138 | m_PrefabInstance: {fileID: 0} 139 | m_PrefabAsset: {fileID: 0} 140 | m_GameObject: {fileID: 5} 141 | m_Enabled: 1 142 | serializedVersion: 2 143 | m_ClearFlags: 2 144 | m_BackGroundColor: {r: 0.089663595, g: 0.09542459, b: 0.104477584, a: 0.019607844} 145 | m_projectionMatrixMode: 1 146 | m_GateFitMode: 2 147 | m_FOVAxisMode: 0 148 | m_SensorSize: {x: 36, y: 24} 149 | m_LensShift: {x: 0, y: 0} 150 | m_FocalLength: 50 151 | m_NormalizedViewPortRect: 152 | serializedVersion: 2 153 | x: 0 154 | y: 0 155 | width: 1 156 | height: 1 157 | near clip plane: 0.3 158 | far clip plane: 1000 159 | field of view: 60 160 | orthographic: 1 161 | orthographic size: 360 162 | m_Depth: -1 163 | m_CullingMask: 164 | serializedVersion: 2 165 | m_Bits: 4294967295 166 | m_RenderingPath: -1 167 | m_TargetTexture: {fileID: 0} 168 | m_TargetDisplay: 0 169 | m_TargetEye: 3 170 | m_HDR: 0 171 | m_AllowMSAA: 1 172 | m_AllowDynamicResolution: 0 173 | m_ForceIntoRT: 0 174 | m_OcclusionCulling: 1 175 | m_StereoConvergence: 10 176 | m_StereoSeparation: 0.022 177 | --- !u!81 &8 178 | AudioListener: 179 | m_ObjectHideFlags: 0 180 | m_CorrespondingSourceObject: {fileID: 0} 181 | m_PrefabInstance: {fileID: 0} 182 | m_PrefabAsset: {fileID: 0} 183 | m_GameObject: {fileID: 5} 184 | m_Enabled: 1 185 | --- !u!196 &14 186 | NavMeshSettings: 187 | serializedVersion: 2 188 | m_ObjectHideFlags: 0 189 | m_BuildSettings: 190 | serializedVersion: 2 191 | agentTypeID: 0 192 | agentRadius: 0.5 193 | agentHeight: 2 194 | agentSlope: 45 195 | agentClimb: 0.4 196 | ledgeDropHeight: 0 197 | maxJumpAcrossDistance: 0 198 | minRegionArea: 2 199 | manualCellSize: 0 200 | cellSize: 0.16666666 201 | manualTileSize: 0 202 | tileSize: 256 203 | accuratePlacement: 0 204 | maxJobWorkers: 0 205 | preserveTilesOutsideBounds: 0 206 | debug: 207 | m_Flags: 0 208 | m_NavMeshData: {fileID: 0} 209 | --- !u!1 &6632536 210 | GameObject: 211 | m_ObjectHideFlags: 0 212 | m_CorrespondingSourceObject: {fileID: 0} 213 | m_PrefabInstance: {fileID: 0} 214 | m_PrefabAsset: {fileID: 0} 215 | serializedVersion: 6 216 | m_Component: 217 | - component: {fileID: 6632537} 218 | - component: {fileID: 6632539} 219 | - component: {fileID: 6632538} 220 | m_Layer: 5 221 | m_Name: Background 222 | m_TagString: Untagged 223 | m_Icon: {fileID: 0} 224 | m_NavMeshLayer: 0 225 | m_StaticEditorFlags: 0 226 | m_IsActive: 1 227 | --- !u!224 &6632537 228 | RectTransform: 229 | m_ObjectHideFlags: 0 230 | m_CorrespondingSourceObject: {fileID: 0} 231 | m_PrefabInstance: {fileID: 0} 232 | m_PrefabAsset: {fileID: 0} 233 | m_GameObject: {fileID: 6632536} 234 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 235 | m_LocalPosition: {x: 0, y: 0, z: 0} 236 | m_LocalScale: {x: 1, y: 1, z: 1} 237 | m_Children: 238 | - {fileID: 521835801} 239 | m_Father: {fileID: 573028660} 240 | m_RootOrder: 0 241 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 242 | m_AnchorMin: {x: 0, y: 1} 243 | m_AnchorMax: {x: 0, y: 1} 244 | m_AnchoredPosition: {x: 20, y: -20} 245 | m_SizeDelta: {x: 40, y: 40} 246 | m_Pivot: {x: 0.5, y: 0.5} 247 | --- !u!114 &6632538 248 | MonoBehaviour: 249 | m_ObjectHideFlags: 0 250 | m_CorrespondingSourceObject: {fileID: 0} 251 | m_PrefabInstance: {fileID: 0} 252 | m_PrefabAsset: {fileID: 0} 253 | m_GameObject: {fileID: 6632536} 254 | m_Enabled: 1 255 | m_EditorHideFlags: 0 256 | m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} 257 | m_Name: 258 | m_EditorClassIdentifier: 259 | m_Material: {fileID: 0} 260 | m_Color: {r: 1, g: 1, b: 1, a: 1} 261 | m_RaycastTarget: 1 262 | m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} 263 | m_Maskable: 1 264 | m_OnCullStateChanged: 265 | m_PersistentCalls: 266 | m_Calls: [] 267 | m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} 268 | m_Type: 1 269 | m_PreserveAspect: 0 270 | m_FillCenter: 1 271 | m_FillMethod: 4 272 | m_FillAmount: 1 273 | m_FillClockwise: 1 274 | m_FillOrigin: 0 275 | m_UseSpriteMesh: 0 276 | m_PixelsPerUnitMultiplier: 1 277 | --- !u!222 &6632539 278 | CanvasRenderer: 279 | m_ObjectHideFlags: 0 280 | m_CorrespondingSourceObject: {fileID: 0} 281 | m_PrefabInstance: {fileID: 0} 282 | m_PrefabAsset: {fileID: 0} 283 | m_GameObject: {fileID: 6632536} 284 | m_CullTransparentMesh: 1 285 | --- !u!1 &14648213 286 | GameObject: 287 | m_ObjectHideFlags: 0 288 | m_CorrespondingSourceObject: {fileID: 0} 289 | m_PrefabInstance: {fileID: 0} 290 | m_PrefabAsset: {fileID: 0} 291 | serializedVersion: 6 292 | m_Component: 293 | - component: {fileID: 14648214} 294 | - component: {fileID: 14648216} 295 | - component: {fileID: 14648215} 296 | m_Layer: 5 297 | m_Name: Checkmark 298 | m_TagString: Untagged 299 | m_Icon: {fileID: 0} 300 | m_NavMeshLayer: 0 301 | m_StaticEditorFlags: 0 302 | m_IsActive: 1 303 | --- !u!224 &14648214 304 | RectTransform: 305 | m_ObjectHideFlags: 0 306 | m_CorrespondingSourceObject: {fileID: 0} 307 | m_PrefabInstance: {fileID: 0} 308 | m_PrefabAsset: {fileID: 0} 309 | m_GameObject: {fileID: 14648213} 310 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 311 | m_LocalPosition: {x: 0, y: 0, z: 0} 312 | m_LocalScale: {x: 1, y: 1, z: 1} 313 | m_Children: [] 314 | m_Father: {fileID: 548212200} 315 | m_RootOrder: 0 316 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 317 | m_AnchorMin: {x: 0.5, y: 0.5} 318 | m_AnchorMax: {x: 0.5, y: 0.5} 319 | m_AnchoredPosition: {x: 0, y: 0} 320 | m_SizeDelta: {x: 40, y: 40} 321 | m_Pivot: {x: 0.5, y: 0.5} 322 | --- !u!114 &14648215 323 | MonoBehaviour: 324 | m_ObjectHideFlags: 0 325 | m_CorrespondingSourceObject: {fileID: 0} 326 | m_PrefabInstance: {fileID: 0} 327 | m_PrefabAsset: {fileID: 0} 328 | m_GameObject: {fileID: 14648213} 329 | m_Enabled: 1 330 | m_EditorHideFlags: 0 331 | m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} 332 | m_Name: 333 | m_EditorClassIdentifier: 334 | m_Material: {fileID: 0} 335 | m_Color: {r: 1, g: 1, b: 1, a: 1} 336 | m_RaycastTarget: 1 337 | m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} 338 | m_Maskable: 1 339 | m_OnCullStateChanged: 340 | m_PersistentCalls: 341 | m_Calls: [] 342 | m_Sprite: {fileID: 10901, guid: 0000000000000000f000000000000000, type: 0} 343 | m_Type: 0 344 | m_PreserveAspect: 0 345 | m_FillCenter: 1 346 | m_FillMethod: 4 347 | m_FillAmount: 1 348 | m_FillClockwise: 1 349 | m_FillOrigin: 0 350 | m_UseSpriteMesh: 0 351 | m_PixelsPerUnitMultiplier: 1 352 | --- !u!222 &14648216 353 | CanvasRenderer: 354 | m_ObjectHideFlags: 0 355 | m_CorrespondingSourceObject: {fileID: 0} 356 | m_PrefabInstance: {fileID: 0} 357 | m_PrefabAsset: {fileID: 0} 358 | m_GameObject: {fileID: 14648213} 359 | m_CullTransparentMesh: 1 360 | --- !u!1 &111280257 361 | GameObject: 362 | m_ObjectHideFlags: 0 363 | m_CorrespondingSourceObject: {fileID: 0} 364 | m_PrefabInstance: {fileID: 0} 365 | m_PrefabAsset: {fileID: 0} 366 | serializedVersion: 6 367 | m_Component: 368 | - component: {fileID: 111280261} 369 | - component: {fileID: 111280260} 370 | - component: {fileID: 111280259} 371 | - component: {fileID: 111280258} 372 | m_Layer: 5 373 | m_Name: Canvas 374 | m_TagString: Untagged 375 | m_Icon: {fileID: 0} 376 | m_NavMeshLayer: 0 377 | m_StaticEditorFlags: 0 378 | m_IsActive: 1 379 | --- !u!114 &111280258 380 | MonoBehaviour: 381 | m_ObjectHideFlags: 0 382 | m_CorrespondingSourceObject: {fileID: 0} 383 | m_PrefabInstance: {fileID: 0} 384 | m_PrefabAsset: {fileID: 0} 385 | m_GameObject: {fileID: 111280257} 386 | m_Enabled: 1 387 | m_EditorHideFlags: 0 388 | m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} 389 | m_Name: 390 | m_EditorClassIdentifier: 391 | m_IgnoreReversedGraphics: 1 392 | m_BlockingObjects: 0 393 | m_BlockingMask: 394 | serializedVersion: 2 395 | m_Bits: 4294967295 396 | --- !u!114 &111280259 397 | MonoBehaviour: 398 | m_ObjectHideFlags: 0 399 | m_CorrespondingSourceObject: {fileID: 0} 400 | m_PrefabInstance: {fileID: 0} 401 | m_PrefabAsset: {fileID: 0} 402 | m_GameObject: {fileID: 111280257} 403 | m_Enabled: 1 404 | m_EditorHideFlags: 0 405 | m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} 406 | m_Name: 407 | m_EditorClassIdentifier: 408 | m_UiScaleMode: 1 409 | m_ReferencePixelsPerUnit: 100 410 | m_ScaleFactor: 1 411 | m_ReferenceResolution: {x: 800, y: 600} 412 | m_ScreenMatchMode: 0 413 | m_MatchWidthOrHeight: 0 414 | m_PhysicalUnit: 3 415 | m_FallbackScreenDPI: 96 416 | m_DefaultSpriteDPI: 96 417 | m_DynamicPixelsPerUnit: 1 418 | m_PresetInfoIsWorld: 0 419 | --- !u!223 &111280260 420 | Canvas: 421 | m_ObjectHideFlags: 0 422 | m_CorrespondingSourceObject: {fileID: 0} 423 | m_PrefabInstance: {fileID: 0} 424 | m_PrefabAsset: {fileID: 0} 425 | m_GameObject: {fileID: 111280257} 426 | m_Enabled: 1 427 | serializedVersion: 3 428 | m_RenderMode: 0 429 | m_Camera: {fileID: 0} 430 | m_PlaneDistance: 100 431 | m_PixelPerfect: 0 432 | m_ReceivesEvents: 1 433 | m_OverrideSorting: 0 434 | m_OverridePixelPerfect: 0 435 | m_SortingBucketNormalizedSize: 0 436 | m_AdditionalShaderChannelsFlag: 25 437 | m_SortingLayerID: 0 438 | m_SortingOrder: 0 439 | m_TargetDisplay: 0 440 | --- !u!224 &111280261 441 | RectTransform: 442 | m_ObjectHideFlags: 0 443 | m_CorrespondingSourceObject: {fileID: 0} 444 | m_PrefabInstance: {fileID: 0} 445 | m_PrefabAsset: {fileID: 0} 446 | m_GameObject: {fileID: 111280257} 447 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 448 | m_LocalPosition: {x: 0, y: 0, z: 0} 449 | m_LocalScale: {x: 0, y: 0, z: 0} 450 | m_Children: 451 | - {fileID: 614697263} 452 | m_Father: {fileID: 0} 453 | m_RootOrder: 2 454 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 455 | m_AnchorMin: {x: 0, y: 0} 456 | m_AnchorMax: {x: 0, y: 0} 457 | m_AnchoredPosition: {x: 0, y: 0} 458 | m_SizeDelta: {x: 0, y: 0} 459 | m_Pivot: {x: 0, y: 0} 460 | --- !u!1 &340450921 461 | GameObject: 462 | m_ObjectHideFlags: 0 463 | m_CorrespondingSourceObject: {fileID: 0} 464 | m_PrefabInstance: {fileID: 0} 465 | m_PrefabAsset: {fileID: 0} 466 | serializedVersion: 6 467 | m_Component: 468 | - component: {fileID: 340450927} 469 | - component: {fileID: 340450926} 470 | - component: {fileID: 340450925} 471 | - component: {fileID: 340450924} 472 | - component: {fileID: 340450922} 473 | - component: {fileID: 340450923} 474 | m_Layer: 0 475 | m_Name: AVProLiveCameraGetFrameAsColor32Example 476 | m_TagString: Untagged 477 | m_Icon: {fileID: 0} 478 | m_NavMeshLayer: 0 479 | m_StaticEditorFlags: 0 480 | m_IsActive: 1 481 | --- !u!114 &340450922 482 | MonoBehaviour: 483 | m_ObjectHideFlags: 0 484 | m_CorrespondingSourceObject: {fileID: 0} 485 | m_PrefabInstance: {fileID: 0} 486 | m_PrefabAsset: {fileID: 0} 487 | m_GameObject: {fileID: 340450921} 488 | m_Enabled: 1 489 | m_EditorHideFlags: 0 490 | m_Script: {fileID: 11500000, guid: 50481e624086a834188f8f07111ac0c5, type: 3} 491 | m_Name: 492 | m_EditorClassIdentifier: 493 | _camera: {fileID: 1656361539} 494 | originalModeToggle: {fileID: 573028662} 495 | sepiaModeToggle: {fileID: 597765473} 496 | pixelizeModeToggle: {fileID: 1197787447} 497 | --- !u!114 &340450923 498 | MonoBehaviour: 499 | m_ObjectHideFlags: 0 500 | m_CorrespondingSourceObject: {fileID: 0} 501 | m_PrefabInstance: {fileID: 0} 502 | m_PrefabAsset: {fileID: 0} 503 | m_GameObject: {fileID: 340450921} 504 | m_Enabled: 1 505 | m_EditorHideFlags: 0 506 | m_Script: {fileID: 11500000, guid: b3afd8b9824360045957f5329d104d6d, type: 3} 507 | m_Name: 508 | m_EditorClassIdentifier: 509 | alignment: 1 510 | offset: {x: 10, y: 10} 511 | boxVisible: 1 512 | boxWidth: 75 513 | boxHeight: 30 514 | padding: {x: 8, y: 5} 515 | consoleHeight: 50 516 | --- !u!64 &340450924 517 | MeshCollider: 518 | m_ObjectHideFlags: 0 519 | m_CorrespondingSourceObject: {fileID: 0} 520 | m_PrefabInstance: {fileID: 0} 521 | m_PrefabAsset: {fileID: 0} 522 | m_GameObject: {fileID: 340450921} 523 | m_Material: {fileID: 0} 524 | m_IsTrigger: 0 525 | m_Enabled: 1 526 | serializedVersion: 4 527 | m_Convex: 0 528 | m_CookingOptions: 30 529 | m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} 530 | --- !u!23 &340450925 531 | MeshRenderer: 532 | m_ObjectHideFlags: 0 533 | m_CorrespondingSourceObject: {fileID: 0} 534 | m_PrefabInstance: {fileID: 0} 535 | m_PrefabAsset: {fileID: 0} 536 | m_GameObject: {fileID: 340450921} 537 | m_Enabled: 1 538 | m_CastShadows: 1 539 | m_ReceiveShadows: 1 540 | m_DynamicOccludee: 1 541 | m_MotionVectors: 1 542 | m_LightProbeUsage: 1 543 | m_ReflectionProbeUsage: 1 544 | m_RayTracingMode: 2 545 | m_RayTraceProcedural: 0 546 | m_RenderingLayerMask: 1 547 | m_RendererPriority: 0 548 | m_Materials: 549 | - {fileID: 2100000, guid: 3afa5cebfe59c1d49918e22598785af7, type: 2} 550 | m_StaticBatchInfo: 551 | firstSubMesh: 0 552 | subMeshCount: 0 553 | m_StaticBatchRoot: {fileID: 0} 554 | m_ProbeAnchor: {fileID: 0} 555 | m_LightProbeVolumeOverride: {fileID: 0} 556 | m_ScaleInLightmap: 1 557 | m_ReceiveGI: 1 558 | m_PreserveUVs: 0 559 | m_IgnoreNormalsForChartDetection: 0 560 | m_ImportantGI: 0 561 | m_StitchLightmapSeams: 1 562 | m_SelectedEditorRenderState: 3 563 | m_MinimumChartSize: 4 564 | m_AutoUVMaxDistance: 0.5 565 | m_AutoUVMaxAngle: 89 566 | m_LightmapParameters: {fileID: 0} 567 | m_SortingLayerID: 0 568 | m_SortingLayer: 0 569 | m_SortingOrder: 0 570 | m_AdditionalVertexStreams: {fileID: 0} 571 | --- !u!33 &340450926 572 | MeshFilter: 573 | m_ObjectHideFlags: 0 574 | m_CorrespondingSourceObject: {fileID: 0} 575 | m_PrefabInstance: {fileID: 0} 576 | m_PrefabAsset: {fileID: 0} 577 | m_GameObject: {fileID: 340450921} 578 | m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} 579 | --- !u!4 &340450927 580 | Transform: 581 | m_ObjectHideFlags: 0 582 | m_CorrespondingSourceObject: {fileID: 0} 583 | m_PrefabInstance: {fileID: 0} 584 | m_PrefabAsset: {fileID: 0} 585 | m_GameObject: {fileID: 340450921} 586 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 587 | m_LocalPosition: {x: 0, y: 0, z: 0} 588 | m_LocalScale: {x: 640, y: 480, z: 1} 589 | m_Children: [] 590 | m_Father: {fileID: 0} 591 | m_RootOrder: 0 592 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 593 | --- !u!1 &399113850 594 | GameObject: 595 | m_ObjectHideFlags: 0 596 | m_CorrespondingSourceObject: {fileID: 0} 597 | m_PrefabInstance: {fileID: 0} 598 | m_PrefabAsset: {fileID: 0} 599 | serializedVersion: 6 600 | m_Component: 601 | - component: {fileID: 399113853} 602 | - component: {fileID: 399113852} 603 | - component: {fileID: 399113851} 604 | m_Layer: 0 605 | m_Name: EventSystem 606 | m_TagString: Untagged 607 | m_Icon: {fileID: 0} 608 | m_NavMeshLayer: 0 609 | m_StaticEditorFlags: 0 610 | m_IsActive: 1 611 | --- !u!114 &399113851 612 | MonoBehaviour: 613 | m_ObjectHideFlags: 0 614 | m_CorrespondingSourceObject: {fileID: 0} 615 | m_PrefabInstance: {fileID: 0} 616 | m_PrefabAsset: {fileID: 0} 617 | m_GameObject: {fileID: 399113850} 618 | m_Enabled: 1 619 | m_EditorHideFlags: 0 620 | m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3} 621 | m_Name: 622 | m_EditorClassIdentifier: 623 | m_HorizontalAxis: Horizontal 624 | m_VerticalAxis: Vertical 625 | m_SubmitButton: Submit 626 | m_CancelButton: Cancel 627 | m_InputActionsPerSecond: 10 628 | m_RepeatDelay: 0.5 629 | m_ForceModuleActive: 0 630 | --- !u!114 &399113852 631 | MonoBehaviour: 632 | m_ObjectHideFlags: 0 633 | m_CorrespondingSourceObject: {fileID: 0} 634 | m_PrefabInstance: {fileID: 0} 635 | m_PrefabAsset: {fileID: 0} 636 | m_GameObject: {fileID: 399113850} 637 | m_Enabled: 1 638 | m_EditorHideFlags: 0 639 | m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3} 640 | m_Name: 641 | m_EditorClassIdentifier: 642 | m_FirstSelected: {fileID: 0} 643 | m_sendNavigationEvents: 1 644 | m_DragThreshold: 5 645 | --- !u!4 &399113853 646 | Transform: 647 | m_ObjectHideFlags: 0 648 | m_CorrespondingSourceObject: {fileID: 0} 649 | m_PrefabInstance: {fileID: 0} 650 | m_PrefabAsset: {fileID: 0} 651 | m_GameObject: {fileID: 399113850} 652 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 653 | m_LocalPosition: {x: 0, y: 0, z: 0} 654 | m_LocalScale: {x: 1, y: 1, z: 1} 655 | m_Children: [] 656 | m_Father: {fileID: 0} 657 | m_RootOrder: 3 658 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 659 | --- !u!1 &473706230 660 | GameObject: 661 | m_ObjectHideFlags: 0 662 | m_CorrespondingSourceObject: {fileID: 0} 663 | m_PrefabInstance: {fileID: 0} 664 | m_PrefabAsset: {fileID: 0} 665 | serializedVersion: 6 666 | m_Component: 667 | - component: {fileID: 473706231} 668 | - component: {fileID: 473706233} 669 | - component: {fileID: 473706232} 670 | m_Layer: 5 671 | m_Name: Label 672 | m_TagString: Untagged 673 | m_Icon: {fileID: 0} 674 | m_NavMeshLayer: 0 675 | m_StaticEditorFlags: 0 676 | m_IsActive: 1 677 | --- !u!224 &473706231 678 | RectTransform: 679 | m_ObjectHideFlags: 0 680 | m_CorrespondingSourceObject: {fileID: 0} 681 | m_PrefabInstance: {fileID: 0} 682 | m_PrefabAsset: {fileID: 0} 683 | m_GameObject: {fileID: 473706230} 684 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 685 | m_LocalPosition: {x: 0, y: 0, z: 0} 686 | m_LocalScale: {x: 1, y: 1, z: 1} 687 | m_Children: [] 688 | m_Father: {fileID: 573028660} 689 | m_RootOrder: 1 690 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 691 | m_AnchorMin: {x: 0, y: 0} 692 | m_AnchorMax: {x: 1, y: 1} 693 | m_AnchoredPosition: {x: 20, y: -5.5} 694 | m_SizeDelta: {x: -50, y: -13} 695 | m_Pivot: {x: 0.5, y: 0.5} 696 | --- !u!114 &473706232 697 | MonoBehaviour: 698 | m_ObjectHideFlags: 0 699 | m_CorrespondingSourceObject: {fileID: 0} 700 | m_PrefabInstance: {fileID: 0} 701 | m_PrefabAsset: {fileID: 0} 702 | m_GameObject: {fileID: 473706230} 703 | m_Enabled: 1 704 | m_EditorHideFlags: 0 705 | m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} 706 | m_Name: 707 | m_EditorClassIdentifier: 708 | m_Material: {fileID: 0} 709 | m_Color: {r: 1, g: 1, b: 1, a: 1} 710 | m_RaycastTarget: 1 711 | m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} 712 | m_Maskable: 1 713 | m_OnCullStateChanged: 714 | m_PersistentCalls: 715 | m_Calls: [] 716 | m_FontData: 717 | m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} 718 | m_FontSize: 14 719 | m_FontStyle: 0 720 | m_BestFit: 0 721 | m_MinSize: 10 722 | m_MaxSize: 40 723 | m_Alignment: 0 724 | m_AlignByGeometry: 0 725 | m_RichText: 1 726 | m_HorizontalOverflow: 0 727 | m_VerticalOverflow: 0 728 | m_LineSpacing: 1 729 | m_Text: Original 730 | --- !u!222 &473706233 731 | CanvasRenderer: 732 | m_ObjectHideFlags: 0 733 | m_CorrespondingSourceObject: {fileID: 0} 734 | m_PrefabInstance: {fileID: 0} 735 | m_PrefabAsset: {fileID: 0} 736 | m_GameObject: {fileID: 473706230} 737 | m_CullTransparentMesh: 1 738 | --- !u!1 &521835800 739 | GameObject: 740 | m_ObjectHideFlags: 0 741 | m_CorrespondingSourceObject: {fileID: 0} 742 | m_PrefabInstance: {fileID: 0} 743 | m_PrefabAsset: {fileID: 0} 744 | serializedVersion: 6 745 | m_Component: 746 | - component: {fileID: 521835801} 747 | - component: {fileID: 521835803} 748 | - component: {fileID: 521835802} 749 | m_Layer: 5 750 | m_Name: Checkmark 751 | m_TagString: Untagged 752 | m_Icon: {fileID: 0} 753 | m_NavMeshLayer: 0 754 | m_StaticEditorFlags: 0 755 | m_IsActive: 1 756 | --- !u!224 &521835801 757 | RectTransform: 758 | m_ObjectHideFlags: 0 759 | m_CorrespondingSourceObject: {fileID: 0} 760 | m_PrefabInstance: {fileID: 0} 761 | m_PrefabAsset: {fileID: 0} 762 | m_GameObject: {fileID: 521835800} 763 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 764 | m_LocalPosition: {x: 0, y: 0, z: 0} 765 | m_LocalScale: {x: 1, y: 1, z: 1} 766 | m_Children: [] 767 | m_Father: {fileID: 6632537} 768 | m_RootOrder: 0 769 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 770 | m_AnchorMin: {x: 0.5, y: 0.5} 771 | m_AnchorMax: {x: 0.5, y: 0.5} 772 | m_AnchoredPosition: {x: 0, y: 0} 773 | m_SizeDelta: {x: 40, y: 40} 774 | m_Pivot: {x: 0.5, y: 0.5} 775 | --- !u!114 &521835802 776 | MonoBehaviour: 777 | m_ObjectHideFlags: 0 778 | m_CorrespondingSourceObject: {fileID: 0} 779 | m_PrefabInstance: {fileID: 0} 780 | m_PrefabAsset: {fileID: 0} 781 | m_GameObject: {fileID: 521835800} 782 | m_Enabled: 1 783 | m_EditorHideFlags: 0 784 | m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} 785 | m_Name: 786 | m_EditorClassIdentifier: 787 | m_Material: {fileID: 0} 788 | m_Color: {r: 1, g: 1, b: 1, a: 1} 789 | m_RaycastTarget: 1 790 | m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} 791 | m_Maskable: 1 792 | m_OnCullStateChanged: 793 | m_PersistentCalls: 794 | m_Calls: [] 795 | m_Sprite: {fileID: 10901, guid: 0000000000000000f000000000000000, type: 0} 796 | m_Type: 0 797 | m_PreserveAspect: 0 798 | m_FillCenter: 1 799 | m_FillMethod: 4 800 | m_FillAmount: 1 801 | m_FillClockwise: 1 802 | m_FillOrigin: 0 803 | m_UseSpriteMesh: 0 804 | m_PixelsPerUnitMultiplier: 1 805 | --- !u!222 &521835803 806 | CanvasRenderer: 807 | m_ObjectHideFlags: 0 808 | m_CorrespondingSourceObject: {fileID: 0} 809 | m_PrefabInstance: {fileID: 0} 810 | m_PrefabAsset: {fileID: 0} 811 | m_GameObject: {fileID: 521835800} 812 | m_CullTransparentMesh: 1 813 | --- !u!1 &548212199 814 | GameObject: 815 | m_ObjectHideFlags: 0 816 | m_CorrespondingSourceObject: {fileID: 0} 817 | m_PrefabInstance: {fileID: 0} 818 | m_PrefabAsset: {fileID: 0} 819 | serializedVersion: 6 820 | m_Component: 821 | - component: {fileID: 548212200} 822 | - component: {fileID: 548212202} 823 | - component: {fileID: 548212201} 824 | m_Layer: 5 825 | m_Name: Background 826 | m_TagString: Untagged 827 | m_Icon: {fileID: 0} 828 | m_NavMeshLayer: 0 829 | m_StaticEditorFlags: 0 830 | m_IsActive: 1 831 | --- !u!224 &548212200 832 | RectTransform: 833 | m_ObjectHideFlags: 0 834 | m_CorrespondingSourceObject: {fileID: 0} 835 | m_PrefabInstance: {fileID: 0} 836 | m_PrefabAsset: {fileID: 0} 837 | m_GameObject: {fileID: 548212199} 838 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 839 | m_LocalPosition: {x: 0, y: 0, z: 0} 840 | m_LocalScale: {x: 1, y: 1, z: 1} 841 | m_Children: 842 | - {fileID: 14648214} 843 | m_Father: {fileID: 597765471} 844 | m_RootOrder: 0 845 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 846 | m_AnchorMin: {x: 0, y: 1} 847 | m_AnchorMax: {x: 0, y: 1} 848 | m_AnchoredPosition: {x: 20, y: -20} 849 | m_SizeDelta: {x: 40, y: 40} 850 | m_Pivot: {x: 0.5, y: 0.5} 851 | --- !u!114 &548212201 852 | MonoBehaviour: 853 | m_ObjectHideFlags: 0 854 | m_CorrespondingSourceObject: {fileID: 0} 855 | m_PrefabInstance: {fileID: 0} 856 | m_PrefabAsset: {fileID: 0} 857 | m_GameObject: {fileID: 548212199} 858 | m_Enabled: 1 859 | m_EditorHideFlags: 0 860 | m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} 861 | m_Name: 862 | m_EditorClassIdentifier: 863 | m_Material: {fileID: 0} 864 | m_Color: {r: 1, g: 1, b: 1, a: 1} 865 | m_RaycastTarget: 1 866 | m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} 867 | m_Maskable: 1 868 | m_OnCullStateChanged: 869 | m_PersistentCalls: 870 | m_Calls: [] 871 | m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} 872 | m_Type: 1 873 | m_PreserveAspect: 0 874 | m_FillCenter: 1 875 | m_FillMethod: 4 876 | m_FillAmount: 1 877 | m_FillClockwise: 1 878 | m_FillOrigin: 0 879 | m_UseSpriteMesh: 0 880 | m_PixelsPerUnitMultiplier: 1 881 | --- !u!222 &548212202 882 | CanvasRenderer: 883 | m_ObjectHideFlags: 0 884 | m_CorrespondingSourceObject: {fileID: 0} 885 | m_PrefabInstance: {fileID: 0} 886 | m_PrefabAsset: {fileID: 0} 887 | m_GameObject: {fileID: 548212199} 888 | m_CullTransparentMesh: 1 889 | --- !u!850595691 &557148258 890 | LightingSettings: 891 | m_ObjectHideFlags: 0 892 | m_CorrespondingSourceObject: {fileID: 0} 893 | m_PrefabInstance: {fileID: 0} 894 | m_PrefabAsset: {fileID: 0} 895 | m_Name: Settings.lighting 896 | serializedVersion: 3 897 | m_GIWorkflowMode: 1 898 | m_EnableBakedLightmaps: 1 899 | m_EnableRealtimeLightmaps: 0 900 | m_RealtimeEnvironmentLighting: 1 901 | m_BounceScale: 1 902 | m_AlbedoBoost: 1 903 | m_IndirectOutputScale: 1 904 | m_UsingShadowmask: 0 905 | m_BakeBackend: 0 906 | m_LightmapMaxSize: 1024 907 | m_BakeResolution: 50 908 | m_Padding: 2 909 | m_TextureCompression: 0 910 | m_AO: 1 911 | m_AOMaxDistance: 1 912 | m_CompAOExponent: 1 913 | m_CompAOExponentDirect: 0 914 | m_ExtractAO: 0 915 | m_MixedBakeMode: 1 916 | m_LightmapsBakeMode: 1 917 | m_FilterMode: 1 918 | m_LightmapParameters: {fileID: 15204, guid: 0000000000000000f000000000000000, type: 0} 919 | m_ExportTrainingData: 0 920 | m_TrainingDataDestination: TrainingData 921 | m_RealtimeResolution: 1 922 | m_ForceWhiteAlbedo: 0 923 | m_ForceUpdates: 0 924 | m_FinalGather: 0 925 | m_FinalGatherRayCount: 256 926 | m_FinalGatherFiltering: 1 927 | m_PVRCulling: 1 928 | m_PVRSampling: 1 929 | m_PVRDirectSampleCount: 32 930 | m_PVRSampleCount: 512 931 | m_PVREnvironmentSampleCount: 512 932 | m_PVREnvironmentReferencePointCount: 2048 933 | m_LightProbeSampleCountMultiplier: 4 934 | m_PVRBounces: 2 935 | m_PVRMinBounces: 2 936 | m_PVREnvironmentMIS: 0 937 | m_PVRFilteringMode: 0 938 | m_PVRDenoiserTypeDirect: 0 939 | m_PVRDenoiserTypeIndirect: 0 940 | m_PVRDenoiserTypeAO: 0 941 | m_PVRFilterTypeDirect: 0 942 | m_PVRFilterTypeIndirect: 0 943 | m_PVRFilterTypeAO: 0 944 | m_PVRFilteringGaussRadiusDirect: 1 945 | m_PVRFilteringGaussRadiusIndirect: 5 946 | m_PVRFilteringGaussRadiusAO: 2 947 | m_PVRFilteringAtrousPositionSigmaDirect: 0.5 948 | m_PVRFilteringAtrousPositionSigmaIndirect: 2 949 | m_PVRFilteringAtrousPositionSigmaAO: 1 950 | --- !u!1 &573028659 951 | GameObject: 952 | m_ObjectHideFlags: 0 953 | m_CorrespondingSourceObject: {fileID: 0} 954 | m_PrefabInstance: {fileID: 0} 955 | m_PrefabAsset: {fileID: 0} 956 | serializedVersion: 6 957 | m_Component: 958 | - component: {fileID: 573028660} 959 | - component: {fileID: 573028662} 960 | - component: {fileID: 573028661} 961 | m_Layer: 5 962 | m_Name: OriginalModeToggle 963 | m_TagString: Untagged 964 | m_Icon: {fileID: 0} 965 | m_NavMeshLayer: 0 966 | m_StaticEditorFlags: 0 967 | m_IsActive: 1 968 | --- !u!224 &573028660 969 | RectTransform: 970 | m_ObjectHideFlags: 0 971 | m_CorrespondingSourceObject: {fileID: 0} 972 | m_PrefabInstance: {fileID: 0} 973 | m_PrefabAsset: {fileID: 0} 974 | m_GameObject: {fileID: 573028659} 975 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 976 | m_LocalPosition: {x: 0, y: 0, z: 0} 977 | m_LocalScale: {x: 1, y: 1, z: 1} 978 | m_Children: 979 | - {fileID: 6632537} 980 | - {fileID: 473706231} 981 | m_Father: {fileID: 1762430820} 982 | m_RootOrder: 0 983 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 984 | m_AnchorMin: {x: 0, y: 0} 985 | m_AnchorMax: {x: 0, y: 0} 986 | m_AnchoredPosition: {x: 0, y: 0} 987 | m_SizeDelta: {x: 0, y: 0} 988 | m_Pivot: {x: 0.5, y: 0.5} 989 | --- !u!114 &573028661 990 | MonoBehaviour: 991 | m_ObjectHideFlags: 0 992 | m_CorrespondingSourceObject: {fileID: 0} 993 | m_PrefabInstance: {fileID: 0} 994 | m_PrefabAsset: {fileID: 0} 995 | m_GameObject: {fileID: 573028659} 996 | m_Enabled: 1 997 | m_EditorHideFlags: 0 998 | m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} 999 | m_Name: 1000 | m_EditorClassIdentifier: 1001 | m_IgnoreLayout: 0 1002 | m_MinWidth: -1 1003 | m_MinHeight: -1 1004 | m_PreferredWidth: 160 1005 | m_PreferredHeight: 40 1006 | m_FlexibleWidth: -1 1007 | m_FlexibleHeight: -1 1008 | m_LayoutPriority: 1 1009 | --- !u!114 &573028662 1010 | MonoBehaviour: 1011 | m_ObjectHideFlags: 0 1012 | m_CorrespondingSourceObject: {fileID: 0} 1013 | m_PrefabInstance: {fileID: 0} 1014 | m_PrefabAsset: {fileID: 0} 1015 | m_GameObject: {fileID: 573028659} 1016 | m_Enabled: 1 1017 | m_EditorHideFlags: 0 1018 | m_Script: {fileID: 11500000, guid: 9085046f02f69544eb97fd06b6048fe2, type: 3} 1019 | m_Name: 1020 | m_EditorClassIdentifier: 1021 | m_Navigation: 1022 | m_Mode: 3 1023 | m_WrapAround: 0 1024 | m_SelectOnUp: {fileID: 0} 1025 | m_SelectOnDown: {fileID: 0} 1026 | m_SelectOnLeft: {fileID: 0} 1027 | m_SelectOnRight: {fileID: 0} 1028 | m_Transition: 1 1029 | m_Colors: 1030 | m_NormalColor: {r: 1, g: 1, b: 1, a: 1} 1031 | m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} 1032 | m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} 1033 | m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} 1034 | m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} 1035 | m_ColorMultiplier: 1 1036 | m_FadeDuration: 0.1 1037 | m_SpriteState: 1038 | m_HighlightedSprite: {fileID: 0} 1039 | m_PressedSprite: {fileID: 0} 1040 | m_SelectedSprite: {fileID: 0} 1041 | m_DisabledSprite: {fileID: 0} 1042 | m_AnimationTriggers: 1043 | m_NormalTrigger: Normal 1044 | m_HighlightedTrigger: Highlighted 1045 | m_PressedTrigger: Pressed 1046 | m_SelectedTrigger: Highlighted 1047 | m_DisabledTrigger: Disabled 1048 | m_Interactable: 1 1049 | m_TargetGraphic: {fileID: 6632538} 1050 | toggleTransition: 1 1051 | graphic: {fileID: 521835802} 1052 | m_Group: {fileID: 1762430821} 1053 | onValueChanged: 1054 | m_PersistentCalls: 1055 | m_Calls: 1056 | - m_Target: {fileID: 340450922} 1057 | m_TargetAssemblyTypeName: AVProWithOpenCVForUnityExample.AVProLiveCameraGetFrameAsColor32Example, 1058 | Assembly-CSharp 1059 | m_MethodName: OnOriginalModeToggle 1060 | m_Mode: 1 1061 | m_Arguments: 1062 | m_ObjectArgument: {fileID: 0} 1063 | m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine 1064 | m_IntArgument: 0 1065 | m_FloatArgument: 0 1066 | m_StringArgument: 1067 | m_BoolArgument: 0 1068 | m_CallState: 2 1069 | m_IsOn: 1 1070 | --- !u!1 &597765470 1071 | GameObject: 1072 | m_ObjectHideFlags: 0 1073 | m_CorrespondingSourceObject: {fileID: 0} 1074 | m_PrefabInstance: {fileID: 0} 1075 | m_PrefabAsset: {fileID: 0} 1076 | serializedVersion: 6 1077 | m_Component: 1078 | - component: {fileID: 597765471} 1079 | - component: {fileID: 597765473} 1080 | - component: {fileID: 597765472} 1081 | m_Layer: 5 1082 | m_Name: SepiaModeToggle 1083 | m_TagString: Untagged 1084 | m_Icon: {fileID: 0} 1085 | m_NavMeshLayer: 0 1086 | m_StaticEditorFlags: 0 1087 | m_IsActive: 1 1088 | --- !u!224 &597765471 1089 | RectTransform: 1090 | m_ObjectHideFlags: 0 1091 | m_CorrespondingSourceObject: {fileID: 0} 1092 | m_PrefabInstance: {fileID: 0} 1093 | m_PrefabAsset: {fileID: 0} 1094 | m_GameObject: {fileID: 597765470} 1095 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 1096 | m_LocalPosition: {x: 0, y: 0, z: 0} 1097 | m_LocalScale: {x: 1, y: 1, z: 1} 1098 | m_Children: 1099 | - {fileID: 548212200} 1100 | - {fileID: 1349547973} 1101 | m_Father: {fileID: 1762430820} 1102 | m_RootOrder: 1 1103 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 1104 | m_AnchorMin: {x: 0, y: 0} 1105 | m_AnchorMax: {x: 0, y: 0} 1106 | m_AnchoredPosition: {x: 0, y: 0} 1107 | m_SizeDelta: {x: 0, y: 0} 1108 | m_Pivot: {x: 0.5, y: 0.5} 1109 | --- !u!114 &597765472 1110 | MonoBehaviour: 1111 | m_ObjectHideFlags: 0 1112 | m_CorrespondingSourceObject: {fileID: 0} 1113 | m_PrefabInstance: {fileID: 0} 1114 | m_PrefabAsset: {fileID: 0} 1115 | m_GameObject: {fileID: 597765470} 1116 | m_Enabled: 1 1117 | m_EditorHideFlags: 0 1118 | m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} 1119 | m_Name: 1120 | m_EditorClassIdentifier: 1121 | m_IgnoreLayout: 0 1122 | m_MinWidth: -1 1123 | m_MinHeight: -1 1124 | m_PreferredWidth: 160 1125 | m_PreferredHeight: 40 1126 | m_FlexibleWidth: -1 1127 | m_FlexibleHeight: -1 1128 | m_LayoutPriority: 1 1129 | --- !u!114 &597765473 1130 | MonoBehaviour: 1131 | m_ObjectHideFlags: 0 1132 | m_CorrespondingSourceObject: {fileID: 0} 1133 | m_PrefabInstance: {fileID: 0} 1134 | m_PrefabAsset: {fileID: 0} 1135 | m_GameObject: {fileID: 597765470} 1136 | m_Enabled: 1 1137 | m_EditorHideFlags: 0 1138 | m_Script: {fileID: 11500000, guid: 9085046f02f69544eb97fd06b6048fe2, type: 3} 1139 | m_Name: 1140 | m_EditorClassIdentifier: 1141 | m_Navigation: 1142 | m_Mode: 3 1143 | m_WrapAround: 0 1144 | m_SelectOnUp: {fileID: 0} 1145 | m_SelectOnDown: {fileID: 0} 1146 | m_SelectOnLeft: {fileID: 0} 1147 | m_SelectOnRight: {fileID: 0} 1148 | m_Transition: 1 1149 | m_Colors: 1150 | m_NormalColor: {r: 1, g: 1, b: 1, a: 1} 1151 | m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} 1152 | m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} 1153 | m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} 1154 | m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} 1155 | m_ColorMultiplier: 1 1156 | m_FadeDuration: 0.1 1157 | m_SpriteState: 1158 | m_HighlightedSprite: {fileID: 0} 1159 | m_PressedSprite: {fileID: 0} 1160 | m_SelectedSprite: {fileID: 0} 1161 | m_DisabledSprite: {fileID: 0} 1162 | m_AnimationTriggers: 1163 | m_NormalTrigger: Normal 1164 | m_HighlightedTrigger: Highlighted 1165 | m_PressedTrigger: Pressed 1166 | m_SelectedTrigger: Highlighted 1167 | m_DisabledTrigger: Disabled 1168 | m_Interactable: 1 1169 | m_TargetGraphic: {fileID: 548212201} 1170 | toggleTransition: 1 1171 | graphic: {fileID: 14648215} 1172 | m_Group: {fileID: 1762430821} 1173 | onValueChanged: 1174 | m_PersistentCalls: 1175 | m_Calls: 1176 | - m_Target: {fileID: 340450922} 1177 | m_TargetAssemblyTypeName: AVProWithOpenCVForUnityExample.AVProLiveCameraGetFrameAsColor32Example, 1178 | Assembly-CSharp 1179 | m_MethodName: OnSepiaModeToggle 1180 | m_Mode: 1 1181 | m_Arguments: 1182 | m_ObjectArgument: {fileID: 0} 1183 | m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine 1184 | m_IntArgument: 0 1185 | m_FloatArgument: 0 1186 | m_StringArgument: 1187 | m_BoolArgument: 0 1188 | m_CallState: 2 1189 | m_IsOn: 0 1190 | --- !u!1 &614697262 1191 | GameObject: 1192 | m_ObjectHideFlags: 0 1193 | m_CorrespondingSourceObject: {fileID: 0} 1194 | m_PrefabInstance: {fileID: 0} 1195 | m_PrefabAsset: {fileID: 0} 1196 | serializedVersion: 6 1197 | m_Component: 1198 | - component: {fileID: 614697263} 1199 | - component: {fileID: 614697264} 1200 | m_Layer: 5 1201 | m_Name: Menu 1202 | m_TagString: Untagged 1203 | m_Icon: {fileID: 0} 1204 | m_NavMeshLayer: 0 1205 | m_StaticEditorFlags: 0 1206 | m_IsActive: 1 1207 | --- !u!224 &614697263 1208 | RectTransform: 1209 | m_ObjectHideFlags: 0 1210 | m_CorrespondingSourceObject: {fileID: 0} 1211 | m_PrefabInstance: {fileID: 0} 1212 | m_PrefabAsset: {fileID: 0} 1213 | m_GameObject: {fileID: 614697262} 1214 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 1215 | m_LocalPosition: {x: 0, y: 0, z: 0} 1216 | m_LocalScale: {x: 1, y: 1, z: 1} 1217 | m_Children: 1218 | - {fileID: 902393486} 1219 | - {fileID: 1762430820} 1220 | m_Father: {fileID: 111280261} 1221 | m_RootOrder: 0 1222 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 1223 | m_AnchorMin: {x: 0, y: 0} 1224 | m_AnchorMax: {x: 1, y: 1} 1225 | m_AnchoredPosition: {x: 0, y: 0} 1226 | m_SizeDelta: {x: 0, y: 0} 1227 | m_Pivot: {x: 0.5, y: 0.5} 1228 | --- !u!114 &614697264 1229 | MonoBehaviour: 1230 | m_ObjectHideFlags: 0 1231 | m_CorrespondingSourceObject: {fileID: 0} 1232 | m_PrefabInstance: {fileID: 0} 1233 | m_PrefabAsset: {fileID: 0} 1234 | m_GameObject: {fileID: 614697262} 1235 | m_Enabled: 1 1236 | m_EditorHideFlags: 0 1237 | m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} 1238 | m_Name: 1239 | m_EditorClassIdentifier: 1240 | m_Padding: 1241 | m_Left: 10 1242 | m_Right: 10 1243 | m_Top: 10 1244 | m_Bottom: 10 1245 | m_ChildAlignment: 0 1246 | m_Spacing: 10 1247 | m_ChildForceExpandWidth: 0 1248 | m_ChildForceExpandHeight: 0 1249 | m_ChildControlWidth: 1 1250 | m_ChildControlHeight: 1 1251 | m_ChildScaleWidth: 0 1252 | m_ChildScaleHeight: 0 1253 | m_ReverseArrangement: 0 1254 | --- !u!1 &735803361 1255 | GameObject: 1256 | m_ObjectHideFlags: 0 1257 | m_CorrespondingSourceObject: {fileID: 0} 1258 | m_PrefabInstance: {fileID: 0} 1259 | m_PrefabAsset: {fileID: 0} 1260 | serializedVersion: 6 1261 | m_Component: 1262 | - component: {fileID: 735803362} 1263 | - component: {fileID: 735803364} 1264 | - component: {fileID: 735803363} 1265 | m_Layer: 5 1266 | m_Name: Checkmark 1267 | m_TagString: Untagged 1268 | m_Icon: {fileID: 0} 1269 | m_NavMeshLayer: 0 1270 | m_StaticEditorFlags: 0 1271 | m_IsActive: 1 1272 | --- !u!224 &735803362 1273 | RectTransform: 1274 | m_ObjectHideFlags: 0 1275 | m_CorrespondingSourceObject: {fileID: 0} 1276 | m_PrefabInstance: {fileID: 0} 1277 | m_PrefabAsset: {fileID: 0} 1278 | m_GameObject: {fileID: 735803361} 1279 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 1280 | m_LocalPosition: {x: 0, y: 0, z: 0} 1281 | m_LocalScale: {x: 1, y: 1, z: 1} 1282 | m_Children: [] 1283 | m_Father: {fileID: 1410250215} 1284 | m_RootOrder: 0 1285 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 1286 | m_AnchorMin: {x: 0.5, y: 0.5} 1287 | m_AnchorMax: {x: 0.5, y: 0.5} 1288 | m_AnchoredPosition: {x: 0, y: 0} 1289 | m_SizeDelta: {x: 40, y: 40} 1290 | m_Pivot: {x: 0.5, y: 0.5} 1291 | --- !u!114 &735803363 1292 | MonoBehaviour: 1293 | m_ObjectHideFlags: 0 1294 | m_CorrespondingSourceObject: {fileID: 0} 1295 | m_PrefabInstance: {fileID: 0} 1296 | m_PrefabAsset: {fileID: 0} 1297 | m_GameObject: {fileID: 735803361} 1298 | m_Enabled: 1 1299 | m_EditorHideFlags: 0 1300 | m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} 1301 | m_Name: 1302 | m_EditorClassIdentifier: 1303 | m_Material: {fileID: 0} 1304 | m_Color: {r: 1, g: 1, b: 1, a: 1} 1305 | m_RaycastTarget: 1 1306 | m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} 1307 | m_Maskable: 1 1308 | m_OnCullStateChanged: 1309 | m_PersistentCalls: 1310 | m_Calls: [] 1311 | m_Sprite: {fileID: 10901, guid: 0000000000000000f000000000000000, type: 0} 1312 | m_Type: 0 1313 | m_PreserveAspect: 0 1314 | m_FillCenter: 1 1315 | m_FillMethod: 4 1316 | m_FillAmount: 1 1317 | m_FillClockwise: 1 1318 | m_FillOrigin: 0 1319 | m_UseSpriteMesh: 0 1320 | m_PixelsPerUnitMultiplier: 1 1321 | --- !u!222 &735803364 1322 | CanvasRenderer: 1323 | m_ObjectHideFlags: 0 1324 | m_CorrespondingSourceObject: {fileID: 0} 1325 | m_PrefabInstance: {fileID: 0} 1326 | m_PrefabAsset: {fileID: 0} 1327 | m_GameObject: {fileID: 735803361} 1328 | m_CullTransparentMesh: 1 1329 | --- !u!1 &860616460 1330 | GameObject: 1331 | m_ObjectHideFlags: 0 1332 | m_CorrespondingSourceObject: {fileID: 0} 1333 | m_PrefabInstance: {fileID: 0} 1334 | m_PrefabAsset: {fileID: 0} 1335 | serializedVersion: 6 1336 | m_Component: 1337 | - component: {fileID: 860616461} 1338 | - component: {fileID: 860616463} 1339 | - component: {fileID: 860616462} 1340 | m_Layer: 5 1341 | m_Name: Label 1342 | m_TagString: Untagged 1343 | m_Icon: {fileID: 0} 1344 | m_NavMeshLayer: 0 1345 | m_StaticEditorFlags: 0 1346 | m_IsActive: 1 1347 | --- !u!224 &860616461 1348 | RectTransform: 1349 | m_ObjectHideFlags: 0 1350 | m_CorrespondingSourceObject: {fileID: 0} 1351 | m_PrefabInstance: {fileID: 0} 1352 | m_PrefabAsset: {fileID: 0} 1353 | m_GameObject: {fileID: 860616460} 1354 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 1355 | m_LocalPosition: {x: 0, y: 0, z: 0} 1356 | m_LocalScale: {x: 1, y: 1, z: 1} 1357 | m_Children: [] 1358 | m_Father: {fileID: 1197787445} 1359 | m_RootOrder: 1 1360 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 1361 | m_AnchorMin: {x: 0, y: 0} 1362 | m_AnchorMax: {x: 1, y: 1} 1363 | m_AnchoredPosition: {x: 20, y: -5.5} 1364 | m_SizeDelta: {x: -50, y: -13} 1365 | m_Pivot: {x: 0.5, y: 0.5} 1366 | --- !u!114 &860616462 1367 | MonoBehaviour: 1368 | m_ObjectHideFlags: 0 1369 | m_CorrespondingSourceObject: {fileID: 0} 1370 | m_PrefabInstance: {fileID: 0} 1371 | m_PrefabAsset: {fileID: 0} 1372 | m_GameObject: {fileID: 860616460} 1373 | m_Enabled: 1 1374 | m_EditorHideFlags: 0 1375 | m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} 1376 | m_Name: 1377 | m_EditorClassIdentifier: 1378 | m_Material: {fileID: 0} 1379 | m_Color: {r: 1, g: 1, b: 1, a: 1} 1380 | m_RaycastTarget: 1 1381 | m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} 1382 | m_Maskable: 1 1383 | m_OnCullStateChanged: 1384 | m_PersistentCalls: 1385 | m_Calls: [] 1386 | m_FontData: 1387 | m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} 1388 | m_FontSize: 14 1389 | m_FontStyle: 0 1390 | m_BestFit: 0 1391 | m_MinSize: 10 1392 | m_MaxSize: 40 1393 | m_Alignment: 0 1394 | m_AlignByGeometry: 0 1395 | m_RichText: 1 1396 | m_HorizontalOverflow: 0 1397 | m_VerticalOverflow: 0 1398 | m_LineSpacing: 1 1399 | m_Text: Pixelize 1400 | --- !u!222 &860616463 1401 | CanvasRenderer: 1402 | m_ObjectHideFlags: 0 1403 | m_CorrespondingSourceObject: {fileID: 0} 1404 | m_PrefabInstance: {fileID: 0} 1405 | m_PrefabAsset: {fileID: 0} 1406 | m_GameObject: {fileID: 860616460} 1407 | m_CullTransparentMesh: 1 1408 | --- !u!1 &902393485 1409 | GameObject: 1410 | m_ObjectHideFlags: 0 1411 | m_CorrespondingSourceObject: {fileID: 0} 1412 | m_PrefabInstance: {fileID: 0} 1413 | m_PrefabAsset: {fileID: 0} 1414 | serializedVersion: 6 1415 | m_Component: 1416 | - component: {fileID: 902393486} 1417 | - component: {fileID: 902393490} 1418 | - component: {fileID: 902393489} 1419 | - component: {fileID: 902393488} 1420 | - component: {fileID: 902393487} 1421 | m_Layer: 5 1422 | m_Name: BackButton 1423 | m_TagString: Untagged 1424 | m_Icon: {fileID: 0} 1425 | m_NavMeshLayer: 0 1426 | m_StaticEditorFlags: 0 1427 | m_IsActive: 1 1428 | --- !u!224 &902393486 1429 | RectTransform: 1430 | m_ObjectHideFlags: 0 1431 | m_CorrespondingSourceObject: {fileID: 0} 1432 | m_PrefabInstance: {fileID: 0} 1433 | m_PrefabAsset: {fileID: 0} 1434 | m_GameObject: {fileID: 902393485} 1435 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 1436 | m_LocalPosition: {x: 0, y: 0, z: 0} 1437 | m_LocalScale: {x: 1, y: 1, z: 1} 1438 | m_Children: 1439 | - {fileID: 1839393829} 1440 | m_Father: {fileID: 614697263} 1441 | m_RootOrder: 0 1442 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 1443 | m_AnchorMin: {x: 0, y: 0} 1444 | m_AnchorMax: {x: 0, y: 0} 1445 | m_AnchoredPosition: {x: 0, y: 0} 1446 | m_SizeDelta: {x: 0, y: 0} 1447 | m_Pivot: {x: 0.5, y: 0.5} 1448 | --- !u!114 &902393487 1449 | MonoBehaviour: 1450 | m_ObjectHideFlags: 0 1451 | m_CorrespondingSourceObject: {fileID: 0} 1452 | m_PrefabInstance: {fileID: 0} 1453 | m_PrefabAsset: {fileID: 0} 1454 | m_GameObject: {fileID: 902393485} 1455 | m_Enabled: 1 1456 | m_EditorHideFlags: 0 1457 | m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} 1458 | m_Name: 1459 | m_EditorClassIdentifier: 1460 | m_IgnoreLayout: 0 1461 | m_MinWidth: -1 1462 | m_MinHeight: -1 1463 | m_PreferredWidth: 160 1464 | m_PreferredHeight: 40 1465 | m_FlexibleWidth: -1 1466 | m_FlexibleHeight: -1 1467 | m_LayoutPriority: 1 1468 | --- !u!114 &902393488 1469 | MonoBehaviour: 1470 | m_ObjectHideFlags: 0 1471 | m_CorrespondingSourceObject: {fileID: 0} 1472 | m_PrefabInstance: {fileID: 0} 1473 | m_PrefabAsset: {fileID: 0} 1474 | m_GameObject: {fileID: 902393485} 1475 | m_Enabled: 1 1476 | m_EditorHideFlags: 0 1477 | m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} 1478 | m_Name: 1479 | m_EditorClassIdentifier: 1480 | m_Navigation: 1481 | m_Mode: 3 1482 | m_WrapAround: 0 1483 | m_SelectOnUp: {fileID: 0} 1484 | m_SelectOnDown: {fileID: 0} 1485 | m_SelectOnLeft: {fileID: 0} 1486 | m_SelectOnRight: {fileID: 0} 1487 | m_Transition: 1 1488 | m_Colors: 1489 | m_NormalColor: {r: 1, g: 1, b: 1, a: 1} 1490 | m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} 1491 | m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} 1492 | m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} 1493 | m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} 1494 | m_ColorMultiplier: 1 1495 | m_FadeDuration: 0.1 1496 | m_SpriteState: 1497 | m_HighlightedSprite: {fileID: 0} 1498 | m_PressedSprite: {fileID: 0} 1499 | m_SelectedSprite: {fileID: 0} 1500 | m_DisabledSprite: {fileID: 0} 1501 | m_AnimationTriggers: 1502 | m_NormalTrigger: Normal 1503 | m_HighlightedTrigger: Highlighted 1504 | m_PressedTrigger: Pressed 1505 | m_SelectedTrigger: Highlighted 1506 | m_DisabledTrigger: Disabled 1507 | m_Interactable: 1 1508 | m_TargetGraphic: {fileID: 902393489} 1509 | m_OnClick: 1510 | m_PersistentCalls: 1511 | m_Calls: 1512 | - m_Target: {fileID: 340450922} 1513 | m_TargetAssemblyTypeName: AVProWithOpenCVForUnityExample.AVProLiveCameraGetFrameAsColor32Example, 1514 | Assembly-CSharp 1515 | m_MethodName: OnBackButton 1516 | m_Mode: 1 1517 | m_Arguments: 1518 | m_ObjectArgument: {fileID: 0} 1519 | m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine 1520 | m_IntArgument: 0 1521 | m_FloatArgument: 0 1522 | m_StringArgument: 1523 | m_BoolArgument: 0 1524 | m_CallState: 2 1525 | --- !u!114 &902393489 1526 | MonoBehaviour: 1527 | m_ObjectHideFlags: 0 1528 | m_CorrespondingSourceObject: {fileID: 0} 1529 | m_PrefabInstance: {fileID: 0} 1530 | m_PrefabAsset: {fileID: 0} 1531 | m_GameObject: {fileID: 902393485} 1532 | m_Enabled: 1 1533 | m_EditorHideFlags: 0 1534 | m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} 1535 | m_Name: 1536 | m_EditorClassIdentifier: 1537 | m_Material: {fileID: 0} 1538 | m_Color: {r: 1, g: 1, b: 1, a: 1} 1539 | m_RaycastTarget: 1 1540 | m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} 1541 | m_Maskable: 1 1542 | m_OnCullStateChanged: 1543 | m_PersistentCalls: 1544 | m_Calls: [] 1545 | m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} 1546 | m_Type: 1 1547 | m_PreserveAspect: 0 1548 | m_FillCenter: 1 1549 | m_FillMethod: 4 1550 | m_FillAmount: 1 1551 | m_FillClockwise: 1 1552 | m_FillOrigin: 0 1553 | m_UseSpriteMesh: 0 1554 | m_PixelsPerUnitMultiplier: 1 1555 | --- !u!222 &902393490 1556 | CanvasRenderer: 1557 | m_ObjectHideFlags: 0 1558 | m_CorrespondingSourceObject: {fileID: 0} 1559 | m_PrefabInstance: {fileID: 0} 1560 | m_PrefabAsset: {fileID: 0} 1561 | m_GameObject: {fileID: 902393485} 1562 | m_CullTransparentMesh: 1 1563 | --- !u!1 &1197787444 1564 | GameObject: 1565 | m_ObjectHideFlags: 0 1566 | m_CorrespondingSourceObject: {fileID: 0} 1567 | m_PrefabInstance: {fileID: 0} 1568 | m_PrefabAsset: {fileID: 0} 1569 | serializedVersion: 6 1570 | m_Component: 1571 | - component: {fileID: 1197787445} 1572 | - component: {fileID: 1197787447} 1573 | - component: {fileID: 1197787446} 1574 | m_Layer: 5 1575 | m_Name: PixelizeModeToggle 1576 | m_TagString: Untagged 1577 | m_Icon: {fileID: 0} 1578 | m_NavMeshLayer: 0 1579 | m_StaticEditorFlags: 0 1580 | m_IsActive: 1 1581 | --- !u!224 &1197787445 1582 | RectTransform: 1583 | m_ObjectHideFlags: 0 1584 | m_CorrespondingSourceObject: {fileID: 0} 1585 | m_PrefabInstance: {fileID: 0} 1586 | m_PrefabAsset: {fileID: 0} 1587 | m_GameObject: {fileID: 1197787444} 1588 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 1589 | m_LocalPosition: {x: 0, y: 0, z: 0} 1590 | m_LocalScale: {x: 1, y: 1, z: 1} 1591 | m_Children: 1592 | - {fileID: 1410250215} 1593 | - {fileID: 860616461} 1594 | m_Father: {fileID: 1762430820} 1595 | m_RootOrder: 2 1596 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 1597 | m_AnchorMin: {x: 0, y: 0} 1598 | m_AnchorMax: {x: 0, y: 0} 1599 | m_AnchoredPosition: {x: 0, y: 0} 1600 | m_SizeDelta: {x: 0, y: 0} 1601 | m_Pivot: {x: 0.5, y: 0.5} 1602 | --- !u!114 &1197787446 1603 | MonoBehaviour: 1604 | m_ObjectHideFlags: 0 1605 | m_CorrespondingSourceObject: {fileID: 0} 1606 | m_PrefabInstance: {fileID: 0} 1607 | m_PrefabAsset: {fileID: 0} 1608 | m_GameObject: {fileID: 1197787444} 1609 | m_Enabled: 1 1610 | m_EditorHideFlags: 0 1611 | m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} 1612 | m_Name: 1613 | m_EditorClassIdentifier: 1614 | m_IgnoreLayout: 0 1615 | m_MinWidth: -1 1616 | m_MinHeight: -1 1617 | m_PreferredWidth: 160 1618 | m_PreferredHeight: 40 1619 | m_FlexibleWidth: -1 1620 | m_FlexibleHeight: -1 1621 | m_LayoutPriority: 1 1622 | --- !u!114 &1197787447 1623 | MonoBehaviour: 1624 | m_ObjectHideFlags: 0 1625 | m_CorrespondingSourceObject: {fileID: 0} 1626 | m_PrefabInstance: {fileID: 0} 1627 | m_PrefabAsset: {fileID: 0} 1628 | m_GameObject: {fileID: 1197787444} 1629 | m_Enabled: 1 1630 | m_EditorHideFlags: 0 1631 | m_Script: {fileID: 11500000, guid: 9085046f02f69544eb97fd06b6048fe2, type: 3} 1632 | m_Name: 1633 | m_EditorClassIdentifier: 1634 | m_Navigation: 1635 | m_Mode: 3 1636 | m_WrapAround: 0 1637 | m_SelectOnUp: {fileID: 0} 1638 | m_SelectOnDown: {fileID: 0} 1639 | m_SelectOnLeft: {fileID: 0} 1640 | m_SelectOnRight: {fileID: 0} 1641 | m_Transition: 1 1642 | m_Colors: 1643 | m_NormalColor: {r: 1, g: 1, b: 1, a: 1} 1644 | m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} 1645 | m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} 1646 | m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} 1647 | m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} 1648 | m_ColorMultiplier: 1 1649 | m_FadeDuration: 0.1 1650 | m_SpriteState: 1651 | m_HighlightedSprite: {fileID: 0} 1652 | m_PressedSprite: {fileID: 0} 1653 | m_SelectedSprite: {fileID: 0} 1654 | m_DisabledSprite: {fileID: 0} 1655 | m_AnimationTriggers: 1656 | m_NormalTrigger: Normal 1657 | m_HighlightedTrigger: Highlighted 1658 | m_PressedTrigger: Pressed 1659 | m_SelectedTrigger: Highlighted 1660 | m_DisabledTrigger: Disabled 1661 | m_Interactable: 1 1662 | m_TargetGraphic: {fileID: 1410250216} 1663 | toggleTransition: 1 1664 | graphic: {fileID: 735803363} 1665 | m_Group: {fileID: 1762430821} 1666 | onValueChanged: 1667 | m_PersistentCalls: 1668 | m_Calls: 1669 | - m_Target: {fileID: 340450922} 1670 | m_TargetAssemblyTypeName: AVProWithOpenCVForUnityExample.AVProLiveCameraGetFrameAsColor32Example, 1671 | Assembly-CSharp 1672 | m_MethodName: OnPixelizeModeToggle 1673 | m_Mode: 1 1674 | m_Arguments: 1675 | m_ObjectArgument: {fileID: 0} 1676 | m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine 1677 | m_IntArgument: 0 1678 | m_FloatArgument: 0 1679 | m_StringArgument: 1680 | m_BoolArgument: 0 1681 | m_CallState: 2 1682 | m_IsOn: 0 1683 | --- !u!1 &1349547972 1684 | GameObject: 1685 | m_ObjectHideFlags: 0 1686 | m_CorrespondingSourceObject: {fileID: 0} 1687 | m_PrefabInstance: {fileID: 0} 1688 | m_PrefabAsset: {fileID: 0} 1689 | serializedVersion: 6 1690 | m_Component: 1691 | - component: {fileID: 1349547973} 1692 | - component: {fileID: 1349547975} 1693 | - component: {fileID: 1349547974} 1694 | m_Layer: 5 1695 | m_Name: Label 1696 | m_TagString: Untagged 1697 | m_Icon: {fileID: 0} 1698 | m_NavMeshLayer: 0 1699 | m_StaticEditorFlags: 0 1700 | m_IsActive: 1 1701 | --- !u!224 &1349547973 1702 | RectTransform: 1703 | m_ObjectHideFlags: 0 1704 | m_CorrespondingSourceObject: {fileID: 0} 1705 | m_PrefabInstance: {fileID: 0} 1706 | m_PrefabAsset: {fileID: 0} 1707 | m_GameObject: {fileID: 1349547972} 1708 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 1709 | m_LocalPosition: {x: 0, y: 0, z: 0} 1710 | m_LocalScale: {x: 1, y: 1, z: 1} 1711 | m_Children: [] 1712 | m_Father: {fileID: 597765471} 1713 | m_RootOrder: 1 1714 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 1715 | m_AnchorMin: {x: 0, y: 0} 1716 | m_AnchorMax: {x: 1, y: 1} 1717 | m_AnchoredPosition: {x: 20, y: -5.5} 1718 | m_SizeDelta: {x: -50, y: -13} 1719 | m_Pivot: {x: 0.5, y: 0.5} 1720 | --- !u!114 &1349547974 1721 | MonoBehaviour: 1722 | m_ObjectHideFlags: 0 1723 | m_CorrespondingSourceObject: {fileID: 0} 1724 | m_PrefabInstance: {fileID: 0} 1725 | m_PrefabAsset: {fileID: 0} 1726 | m_GameObject: {fileID: 1349547972} 1727 | m_Enabled: 1 1728 | m_EditorHideFlags: 0 1729 | m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} 1730 | m_Name: 1731 | m_EditorClassIdentifier: 1732 | m_Material: {fileID: 0} 1733 | m_Color: {r: 1, g: 1, b: 1, a: 1} 1734 | m_RaycastTarget: 1 1735 | m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} 1736 | m_Maskable: 1 1737 | m_OnCullStateChanged: 1738 | m_PersistentCalls: 1739 | m_Calls: [] 1740 | m_FontData: 1741 | m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} 1742 | m_FontSize: 14 1743 | m_FontStyle: 0 1744 | m_BestFit: 0 1745 | m_MinSize: 10 1746 | m_MaxSize: 40 1747 | m_Alignment: 0 1748 | m_AlignByGeometry: 0 1749 | m_RichText: 1 1750 | m_HorizontalOverflow: 0 1751 | m_VerticalOverflow: 0 1752 | m_LineSpacing: 1 1753 | m_Text: Sepia 1754 | --- !u!222 &1349547975 1755 | CanvasRenderer: 1756 | m_ObjectHideFlags: 0 1757 | m_CorrespondingSourceObject: {fileID: 0} 1758 | m_PrefabInstance: {fileID: 0} 1759 | m_PrefabAsset: {fileID: 0} 1760 | m_GameObject: {fileID: 1349547972} 1761 | m_CullTransparentMesh: 1 1762 | --- !u!1 &1410250214 1763 | GameObject: 1764 | m_ObjectHideFlags: 0 1765 | m_CorrespondingSourceObject: {fileID: 0} 1766 | m_PrefabInstance: {fileID: 0} 1767 | m_PrefabAsset: {fileID: 0} 1768 | serializedVersion: 6 1769 | m_Component: 1770 | - component: {fileID: 1410250215} 1771 | - component: {fileID: 1410250217} 1772 | - component: {fileID: 1410250216} 1773 | m_Layer: 5 1774 | m_Name: Background 1775 | m_TagString: Untagged 1776 | m_Icon: {fileID: 0} 1777 | m_NavMeshLayer: 0 1778 | m_StaticEditorFlags: 0 1779 | m_IsActive: 1 1780 | --- !u!224 &1410250215 1781 | RectTransform: 1782 | m_ObjectHideFlags: 0 1783 | m_CorrespondingSourceObject: {fileID: 0} 1784 | m_PrefabInstance: {fileID: 0} 1785 | m_PrefabAsset: {fileID: 0} 1786 | m_GameObject: {fileID: 1410250214} 1787 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 1788 | m_LocalPosition: {x: 0, y: 0, z: 0} 1789 | m_LocalScale: {x: 1, y: 1, z: 1} 1790 | m_Children: 1791 | - {fileID: 735803362} 1792 | m_Father: {fileID: 1197787445} 1793 | m_RootOrder: 0 1794 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 1795 | m_AnchorMin: {x: 0, y: 1} 1796 | m_AnchorMax: {x: 0, y: 1} 1797 | m_AnchoredPosition: {x: 20, y: -20} 1798 | m_SizeDelta: {x: 40, y: 40} 1799 | m_Pivot: {x: 0.5, y: 0.5} 1800 | --- !u!114 &1410250216 1801 | MonoBehaviour: 1802 | m_ObjectHideFlags: 0 1803 | m_CorrespondingSourceObject: {fileID: 0} 1804 | m_PrefabInstance: {fileID: 0} 1805 | m_PrefabAsset: {fileID: 0} 1806 | m_GameObject: {fileID: 1410250214} 1807 | m_Enabled: 1 1808 | m_EditorHideFlags: 0 1809 | m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} 1810 | m_Name: 1811 | m_EditorClassIdentifier: 1812 | m_Material: {fileID: 0} 1813 | m_Color: {r: 1, g: 1, b: 1, a: 1} 1814 | m_RaycastTarget: 1 1815 | m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} 1816 | m_Maskable: 1 1817 | m_OnCullStateChanged: 1818 | m_PersistentCalls: 1819 | m_Calls: [] 1820 | m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} 1821 | m_Type: 1 1822 | m_PreserveAspect: 0 1823 | m_FillCenter: 1 1824 | m_FillMethod: 4 1825 | m_FillAmount: 1 1826 | m_FillClockwise: 1 1827 | m_FillOrigin: 0 1828 | m_UseSpriteMesh: 0 1829 | m_PixelsPerUnitMultiplier: 1 1830 | --- !u!222 &1410250217 1831 | CanvasRenderer: 1832 | m_ObjectHideFlags: 0 1833 | m_CorrespondingSourceObject: {fileID: 0} 1834 | m_PrefabInstance: {fileID: 0} 1835 | m_PrefabAsset: {fileID: 0} 1836 | m_GameObject: {fileID: 1410250214} 1837 | m_CullTransparentMesh: 1 1838 | --- !u!1 &1656361536 1839 | GameObject: 1840 | m_ObjectHideFlags: 0 1841 | m_CorrespondingSourceObject: {fileID: 0} 1842 | m_PrefabInstance: {fileID: 0} 1843 | m_PrefabAsset: {fileID: 0} 1844 | serializedVersion: 6 1845 | m_Component: 1846 | - component: {fileID: 1656361540} 1847 | - component: {fileID: 1656361539} 1848 | - component: {fileID: 1656361538} 1849 | - component: {fileID: 1656361537} 1850 | m_Layer: 0 1851 | m_Name: AVProLiveCamera 1852 | m_TagString: Untagged 1853 | m_Icon: {fileID: 0} 1854 | m_NavMeshLayer: 0 1855 | m_StaticEditorFlags: 0 1856 | m_IsActive: 1 1857 | --- !u!114 &1656361537 1858 | MonoBehaviour: 1859 | m_ObjectHideFlags: 0 1860 | m_CorrespondingSourceObject: {fileID: 0} 1861 | m_PrefabInstance: {fileID: 0} 1862 | m_PrefabAsset: {fileID: 0} 1863 | m_GameObject: {fileID: 1656361536} 1864 | m_Enabled: 1 1865 | m_EditorHideFlags: 0 1866 | m_Script: {fileID: 11500000, guid: ad43af36df273084f8ac3b1fa71ae729, type: 3} 1867 | m_Name: 1868 | m_EditorClassIdentifier: 1869 | _liveCamera: {fileID: 1656361539} 1870 | _liveCameraManager: {fileID: 1656361538} 1871 | _guiSkin: {fileID: 11400000, guid: eb821627fb1a0c044a6fd7a6dabe3147, type: 2} 1872 | --- !u!114 &1656361538 1873 | MonoBehaviour: 1874 | m_ObjectHideFlags: 0 1875 | m_CorrespondingSourceObject: {fileID: 0} 1876 | m_PrefabInstance: {fileID: 0} 1877 | m_PrefabAsset: {fileID: 0} 1878 | m_GameObject: {fileID: 1656361536} 1879 | m_Enabled: 1 1880 | m_EditorHideFlags: 0 1881 | m_Script: {fileID: 11500000, guid: edba0400f2985f145bfd6428f24d2110, type: 3} 1882 | m_Name: 1883 | m_EditorClassIdentifier: 1884 | _supportHotSwapping: 0 1885 | _supportInternalFormatConversion: 0 1886 | _shaderBGRA32: {fileID: 4800000, guid: 55de6cd535b200d4c9e41052d04ec1e5, type: 3} 1887 | _shaderMONO8: {fileID: 4800000, guid: 48acad89159eb1e448777379baab7384, type: 3} 1888 | _shaderYUY2: {fileID: 4800000, guid: d1ab837474c2da44594e57fab5f4d831, type: 3} 1889 | _shaderUYVY: {fileID: 4800000, guid: cae66dddac87aba4d8af6f0f8829133b, type: 3} 1890 | _shaderYVYU: {fileID: 4800000, guid: add9070511111234fb8d9e7048c60b5c, type: 3} 1891 | _shaderHDYC: {fileID: 4800000, guid: d15eca7ae06474249b354472a6bf9265, type: 3} 1892 | _shaderI420: {fileID: 4800000, guid: 3e319fd1d6f9b4a47b871fb185c665e7, type: 3} 1893 | _shaderYV12: {fileID: 4800000, guid: 04afacd8ed181b341910528e6b31102a, type: 3} 1894 | _shaderDeinterlace: {fileID: 4800000, guid: 33f55a5d4bd45ae40abfc13543f7bada, type: 3} 1895 | --- !u!114 &1656361539 1896 | MonoBehaviour: 1897 | m_ObjectHideFlags: 0 1898 | m_CorrespondingSourceObject: {fileID: 0} 1899 | m_PrefabInstance: {fileID: 0} 1900 | m_PrefabAsset: {fileID: 0} 1901 | m_GameObject: {fileID: 1656361536} 1902 | m_Enabled: 1 1903 | m_EditorHideFlags: 0 1904 | m_Script: {fileID: 11500000, guid: 1015dbb0b69fdd446b617191771ffcce, type: 3} 1905 | m_Name: 1906 | m_EditorClassIdentifier: 1907 | _deviceSelection: 0 1908 | _desiredDeviceNames: 1909 | - Logitech Webcam Pro 9000 1910 | - Decklink Video Capture 1911 | _desiredDeviceIndex: 1 1912 | _modeSelection: 0 1913 | _desiredAnyResolution: 1 1914 | _desiredResolutions: 1915 | - {x: 1280, y: 720} 1916 | - {x: 640, y: 480} 1917 | _desiredModeIndex: 1 1918 | _maintainAspectRatio: 0 1919 | _desiredFrameRate: 0 1920 | _desiredFormatAny: 1 1921 | _desiredTransparencyFormat: 0 1922 | _desiredFormat: 4 1923 | _videoInputSelection: 0 1924 | _desiredVideoInputs: 04000000 1925 | _desiredVideoInputIndex: 0 1926 | _preferPreviewPin: 0 1927 | _clockMode: 0 1928 | _deinterlace: 0 1929 | _playOnStart: 1 1930 | _allowTransparency: 1 1931 | _flipX: 0 1932 | _flipY: 0 1933 | _yCbCrRange: 0 1934 | _updateHotSwap: 0 1935 | _updateFrameRates: 0 1936 | _updateSettings: 0 1937 | --- !u!4 &1656361540 1938 | Transform: 1939 | m_ObjectHideFlags: 0 1940 | m_CorrespondingSourceObject: {fileID: 0} 1941 | m_PrefabInstance: {fileID: 0} 1942 | m_PrefabAsset: {fileID: 0} 1943 | m_GameObject: {fileID: 1656361536} 1944 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 1945 | m_LocalPosition: {x: 0, y: 0, z: 0} 1946 | m_LocalScale: {x: 1, y: 1, z: 1} 1947 | m_Children: [] 1948 | m_Father: {fileID: 0} 1949 | m_RootOrder: 4 1950 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 1951 | --- !u!1 &1762430819 1952 | GameObject: 1953 | m_ObjectHideFlags: 0 1954 | m_CorrespondingSourceObject: {fileID: 0} 1955 | m_PrefabInstance: {fileID: 0} 1956 | m_PrefabAsset: {fileID: 0} 1957 | serializedVersion: 6 1958 | m_Component: 1959 | - component: {fileID: 1762430820} 1960 | - component: {fileID: 1762430821} 1961 | - component: {fileID: 1762430822} 1962 | m_Layer: 5 1963 | m_Name: ToggleGroup 1964 | m_TagString: Untagged 1965 | m_Icon: {fileID: 0} 1966 | m_NavMeshLayer: 0 1967 | m_StaticEditorFlags: 0 1968 | m_IsActive: 1 1969 | --- !u!224 &1762430820 1970 | RectTransform: 1971 | m_ObjectHideFlags: 0 1972 | m_CorrespondingSourceObject: {fileID: 0} 1973 | m_PrefabInstance: {fileID: 0} 1974 | m_PrefabAsset: {fileID: 0} 1975 | m_GameObject: {fileID: 1762430819} 1976 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 1977 | m_LocalPosition: {x: 0, y: 0, z: 0} 1978 | m_LocalScale: {x: 1, y: 1, z: 1} 1979 | m_Children: 1980 | - {fileID: 573028660} 1981 | - {fileID: 597765471} 1982 | - {fileID: 1197787445} 1983 | m_Father: {fileID: 614697263} 1984 | m_RootOrder: 1 1985 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 1986 | m_AnchorMin: {x: 0, y: 0} 1987 | m_AnchorMax: {x: 0, y: 0} 1988 | m_AnchoredPosition: {x: 0, y: 0} 1989 | m_SizeDelta: {x: 0, y: 0} 1990 | m_Pivot: {x: 0.5, y: 0.5} 1991 | --- !u!114 &1762430821 1992 | MonoBehaviour: 1993 | m_ObjectHideFlags: 0 1994 | m_CorrespondingSourceObject: {fileID: 0} 1995 | m_PrefabInstance: {fileID: 0} 1996 | m_PrefabAsset: {fileID: 0} 1997 | m_GameObject: {fileID: 1762430819} 1998 | m_Enabled: 1 1999 | m_EditorHideFlags: 0 2000 | m_Script: {fileID: 11500000, guid: 2fafe2cfe61f6974895a912c3755e8f1, type: 3} 2001 | m_Name: 2002 | m_EditorClassIdentifier: 2003 | m_AllowSwitchOff: 0 2004 | --- !u!114 &1762430822 2005 | MonoBehaviour: 2006 | m_ObjectHideFlags: 0 2007 | m_CorrespondingSourceObject: {fileID: 0} 2008 | m_PrefabInstance: {fileID: 0} 2009 | m_PrefabAsset: {fileID: 0} 2010 | m_GameObject: {fileID: 1762430819} 2011 | m_Enabled: 1 2012 | m_EditorHideFlags: 0 2013 | m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} 2014 | m_Name: 2015 | m_EditorClassIdentifier: 2016 | m_Padding: 2017 | m_Left: 0 2018 | m_Right: 0 2019 | m_Top: 0 2020 | m_Bottom: 0 2021 | m_ChildAlignment: 0 2022 | m_Spacing: 10 2023 | m_ChildForceExpandWidth: 0 2024 | m_ChildForceExpandHeight: 0 2025 | m_ChildControlWidth: 1 2026 | m_ChildControlHeight: 1 2027 | m_ChildScaleWidth: 0 2028 | m_ChildScaleHeight: 0 2029 | m_ReverseArrangement: 0 2030 | --- !u!1 &1839393828 2031 | GameObject: 2032 | m_ObjectHideFlags: 0 2033 | m_CorrespondingSourceObject: {fileID: 0} 2034 | m_PrefabInstance: {fileID: 0} 2035 | m_PrefabAsset: {fileID: 0} 2036 | serializedVersion: 6 2037 | m_Component: 2038 | - component: {fileID: 1839393829} 2039 | - component: {fileID: 1839393831} 2040 | - component: {fileID: 1839393830} 2041 | m_Layer: 5 2042 | m_Name: Text 2043 | m_TagString: Untagged 2044 | m_Icon: {fileID: 0} 2045 | m_NavMeshLayer: 0 2046 | m_StaticEditorFlags: 0 2047 | m_IsActive: 1 2048 | --- !u!224 &1839393829 2049 | RectTransform: 2050 | m_ObjectHideFlags: 0 2051 | m_CorrespondingSourceObject: {fileID: 0} 2052 | m_PrefabInstance: {fileID: 0} 2053 | m_PrefabAsset: {fileID: 0} 2054 | m_GameObject: {fileID: 1839393828} 2055 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 2056 | m_LocalPosition: {x: 0, y: 0, z: 0} 2057 | m_LocalScale: {x: 1, y: 1, z: 1} 2058 | m_Children: [] 2059 | m_Father: {fileID: 902393486} 2060 | m_RootOrder: 0 2061 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 2062 | m_AnchorMin: {x: 0, y: 0} 2063 | m_AnchorMax: {x: 1, y: 1} 2064 | m_AnchoredPosition: {x: 0, y: 0} 2065 | m_SizeDelta: {x: 0, y: 0} 2066 | m_Pivot: {x: 0.5, y: 0.5} 2067 | --- !u!114 &1839393830 2068 | MonoBehaviour: 2069 | m_ObjectHideFlags: 0 2070 | m_CorrespondingSourceObject: {fileID: 0} 2071 | m_PrefabInstance: {fileID: 0} 2072 | m_PrefabAsset: {fileID: 0} 2073 | m_GameObject: {fileID: 1839393828} 2074 | m_Enabled: 1 2075 | m_EditorHideFlags: 0 2076 | m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} 2077 | m_Name: 2078 | m_EditorClassIdentifier: 2079 | m_Material: {fileID: 0} 2080 | m_Color: {r: 0.196, g: 0.196, b: 0.196, a: 1} 2081 | m_RaycastTarget: 1 2082 | m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} 2083 | m_Maskable: 1 2084 | m_OnCullStateChanged: 2085 | m_PersistentCalls: 2086 | m_Calls: [] 2087 | m_FontData: 2088 | m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} 2089 | m_FontSize: 14 2090 | m_FontStyle: 0 2091 | m_BestFit: 0 2092 | m_MinSize: 10 2093 | m_MaxSize: 40 2094 | m_Alignment: 4 2095 | m_AlignByGeometry: 0 2096 | m_RichText: 1 2097 | m_HorizontalOverflow: 0 2098 | m_VerticalOverflow: 0 2099 | m_LineSpacing: 1 2100 | m_Text: Back 2101 | --- !u!222 &1839393831 2102 | CanvasRenderer: 2103 | m_ObjectHideFlags: 0 2104 | m_CorrespondingSourceObject: {fileID: 0} 2105 | m_PrefabInstance: {fileID: 0} 2106 | m_PrefabAsset: {fileID: 0} 2107 | m_GameObject: {fileID: 1839393828} 2108 | m_CullTransparentMesh: 1 2109 | -------------------------------------------------------------------------------- /Assets/AVProWithOpenCVForUnityExample/AVProLiveCameraGetFrameAsColor32Example/AVProLiveCameraGetFrameAsColor32Example.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8d03a8d964fc0344b92e785a6f8d7ecb 3 | -------------------------------------------------------------------------------- /Assets/AVProWithOpenCVForUnityExample/AVProVideoAsyncGPUReadbackExample.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0c543920ca160fc419655af80de5cb6a 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/AVProWithOpenCVForUnityExample/AVProVideoAsyncGPUReadbackExample/AVProVideoAsyncGPUReadbackExample.cs: -------------------------------------------------------------------------------- 1 | using OpenCVForUnity.CoreModule; 2 | using OpenCVForUnity.ImgprocModule; 3 | using OpenCVForUnity.UnityUtils; 4 | using RenderHeads.Media.AVProVideo; 5 | using System.Linq; 6 | using UnityEngine; 7 | using UnityEngine.Experimental.Rendering; 8 | using UnityEngine.Rendering; 9 | using UnityEngine.SceneManagement; 10 | using UnityEngine.UI; 11 | 12 | namespace AVProWithOpenCVForUnityExample 13 | { 14 | /// 15 | /// AVProVideo AsyncGPUReadback Example 16 | /// An example of converting an AVProVideo image frame to an OpenCV Mat using AsyncGPUReadback. 17 | /// 18 | public class AVProVideoAsyncGPUReadbackExample : MonoBehaviour 19 | { 20 | 21 | /// 22 | /// The media player. 23 | /// 24 | public MediaPlayer mediaPlayer; 25 | 26 | private int _lastFrame; 27 | 28 | private bool _graphicsFormatIsFormatSupported; 29 | 30 | /// 31 | /// The texture. 32 | /// 33 | Texture2D texture; 34 | 35 | /// 36 | /// The rgba mat. 37 | /// 38 | Mat rgbaMat; 39 | 40 | /// 41 | /// The m sepia kernel. 42 | /// 43 | Mat mSepiaKernel; 44 | 45 | /// 46 | /// The m size0. 47 | /// 48 | Size mSize0; 49 | 50 | /// 51 | /// The m intermediate mat. 52 | /// 53 | Mat mIntermediateMat; 54 | 55 | public enum modeType 56 | { 57 | original, 58 | sepia, 59 | pixelize, 60 | } 61 | 62 | /// 63 | /// The mode. 64 | /// 65 | modeType mode; 66 | 67 | 68 | /// 69 | /// The original mode toggle. 70 | /// 71 | public Toggle originalModeToggle; 72 | 73 | 74 | /// 75 | /// The sepia mode toggle. 76 | /// 77 | public Toggle sepiaModeToggle; 78 | 79 | 80 | /// 81 | /// The pixelize mode toggle. 82 | /// 83 | public Toggle pixelizeModeToggle; 84 | 85 | 86 | // Use this for initialization 87 | void Start() 88 | { 89 | if (originalModeToggle.isOn) 90 | { 91 | mode = modeType.original; 92 | } 93 | if (sepiaModeToggle.isOn) 94 | { 95 | mode = modeType.sepia; 96 | } 97 | if (pixelizeModeToggle.isOn) 98 | { 99 | mode = modeType.pixelize; 100 | } 101 | 102 | // sepia 103 | mSepiaKernel = new Mat(4, 4, CvType.CV_32F); 104 | mSepiaKernel.put(0, 0, /* R */0.189f, 0.769f, 0.393f, 0f); 105 | mSepiaKernel.put(1, 0, /* G */0.168f, 0.686f, 0.349f, 0f); 106 | mSepiaKernel.put(2, 0, /* B */0.131f, 0.534f, 0.272f, 0f); 107 | mSepiaKernel.put(3, 0, /* A */0.000f, 0.000f, 0.000f, 1f); 108 | 109 | 110 | // pixelize 111 | mIntermediateMat = new Mat(); 112 | mSize0 = new Size(); 113 | 114 | 115 | mediaPlayer.Events.AddListener(OnVideoEvent); 116 | 117 | // 118 | ReadbackSupport(); 119 | // 120 | } 121 | 122 | // 123 | public void ReadbackSupport() 124 | { 125 | var read_formats = System.Enum.GetValues(typeof(GraphicsFormat)).Cast() 126 | .Where(f => SystemInfo.IsFormatSupported(f, FormatUsage.ReadPixels)) 127 | .ToArray(); 128 | Debug.Log("AsyncGPUReadbackSupportedGraphicsFormats:\n" + string.Join("\n", read_formats)); 129 | } 130 | // 131 | 132 | // Update is called once per frame 133 | void Update() 134 | { 135 | 136 | if (texture != null) 137 | { 138 | IMediaControl control = mediaPlayer.Control; 139 | 140 | int lastFrame = control.GetCurrentTimeFrames(); 141 | 142 | // Reset _lastFrame at the timing when the video is reset. 143 | if (lastFrame < _lastFrame) 144 | _lastFrame = 0; 145 | 146 | if (lastFrame != _lastFrame) 147 | { 148 | _lastFrame = lastFrame; 149 | 150 | //Debug.Log("FrameReady " + lastFrame); 151 | 152 | if (_graphicsFormatIsFormatSupported) 153 | { 154 | AsyncGPUReadback.Request(mediaPlayer.TextureProducer.GetTexture(), 0, TextureFormat.RGBA32, (request) => { OnCompleteReadback(request, lastFrame); }); 155 | } 156 | } 157 | } 158 | 159 | } 160 | 161 | void OnCompleteReadback(AsyncGPUReadbackRequest request, long frameIndex) 162 | { 163 | 164 | if (request.hasError) 165 | { 166 | Debug.Log("GPU readback error detected. " + frameIndex); 167 | 168 | } 169 | else if (request.done) 170 | { 171 | //Debug.Log("Start GPU readback done. "+frameIndex); 172 | 173 | //Debug.Log("Thread.CurrentThread.ManagedThreadId " + Thread.CurrentThread.ManagedThreadId); 174 | 175 | MatUtils.copyToMat(request.GetData(), rgbaMat); 176 | 177 | //Core.flip(rgbaMat, rgbaMat, 0); 178 | 179 | 180 | if (mode == modeType.original) 181 | { 182 | 183 | } 184 | else if (mode == modeType.sepia) 185 | { 186 | 187 | Core.transform(rgbaMat, rgbaMat, mSepiaKernel); 188 | 189 | } 190 | else if (mode == modeType.pixelize) 191 | { 192 | 193 | Imgproc.resize(rgbaMat, mIntermediateMat, mSize0, 0.1, 0.1, Imgproc.INTER_NEAREST); 194 | Imgproc.resize(mIntermediateMat, rgbaMat, rgbaMat.size(), 0.0, 0.0, Imgproc.INTER_NEAREST); 195 | 196 | } 197 | 198 | 199 | Imgproc.putText(rgbaMat, "AVPro With OpenCV for Unity Example", new Point(50, rgbaMat.rows() / 2), Imgproc.FONT_HERSHEY_SIMPLEX, 2.0, new Scalar(255, 0, 0, 255), 5, Imgproc.LINE_AA, false); 200 | Imgproc.putText(rgbaMat, "W:" + rgbaMat.width() + " H:" + rgbaMat.height() + " SO:" + Screen.orientation, new Point(5, rgbaMat.rows() - 10), Imgproc.FONT_HERSHEY_SIMPLEX, 1.0, new Scalar(255, 255, 255, 255), 2, Imgproc.LINE_AA, false); 201 | 202 | //Convert Mat to Texture2D 203 | Utils.matToTexture2D(rgbaMat, texture); 204 | 205 | //Debug.Log("End GPU readback done. " + frameIndex); 206 | 207 | } 208 | } 209 | 210 | // Callback function to handle events 211 | public void OnVideoEvent(MediaPlayer mp, MediaPlayerEvent.EventType et, 212 | ErrorCode errorCode) 213 | { 214 | switch (et) 215 | { 216 | case MediaPlayerEvent.EventType.ReadyToPlay: 217 | mediaPlayer.Control.Play(); 218 | break; 219 | case MediaPlayerEvent.EventType.FirstFrameReady: 220 | Debug.Log("First frame ready"); 221 | OnNewMediaReady(); 222 | break; 223 | case MediaPlayerEvent.EventType.FinishedPlaying: 224 | mediaPlayer.Control.Rewind(); 225 | break; 226 | } 227 | Debug.Log("Event: " + et.ToString()); 228 | } 229 | 230 | /// 231 | /// Raises the new media ready event. 232 | /// 233 | private void OnNewMediaReady() 234 | { 235 | IMediaInfo info = mediaPlayer.Info; 236 | 237 | Debug.Log("GetVideoWidth " + info.GetVideoWidth() + " GetVideoHeight() " + info.GetVideoHeight()); 238 | 239 | // Create a texture the same resolution as our video 240 | if (texture != null) 241 | { 242 | Texture2D.Destroy(texture); 243 | texture = null; 244 | } 245 | 246 | texture = new Texture2D(info.GetVideoWidth(), info.GetVideoHeight(), TextureFormat.RGBA32, false); 247 | 248 | rgbaMat = new Mat(texture.height, texture.width, CvType.CV_8UC4); 249 | 250 | 251 | gameObject.GetComponent().material.mainTexture = texture; 252 | 253 | gameObject.transform.localScale = new Vector3(texture.width, texture.height, 1); 254 | Debug.Log("Screen.width " + Screen.width + " Screen.height " + Screen.height + " Screen.orientation " + Screen.orientation); 255 | 256 | float width = texture.width; 257 | float height = texture.height; 258 | 259 | float widthScale = (float)Screen.width / width; 260 | float heightScale = (float)Screen.height / height; 261 | if (widthScale < heightScale) 262 | { 263 | Camera.main.orthographicSize = (width * (float)Screen.height / (float)Screen.width) / 2; 264 | } 265 | else 266 | { 267 | Camera.main.orthographicSize = height / 2; 268 | } 269 | 270 | 271 | _graphicsFormatIsFormatSupported = SystemInfo.IsFormatSupported(mediaPlayer.TextureProducer.GetTexture().graphicsFormat, FormatUsage.ReadPixels); 272 | 273 | if (!_graphicsFormatIsFormatSupported) 274 | { 275 | Imgproc.rectangle(rgbaMat, new OpenCVForUnity.CoreModule.Rect(0, 0, rgbaMat.width(), rgbaMat.height()), new Scalar(0, 0, 0, 255), -1); 276 | Imgproc.putText(rgbaMat, mediaPlayer.TextureProducer.GetTexture().graphicsFormat + " is not supported for AsyncGPUReadback.", new Point(5, rgbaMat.rows() - 10), Imgproc.FONT_HERSHEY_SIMPLEX, 1.0, new Scalar(255, 255, 255, 255), 2, Imgproc.LINE_AA, false); 277 | 278 | Utils.matToTexture2D(rgbaMat, texture); 279 | } 280 | } 281 | 282 | /// 283 | /// Raises the destroy event. 284 | /// 285 | void OnDestroy() 286 | { 287 | AsyncGPUReadback.WaitAllRequests(); 288 | 289 | if (texture != null) 290 | { 291 | Texture2D.Destroy(texture); 292 | texture = null; 293 | } 294 | 295 | if (mSepiaKernel != null) 296 | { 297 | mSepiaKernel.Dispose(); 298 | mSepiaKernel = null; 299 | } 300 | 301 | if (mIntermediateMat != null) 302 | { 303 | mIntermediateMat.Dispose(); 304 | mIntermediateMat = null; 305 | } 306 | } 307 | 308 | /// 309 | /// Raises the back button event. 310 | /// 311 | public void OnBackButton() 312 | { 313 | SceneManager.LoadScene("AVProWithOpenCVForUnityExample"); 314 | } 315 | 316 | /// 317 | /// Raises the original mode toggle event. 318 | /// 319 | public void OnOriginalModeToggle() 320 | { 321 | 322 | if (originalModeToggle.isOn) 323 | { 324 | mode = modeType.original; 325 | } 326 | } 327 | 328 | /// 329 | /// Raises the sepia mode toggle event. 330 | /// 331 | public void OnSepiaModeToggle() 332 | { 333 | 334 | if (sepiaModeToggle.isOn) 335 | { 336 | mode = modeType.sepia; 337 | } 338 | } 339 | 340 | /// 341 | /// Raises the pixelize mode toggle event. 342 | /// 343 | public void OnPixelizeModeToggle() 344 | { 345 | 346 | if (pixelizeModeToggle.isOn) 347 | { 348 | mode = modeType.pixelize; 349 | } 350 | } 351 | } 352 | } 353 | -------------------------------------------------------------------------------- /Assets/AVProWithOpenCVForUnityExample/AVProVideoAsyncGPUReadbackExample/AVProVideoAsyncGPUReadbackExample.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a8cbcbf9b572da847968f474eff427fc 3 | timeCreated: 1481630932 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/AVProWithOpenCVForUnityExample/AVProVideoAsyncGPUReadbackExample/AVProVideoAsyncGPUReadbackExample.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3a3cc0eccff92be45a48ab04922797a0 3 | timeCreated: 1481556427 4 | licenseType: Pro 5 | DefaultImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/AVProWithOpenCVForUnityExample/AVProVideoExtractFrameExample.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5c1ad4319f41e434aa9391912311a971 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/AVProWithOpenCVForUnityExample/AVProVideoExtractFrameExample/AVProVideoExtractFrameExample.cs: -------------------------------------------------------------------------------- 1 | using OpenCVForUnity.CoreModule; 2 | using OpenCVForUnity.ImgprocModule; 3 | using OpenCVForUnity.UnityUtils; 4 | using RenderHeads.Media.AVProVideo; 5 | using UnityEngine; 6 | using UnityEngine.SceneManagement; 7 | using UnityEngine.UI; 8 | 9 | namespace AVProWithOpenCVForUnityExample 10 | { 11 | /// 12 | /// AVProVideo ExtractFrame Example 13 | /// An example of converting an AVProVideo image frame to an OpenCV Mat using ExtractFrame. 14 | /// 15 | public class AVProVideoExtractFrameExample : MonoBehaviour 16 | { 17 | 18 | private const int TARGET_FRAME_NUMBER = 100; 19 | private float _timeSeconds = 0f; 20 | public bool _accurateSeek = false; 21 | public int _timeoutMs = 250; 22 | 23 | /// 24 | /// The media player. 25 | /// 26 | public MediaPlayer mediaPlayer; 27 | 28 | /// 29 | /// The texture. 30 | /// 31 | Texture2D texture; 32 | 33 | /// 34 | /// The rgba mat. 35 | /// 36 | Mat rgbaMat; 37 | 38 | /// 39 | /// The m sepia kernel. 40 | /// 41 | Mat mSepiaKernel; 42 | 43 | /// 44 | /// The m size0. 45 | /// 46 | Size mSize0; 47 | 48 | /// 49 | /// The m intermediate mat. 50 | /// 51 | Mat mIntermediateMat; 52 | 53 | public enum modeType 54 | { 55 | original, 56 | sepia, 57 | pixelize, 58 | } 59 | 60 | /// 61 | /// The mode. 62 | /// 63 | modeType mode; 64 | 65 | 66 | /// 67 | /// The original mode toggle. 68 | /// 69 | public Toggle originalModeToggle; 70 | 71 | 72 | /// 73 | /// The sepia mode toggle. 74 | /// 75 | public Toggle sepiaModeToggle; 76 | 77 | 78 | /// 79 | /// The pixelize mode toggle. 80 | /// 81 | public Toggle pixelizeModeToggle; 82 | 83 | 84 | // Use this for initialization 85 | void Start() 86 | { 87 | if (originalModeToggle.isOn) 88 | { 89 | mode = modeType.original; 90 | } 91 | if (sepiaModeToggle.isOn) 92 | { 93 | mode = modeType.sepia; 94 | } 95 | if (pixelizeModeToggle.isOn) 96 | { 97 | mode = modeType.pixelize; 98 | } 99 | 100 | // sepia 101 | mSepiaKernel = new Mat(4, 4, CvType.CV_32F); 102 | mSepiaKernel.put(0, 0, /* R */0.189f, 0.769f, 0.393f, 0f); 103 | mSepiaKernel.put(1, 0, /* G */0.168f, 0.686f, 0.349f, 0f); 104 | mSepiaKernel.put(2, 0, /* B */0.131f, 0.534f, 0.272f, 0f); 105 | mSepiaKernel.put(3, 0, /* A */0.000f, 0.000f, 0.000f, 1f); 106 | 107 | 108 | // pixelize 109 | mIntermediateMat = new Mat(); 110 | mSize0 = new Size(); 111 | 112 | 113 | mediaPlayer.Events.AddListener(OnVideoEvent); 114 | } 115 | 116 | // Update is called once per frame 117 | void Update() 118 | { 119 | 120 | if (texture != null) 121 | { 122 | 123 | //Convert AVPro's Texture to Texture2D 124 | mediaPlayer.ExtractFrame(texture, _timeSeconds, _accurateSeek, _timeoutMs); 125 | 126 | //Convert Texture2D to Mat 127 | Utils.texture2DToMat(texture, rgbaMat); 128 | 129 | 130 | if (mode == modeType.original) 131 | { 132 | 133 | } 134 | else if (mode == modeType.sepia) 135 | { 136 | 137 | Core.transform(rgbaMat, rgbaMat, mSepiaKernel); 138 | 139 | } 140 | else if (mode == modeType.pixelize) 141 | { 142 | 143 | Imgproc.resize(rgbaMat, mIntermediateMat, mSize0, 0.1, 0.1, Imgproc.INTER_NEAREST); 144 | Imgproc.resize(mIntermediateMat, rgbaMat, rgbaMat.size(), 0.0, 0.0, Imgproc.INTER_NEAREST); 145 | 146 | } 147 | 148 | 149 | Imgproc.putText(rgbaMat, "AVPro With OpenCV for Unity Example", new Point(50, rgbaMat.rows() / 2), Imgproc.FONT_HERSHEY_SIMPLEX, 2.0, new Scalar(255, 0, 0, 255), 5, Imgproc.LINE_AA, false); 150 | Imgproc.putText(rgbaMat, "ExtractFrame: " + TARGET_FRAME_NUMBER + "( " + _timeSeconds + "sec )", new Point(50, rgbaMat.rows() / 2 + 60), Imgproc.FONT_HERSHEY_SIMPLEX, 2.0, new Scalar(0, 0, 255, 255), 5, Imgproc.LINE_AA, false); 151 | Imgproc.putText(rgbaMat, "W:" + rgbaMat.width() + " H:" + rgbaMat.height() + " SO:" + Screen.orientation, new Point(5, rgbaMat.rows() - 10), Imgproc.FONT_HERSHEY_SIMPLEX, 1.0, new Scalar(255, 255, 255, 255), 2, Imgproc.LINE_AA, false); 152 | 153 | //Convert Mat to Texture2D 154 | Utils.matToTexture2D(rgbaMat, texture); 155 | 156 | } 157 | 158 | } 159 | 160 | // Callback function to handle events 161 | public void OnVideoEvent(MediaPlayer mp, MediaPlayerEvent.EventType et, 162 | ErrorCode errorCode) 163 | { 164 | switch (et) 165 | { 166 | case MediaPlayerEvent.EventType.ReadyToPlay: 167 | mediaPlayer.Control.Play(); 168 | mediaPlayer.Control.Pause(); 169 | break; 170 | case MediaPlayerEvent.EventType.FirstFrameReady: 171 | Debug.Log("First frame ready"); 172 | OnNewMediaReady(); 173 | break; 174 | case MediaPlayerEvent.EventType.FinishedPlaying: 175 | mediaPlayer.Control.Rewind(); 176 | break; 177 | } 178 | Debug.Log("Event: " + et.ToString()); 179 | } 180 | 181 | /// 182 | /// Raises the new media ready event. 183 | /// 184 | private void OnNewMediaReady() 185 | { 186 | IMediaInfo info = mediaPlayer.Info; 187 | 188 | Debug.Log("GetVideoWidth " + info.GetVideoWidth() + " GetVideoHeight() " + info.GetVideoHeight()); 189 | 190 | // Create a texture the same resolution as our video 191 | if (texture != null) 192 | { 193 | Texture2D.Destroy(texture); 194 | texture = null; 195 | } 196 | 197 | texture = new Texture2D(info.GetVideoWidth(), info.GetVideoHeight(), TextureFormat.RGBA32, false); 198 | 199 | rgbaMat = new Mat(texture.height, texture.width, CvType.CV_8UC4); 200 | 201 | 202 | gameObject.GetComponent().material.mainTexture = texture; 203 | 204 | gameObject.transform.localScale = new Vector3(texture.width, texture.height, 1); 205 | Debug.Log("Screen.width " + Screen.width + " Screen.height " + Screen.height + " Screen.orientation " + Screen.orientation); 206 | 207 | float width = texture.width; 208 | float height = texture.height; 209 | 210 | float widthScale = (float)Screen.width / width; 211 | float heightScale = (float)Screen.height / height; 212 | if (widthScale < heightScale) 213 | { 214 | Camera.main.orthographicSize = (width * (float)Screen.height / (float)Screen.width) / 2; 215 | } 216 | else 217 | { 218 | Camera.main.orthographicSize = height / 2; 219 | } 220 | 221 | 222 | _timeSeconds = 1f / info.GetVideoFrameRate() * TARGET_FRAME_NUMBER; 223 | } 224 | 225 | /// 226 | /// Raises the destroy event. 227 | /// 228 | void OnDestroy() 229 | { 230 | if (texture != null) 231 | { 232 | Texture2D.Destroy(texture); 233 | texture = null; 234 | } 235 | 236 | if (mSepiaKernel != null) 237 | { 238 | mSepiaKernel.Dispose(); 239 | mSepiaKernel = null; 240 | } 241 | 242 | if (mIntermediateMat != null) 243 | { 244 | mIntermediateMat.Dispose(); 245 | mIntermediateMat = null; 246 | } 247 | } 248 | 249 | /// 250 | /// Raises the back button event. 251 | /// 252 | public void OnBackButton() 253 | { 254 | SceneManager.LoadScene("AVProWithOpenCVForUnityExample"); 255 | } 256 | 257 | /// 258 | /// Raises the original mode toggle event. 259 | /// 260 | public void OnOriginalModeToggle() 261 | { 262 | 263 | if (originalModeToggle.isOn) 264 | { 265 | mode = modeType.original; 266 | } 267 | } 268 | 269 | /// 270 | /// Raises the sepia mode toggle event. 271 | /// 272 | public void OnSepiaModeToggle() 273 | { 274 | 275 | if (sepiaModeToggle.isOn) 276 | { 277 | mode = modeType.sepia; 278 | } 279 | } 280 | 281 | /// 282 | /// Raises the pixelize mode toggle event. 283 | /// 284 | public void OnPixelizeModeToggle() 285 | { 286 | 287 | if (pixelizeModeToggle.isOn) 288 | { 289 | mode = modeType.pixelize; 290 | } 291 | } 292 | } 293 | } 294 | -------------------------------------------------------------------------------- /Assets/AVProWithOpenCVForUnityExample/AVProVideoExtractFrameExample/AVProVideoExtractFrameExample.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 02bc8c8566218a64e8169c524409eddf 3 | timeCreated: 1481632611 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/AVProWithOpenCVForUnityExample/AVProVideoExtractFrameExample/AVProVideoExtractFrameExample.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e02af0c567b75d74b895d8a7be46d345 3 | timeCreated: 1481632581 4 | licenseType: Pro 5 | DefaultImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/AVProWithOpenCVForUnityExample/AVProVideoGetReadableTextureExample.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0d2a3439faad07f46b3c8549a224c602 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/AVProWithOpenCVForUnityExample/AVProVideoGetReadableTextureExample/AVProVideoGetReadableTextureExample.cs: -------------------------------------------------------------------------------- 1 | using OpenCVForUnity.CoreModule; 2 | using OpenCVForUnity.ImgprocModule; 3 | using OpenCVForUnity.UnityUtils; 4 | using RenderHeads.Media.AVProVideo; 5 | using UnityEngine; 6 | using UnityEngine.SceneManagement; 7 | using UnityEngine.UI; 8 | 9 | namespace AVProWithOpenCVForUnityExample 10 | { 11 | /// 12 | /// AVProVideo GetReadableTexture Example 13 | /// An example of converting an AVProVideo image frame to an OpenCV Mat using GetReadableTexture. 14 | /// 15 | public class AVProVideoGetReadableTextureExample : MonoBehaviour 16 | { 17 | 18 | /// 19 | /// The media player. 20 | /// 21 | public MediaPlayer mediaPlayer; 22 | 23 | private int _lastFrame; 24 | 25 | /// 26 | /// The texture. 27 | /// 28 | Texture2D texture; 29 | 30 | /// 31 | /// The rgba mat. 32 | /// 33 | Mat rgbaMat; 34 | 35 | /// 36 | /// The m sepia kernel. 37 | /// 38 | Mat mSepiaKernel; 39 | 40 | /// 41 | /// The m size0. 42 | /// 43 | Size mSize0; 44 | 45 | /// 46 | /// The m intermediate mat. 47 | /// 48 | Mat mIntermediateMat; 49 | 50 | public enum modeType 51 | { 52 | original, 53 | sepia, 54 | pixelize, 55 | } 56 | 57 | /// 58 | /// The mode. 59 | /// 60 | modeType mode; 61 | 62 | 63 | /// 64 | /// The original mode toggle. 65 | /// 66 | public Toggle originalModeToggle; 67 | 68 | 69 | /// 70 | /// The sepia mode toggle. 71 | /// 72 | public Toggle sepiaModeToggle; 73 | 74 | 75 | /// 76 | /// The pixelize mode toggle. 77 | /// 78 | public Toggle pixelizeModeToggle; 79 | 80 | 81 | // Use this for initialization 82 | void Start() 83 | { 84 | if (originalModeToggle.isOn) 85 | { 86 | mode = modeType.original; 87 | } 88 | if (sepiaModeToggle.isOn) 89 | { 90 | mode = modeType.sepia; 91 | } 92 | if (pixelizeModeToggle.isOn) 93 | { 94 | mode = modeType.pixelize; 95 | } 96 | 97 | // sepia 98 | mSepiaKernel = new Mat(4, 4, CvType.CV_32F); 99 | mSepiaKernel.put(0, 0, /* R */0.189f, 0.769f, 0.393f, 0f); 100 | mSepiaKernel.put(1, 0, /* G */0.168f, 0.686f, 0.349f, 0f); 101 | mSepiaKernel.put(2, 0, /* B */0.131f, 0.534f, 0.272f, 0f); 102 | mSepiaKernel.put(3, 0, /* A */0.000f, 0.000f, 0.000f, 1f); 103 | 104 | 105 | // pixelize 106 | mIntermediateMat = new Mat(); 107 | mSize0 = new Size(); 108 | 109 | 110 | mediaPlayer.Events.AddListener(OnVideoEvent); 111 | } 112 | 113 | // Update is called once per frame 114 | void Update() 115 | { 116 | 117 | if (texture != null) 118 | { 119 | IMediaControl control = mediaPlayer.Control; 120 | 121 | int lastFrame = control.GetCurrentTimeFrames(); 122 | 123 | // Reset _lastFrame at the timing when the video is reset. 124 | if (lastFrame < _lastFrame) 125 | _lastFrame = 0; 126 | 127 | if (lastFrame != _lastFrame) 128 | { 129 | _lastFrame = lastFrame; 130 | 131 | //Debug.Log("FrameReady " + lastFrame); 132 | 133 | 134 | //Convert AVPro's Texture to Texture2D 135 | Helper.GetReadableTexture(mediaPlayer.TextureProducer.GetTexture(), mediaPlayer.TextureProducer.RequiresVerticalFlip(), Helper.GetOrientation(mediaPlayer.Info.GetTextureTransform()), texture); 136 | 137 | //Convert Texture2D to Mat 138 | Utils.texture2DToMat(texture, rgbaMat); 139 | 140 | 141 | if (mode == modeType.original) 142 | { 143 | 144 | } 145 | else if (mode == modeType.sepia) 146 | { 147 | 148 | Core.transform(rgbaMat, rgbaMat, mSepiaKernel); 149 | 150 | } 151 | else if (mode == modeType.pixelize) 152 | { 153 | 154 | Imgproc.resize(rgbaMat, mIntermediateMat, mSize0, 0.1, 0.1, Imgproc.INTER_NEAREST); 155 | Imgproc.resize(mIntermediateMat, rgbaMat, rgbaMat.size(), 0.0, 0.0, Imgproc.INTER_NEAREST); 156 | 157 | } 158 | 159 | 160 | Imgproc.putText(rgbaMat, "AVPro With OpenCV for Unity Example", new Point(50, rgbaMat.rows() / 2), Imgproc.FONT_HERSHEY_SIMPLEX, 2.0, new Scalar(255, 0, 0, 255), 5, Imgproc.LINE_AA, false); 161 | Imgproc.putText(rgbaMat, "W:" + rgbaMat.width() + " H:" + rgbaMat.height() + " SO:" + Screen.orientation, new Point(5, rgbaMat.rows() - 10), Imgproc.FONT_HERSHEY_SIMPLEX, 1.0, new Scalar(255, 255, 255, 255), 2, Imgproc.LINE_AA, false); 162 | 163 | //Convert Mat to Texture2D 164 | Utils.matToTexture2D(rgbaMat, texture); 165 | } 166 | } 167 | 168 | } 169 | 170 | // Callback function to handle events 171 | public void OnVideoEvent(MediaPlayer mp, MediaPlayerEvent.EventType et, 172 | ErrorCode errorCode) 173 | { 174 | switch (et) 175 | { 176 | case MediaPlayerEvent.EventType.ReadyToPlay: 177 | mediaPlayer.Control.Play(); 178 | break; 179 | case MediaPlayerEvent.EventType.FirstFrameReady: 180 | Debug.Log("First frame ready"); 181 | OnNewMediaReady(); 182 | break; 183 | case MediaPlayerEvent.EventType.FinishedPlaying: 184 | mediaPlayer.Control.Rewind(); 185 | break; 186 | } 187 | Debug.Log("Event: " + et.ToString()); 188 | } 189 | 190 | /// 191 | /// Raises the new media ready event. 192 | /// 193 | private void OnNewMediaReady() 194 | { 195 | IMediaInfo info = mediaPlayer.Info; 196 | 197 | Debug.Log("GetVideoWidth " + info.GetVideoWidth() + " GetVideoHeight() " + info.GetVideoHeight()); 198 | 199 | // Create a texture the same resolution as our video 200 | if (texture != null) 201 | { 202 | Texture2D.Destroy(texture); 203 | texture = null; 204 | } 205 | 206 | texture = new Texture2D(info.GetVideoWidth(), info.GetVideoHeight(), TextureFormat.RGBA32, false); 207 | 208 | rgbaMat = new Mat(texture.height, texture.width, CvType.CV_8UC4); 209 | 210 | 211 | gameObject.GetComponent().material.mainTexture = texture; 212 | 213 | gameObject.transform.localScale = new Vector3(texture.width, texture.height, 1); 214 | Debug.Log("Screen.width " + Screen.width + " Screen.height " + Screen.height + " Screen.orientation " + Screen.orientation); 215 | 216 | float width = texture.width; 217 | float height = texture.height; 218 | 219 | float widthScale = (float)Screen.width / width; 220 | float heightScale = (float)Screen.height / height; 221 | if (widthScale < heightScale) 222 | { 223 | Camera.main.orthographicSize = (width * (float)Screen.height / (float)Screen.width) / 2; 224 | } 225 | else 226 | { 227 | Camera.main.orthographicSize = height / 2; 228 | } 229 | 230 | } 231 | 232 | /// 233 | /// Raises the destroy event. 234 | /// 235 | void OnDestroy() 236 | { 237 | if (texture != null) 238 | { 239 | Texture2D.Destroy(texture); 240 | texture = null; 241 | } 242 | 243 | if (mSepiaKernel != null) 244 | { 245 | mSepiaKernel.Dispose(); 246 | mSepiaKernel = null; 247 | } 248 | 249 | if (mIntermediateMat != null) 250 | { 251 | mIntermediateMat.Dispose(); 252 | mIntermediateMat = null; 253 | } 254 | } 255 | 256 | /// 257 | /// Raises the back button event. 258 | /// 259 | public void OnBackButton() 260 | { 261 | SceneManager.LoadScene("AVProWithOpenCVForUnityExample"); 262 | } 263 | 264 | /// 265 | /// Raises the original mode toggle event. 266 | /// 267 | public void OnOriginalModeToggle() 268 | { 269 | 270 | if (originalModeToggle.isOn) 271 | { 272 | mode = modeType.original; 273 | } 274 | } 275 | 276 | /// 277 | /// Raises the sepia mode toggle event. 278 | /// 279 | public void OnSepiaModeToggle() 280 | { 281 | 282 | if (sepiaModeToggle.isOn) 283 | { 284 | mode = modeType.sepia; 285 | } 286 | } 287 | 288 | /// 289 | /// Raises the pixelize mode toggle event. 290 | /// 291 | public void OnPixelizeModeToggle() 292 | { 293 | 294 | if (pixelizeModeToggle.isOn) 295 | { 296 | mode = modeType.pixelize; 297 | } 298 | } 299 | } 300 | } 301 | -------------------------------------------------------------------------------- /Assets/AVProWithOpenCVForUnityExample/AVProVideoGetReadableTextureExample/AVProVideoGetReadableTextureExample.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 40d87b35774f1204fb9041f0d36420dd 3 | timeCreated: 1481630932 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/AVProWithOpenCVForUnityExample/AVProVideoGetReadableTextureExample/AVProVideoGetReadableTextureExample.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b54a791b6ec66024987c731b9ec67a3c 3 | timeCreated: 1481556427 4 | licenseType: Pro 5 | DefaultImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/AVProWithOpenCVForUnityExample/AVProWithOpenCVForUnityExample.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using UnityEngine; 3 | using UnityEngine.SceneManagement; 4 | using UnityEngine.UI; 5 | 6 | namespace AVProWithOpenCVForUnityExample 7 | { 8 | public class AVProWithOpenCVForUnityExample : MonoBehaviour 9 | { 10 | 11 | [Header("UI")] 12 | public Text exampleTitle; 13 | public Text versionInfo; 14 | public ScrollRect scrollRect; 15 | private static float verticalNormalizedPosition = 1f; 16 | 17 | void Awake() 18 | { 19 | //QualitySettings.vSyncCount = 0; 20 | //Application.targetFrameRate = 60; 21 | } 22 | 23 | IEnumerator Start() 24 | { 25 | 26 | exampleTitle.text = "AVProWithOpenCVForUnity Example " + Application.version; 27 | 28 | versionInfo.text = OpenCVForUnity.CoreModule.Core.NATIVE_LIBRARY_NAME + " " + OpenCVForUnity.UnityUtils.Utils.getVersion() + " (" + OpenCVForUnity.CoreModule.Core.VERSION + ")"; 29 | versionInfo.text += " / UnityEditor " + Application.unityVersion; 30 | versionInfo.text += " / "; 31 | #if UNITY_EDITOR 32 | versionInfo.text += "Editor"; 33 | #elif UNITY_STANDALONE_WIN 34 | versionInfo.text += "Windows"; 35 | #elif UNITY_STANDALONE_OSX 36 | versionInfo.text += "Mac OSX"; 37 | #elif UNITY_STANDALONE_LINUX 38 | versionInfo.text += "Linux"; 39 | #elif UNITY_ANDROID 40 | versionInfo.text += "Android"; 41 | #elif UNITY_IOS 42 | versionInfo.text += "iOS"; 43 | #elif UNITY_WSA 44 | versionInfo.text += "WSA"; 45 | #elif UNITY_WEBGL 46 | versionInfo.text += "WebGL"; 47 | #endif 48 | versionInfo.text += " "; 49 | #if ENABLE_MONO 50 | versionInfo.text += "Mono"; 51 | #elif ENABLE_IL2CPP 52 | versionInfo.text += "IL2CPP"; 53 | #elif ENABLE_DOTNET 54 | versionInfo.text += ".NET"; 55 | #endif 56 | 57 | scrollRect.verticalNormalizedPosition = verticalNormalizedPosition; 58 | 59 | yield break; 60 | } 61 | 62 | public void OnScrollRectValueChanged() 63 | { 64 | verticalNormalizedPosition = scrollRect.verticalNormalizedPosition; 65 | } 66 | 67 | public void OnShowLicenseButton() 68 | { 69 | SceneManager.LoadScene("ShowLicense"); 70 | } 71 | 72 | public void OnAVProVideoGetReadableTextureExampleButton() 73 | { 74 | SceneManager.LoadScene("AVProVideoGetReadableTextureExample"); 75 | } 76 | 77 | public void OnAVProVideoAsyncGPUReadbackExampleButton() 78 | { 79 | SceneManager.LoadScene("AVProVideoAsyncGPUReadbackExample"); 80 | } 81 | 82 | public void OnAVProVideoExtractFrameExampleButton() 83 | { 84 | SceneManager.LoadScene("AVProVideoExtractFrameExample"); 85 | } 86 | 87 | public void OnAVProLiveCameraGetFrameAsColor32ExampleButton() 88 | { 89 | SceneManager.LoadScene("AVProLiveCameraGetFrameAsColor32Example"); 90 | } 91 | 92 | public void OnAVProLiveCameraAsyncGPUReadbackExampleButton() 93 | { 94 | SceneManager.LoadScene("AVProLiveCameraAsyncGPUReadbackExample"); 95 | } 96 | } 97 | } 98 | -------------------------------------------------------------------------------- /Assets/AVProWithOpenCVForUnityExample/AVProWithOpenCVForUnityExample.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 99e5eed4cb37257408d0f75a493b305c 3 | timeCreated: 1481631019 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/AVProWithOpenCVForUnityExample/AVProWithOpenCVForUnityExample.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 56f9daf6cbf8ef547aaf6f86a8a17eb8 3 | timeCreated: 1481631019 4 | licenseType: Pro 5 | DefaultImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/AVProWithOpenCVForUnityExample/LoadingIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnoxSoftware/AVProWithOpenCVForUnityExample/f4b62296901af71b9897cd2940e6657c54ed3964/Assets/AVProWithOpenCVForUnityExample/LoadingIcon.png -------------------------------------------------------------------------------- /Assets/AVProWithOpenCVForUnityExample/LoadingIcon.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 73061be1c70214c48a2d84d91c6e2e1c 3 | timeCreated: 1479448965 4 | licenseType: Pro 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 2 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 1 11 | linearTexture: 0 12 | correctGamma: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: .25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 0 25 | cubemapConvolution: 0 26 | cubemapConvolutionSteps: 8 27 | cubemapConvolutionExponent: 1.5 28 | seamlessCubemap: 0 29 | textureFormat: -1 30 | maxTextureSize: 512 31 | textureSettings: 32 | filterMode: -1 33 | aniso: -1 34 | mipBias: -1 35 | wrapMode: -1 36 | nPOTScale: 1 37 | lightmap: 0 38 | rGBM: 0 39 | compressionQuality: 50 40 | spriteMode: 0 41 | spriteExtrude: 1 42 | spriteMeshType: 1 43 | alignment: 0 44 | spritePivot: {x: .5, y: .5} 45 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 46 | spritePixelsToUnits: 100 47 | alphaIsTransparency: 0 48 | textureType: -1 49 | buildTargetSettings: [] 50 | spriteSheet: 51 | sprites: [] 52 | spritePackingTag: 53 | userData: 54 | assetBundleName: 55 | assetBundleVariant: 56 | -------------------------------------------------------------------------------- /Assets/AVProWithOpenCVForUnityExample/Materials.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 03ddd4e615f3fae44a8b4f6dfb4308b5 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/AVProWithOpenCVForUnityExample/Materials/ExampleMaterial.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_PrefabParentObject: {fileID: 0} 8 | m_PrefabInternal: {fileID: 0} 9 | m_Name: ExampleMaterial 10 | m_Shader: {fileID: 10750, guid: 0000000000000000f000000000000000, type: 0} 11 | m_ShaderKeywords: 12 | m_LightmapFlags: 5 13 | m_EnableInstancingVariants: 0 14 | m_DoubleSidedGI: 0 15 | m_CustomRenderQueue: -1 16 | stringTagMap: {} 17 | disabledShaderPasses: [] 18 | m_SavedProperties: 19 | serializedVersion: 3 20 | m_TexEnvs: 21 | - _MainTex: 22 | m_Texture: {fileID: 2800000, guid: 73061be1c70214c48a2d84d91c6e2e1c, type: 3} 23 | m_Scale: {x: 1, y: 1} 24 | m_Offset: {x: 0, y: 0} 25 | m_Floats: [] 26 | m_Colors: 27 | - _Color: {r: 1, g: 1, b: 1, a: 1} 28 | -------------------------------------------------------------------------------- /Assets/AVProWithOpenCVForUnityExample/Materials/ExampleMaterial.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3afa5cebfe59c1d49918e22598785af7 3 | NativeFormatImporter: 4 | userData: 5 | assetBundleName: 6 | assetBundleVariant: 7 | -------------------------------------------------------------------------------- /Assets/AVProWithOpenCVForUnityExample/Scripts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2526fc52f302e4a48954c2d46b1cd593 3 | folderAsset: yes 4 | timeCreated: 1481630425 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/AVProWithOpenCVForUnityExample/Scripts/Utils.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d3b818f28800a7a408c688131a45a833 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/AVProWithOpenCVForUnityExample/Scripts/Utils/FpsMonitor.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using UnityEngine; 3 | 4 | namespace AVProWithOpenCVForUnityExample 5 | { 6 | // v1.0.1 7 | public class FpsMonitor : MonoBehaviour 8 | { 9 | int tick = 0; 10 | float elapsed = 0; 11 | float fps = 0; 12 | 13 | public enum Alignment 14 | { 15 | LeftTop, 16 | RightTop, 17 | LeftBottom, 18 | RightBottom, 19 | } 20 | 21 | public Alignment alignment = Alignment.RightTop; 22 | 23 | const float GUI_WIDTH = 75f; 24 | const float GUI_HEIGHT = 30f; 25 | const float MARGIN_X = 10f; 26 | const float MARGIN_Y = 10f; 27 | const float INNER_X = 8f; 28 | const float INNER_Y = 5f; 29 | const float GUI_CONSOLE_HEIGHT = 50f; 30 | 31 | public Vector2 offset = new Vector2(MARGIN_X, MARGIN_Y); 32 | public bool boxVisible = true; 33 | public float boxWidth = GUI_WIDTH; 34 | public float boxHeight = GUI_HEIGHT; 35 | public Vector2 padding = new Vector2(INNER_X, INNER_Y); 36 | public float consoleHeight = GUI_CONSOLE_HEIGHT; 37 | 38 | GUIStyle console_labelStyle; 39 | 40 | float x, y; 41 | Rect outer; 42 | Rect inner; 43 | 44 | float console_x, console_y; 45 | Rect console_outer; 46 | Rect console_inner; 47 | 48 | int oldScrWidth; 49 | int oldScrHeight; 50 | 51 | Dictionary outputDict = new Dictionary(); 52 | 53 | protected string _consoleText = null; 54 | public virtual string consoleText 55 | { 56 | get { return _consoleText; } 57 | set 58 | { 59 | _consoleText = value; 60 | toast_time = -1; 61 | } 62 | } 63 | 64 | int toast_time = -1; 65 | 66 | // Use this for initialization 67 | void Start() 68 | { 69 | console_labelStyle = new GUIStyle(); 70 | console_labelStyle.fontSize = 32; 71 | console_labelStyle.fontStyle = FontStyle.Normal; 72 | console_labelStyle.wordWrap = true; 73 | console_labelStyle.normal.textColor = Color.white; 74 | 75 | oldScrWidth = Screen.width; 76 | oldScrHeight = Screen.height; 77 | LocateGUI(); 78 | } 79 | 80 | // Update is called once per frame 81 | void Update() 82 | { 83 | tick++; 84 | elapsed += Time.deltaTime; 85 | if (elapsed >= 1f) 86 | { 87 | fps = tick / elapsed; 88 | tick = 0; 89 | elapsed = 0; 90 | } 91 | 92 | if (toast_time > 0) 93 | { 94 | toast_time = toast_time - 1; 95 | } 96 | } 97 | 98 | void OnGUI() 99 | { 100 | if (oldScrWidth != Screen.width || oldScrHeight != Screen.height) 101 | { 102 | LocateGUI(); 103 | } 104 | oldScrWidth = Screen.width; 105 | oldScrHeight = Screen.height; 106 | 107 | if (boxVisible) 108 | { 109 | GUI.Box(outer, ""); 110 | } 111 | 112 | GUILayout.BeginArea(inner); 113 | { 114 | GUILayout.BeginVertical(); 115 | GUILayout.Label("fps : " + fps.ToString("F1")); 116 | foreach (KeyValuePair pair in outputDict) 117 | { 118 | GUILayout.Label(pair.Key + " : " + pair.Value); 119 | } 120 | GUILayout.EndVertical(); 121 | } 122 | GUILayout.EndArea(); 123 | 124 | if (!string.IsNullOrEmpty(consoleText)) 125 | { 126 | if (toast_time != 0) { 127 | if (boxVisible) 128 | { 129 | GUI.Box(console_outer, ""); 130 | } 131 | 132 | GUILayout.BeginArea(console_inner); 133 | { 134 | GUILayout.BeginVertical(); 135 | GUILayout.Label(consoleText, console_labelStyle); 136 | GUILayout.EndVertical(); 137 | } 138 | GUILayout.EndArea(); 139 | } 140 | } 141 | } 142 | 143 | public void Add(string key, string value) 144 | { 145 | if (outputDict.ContainsKey(key)) 146 | { 147 | outputDict[key] = value; 148 | } 149 | else 150 | { 151 | outputDict.Add(key, value); 152 | } 153 | } 154 | 155 | public void Remove(string key) 156 | { 157 | outputDict.Remove(key); 158 | } 159 | 160 | public void Clear() 161 | { 162 | outputDict.Clear(); 163 | } 164 | 165 | public void LocateGUI() 166 | { 167 | x = GetAlignedX(alignment, boxWidth); 168 | y = GetAlignedY(alignment, boxHeight); 169 | outer = new Rect(x, y, boxWidth, boxHeight); 170 | inner = new Rect(x + padding.x, y + padding.y, boxWidth, boxHeight); 171 | 172 | console_x = GetAlignedX(Alignment.LeftBottom, Screen.width); 173 | console_y = GetAlignedY(Alignment.LeftBottom, consoleHeight); 174 | console_outer = new Rect(console_x, console_y, Screen.width - offset.x * 2, consoleHeight); 175 | console_inner = new Rect(console_x + padding.x, console_y + padding.y, Screen.width - offset.x * 2 - padding.x, consoleHeight); 176 | } 177 | 178 | public void Toast(string message, int time = 120) 179 | { 180 | _consoleText = message; 181 | toast_time = (time < 60) ? 60 : time; 182 | } 183 | 184 | float GetAlignedX(Alignment anchor, float w) 185 | { 186 | switch (anchor) 187 | { 188 | default: 189 | case Alignment.LeftTop: 190 | case Alignment.LeftBottom: 191 | return offset.x; 192 | 193 | case Alignment.RightTop: 194 | case Alignment.RightBottom: 195 | return Screen.width - w - offset.x; 196 | } 197 | } 198 | 199 | float GetAlignedY(Alignment anchor, float h) 200 | { 201 | switch (anchor) 202 | { 203 | default: 204 | case Alignment.LeftTop: 205 | case Alignment.RightTop: 206 | return offset.y; 207 | 208 | case Alignment.LeftBottom: 209 | case Alignment.RightBottom: 210 | return Screen.height - h - offset.y; 211 | } 212 | } 213 | } 214 | } -------------------------------------------------------------------------------- /Assets/AVProWithOpenCVForUnityExample/Scripts/Utils/FpsMonitor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b3afd8b9824360045957f5329d104d6d 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/AVProWithOpenCVForUnityExample/ShowLicense.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.SceneManagement; 3 | 4 | namespace AVProWithOpenCVForUnityExample 5 | { 6 | public class ShowLicense : MonoBehaviour 7 | { 8 | 9 | // Use this for initialization 10 | void Start() 11 | { 12 | 13 | } 14 | 15 | // Update is called once per frame 16 | void Update() 17 | { 18 | 19 | } 20 | 21 | public void OnBackButton() 22 | { 23 | SceneManager.LoadScene("AVProWithOpenCVForUnityExample"); 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /Assets/AVProWithOpenCVForUnityExample/ShowLicense.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e8acd81474de8324fa0d60f7399ebdd0 3 | timeCreated: 1481631418 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/AVProWithOpenCVForUnityExample/ShowLicense.unity: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!29 &1 4 | OcclusionCullingSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_OcclusionBakeSettings: 8 | smallestOccluder: 5 9 | smallestHole: 0.25 10 | backfaceThreshold: 100 11 | m_SceneGUID: 00000000000000000000000000000000 12 | m_OcclusionCullingData: {fileID: 0} 13 | --- !u!104 &2 14 | RenderSettings: 15 | m_ObjectHideFlags: 0 16 | serializedVersion: 9 17 | m_Fog: 0 18 | m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} 19 | m_FogMode: 3 20 | m_FogDensity: 0.01 21 | m_LinearFogStart: 0 22 | m_LinearFogEnd: 300 23 | m_AmbientSkyColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} 24 | m_AmbientEquatorColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} 25 | m_AmbientGroundColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} 26 | m_AmbientIntensity: 1 27 | m_AmbientMode: 3 28 | m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} 29 | m_SkyboxMaterial: {fileID: 0} 30 | m_HaloStrength: 0.5 31 | m_FlareStrength: 1 32 | m_FlareFadeSpeed: 3 33 | m_HaloTexture: {fileID: 0} 34 | m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} 35 | m_DefaultReflectionMode: 0 36 | m_DefaultReflectionResolution: 128 37 | m_ReflectionBounces: 1 38 | m_ReflectionIntensity: 1 39 | m_CustomReflection: {fileID: 0} 40 | m_Sun: {fileID: 0} 41 | m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} 42 | m_UseRadianceAmbientProbe: 0 43 | --- !u!157 &4 44 | LightmapSettings: 45 | m_ObjectHideFlags: 0 46 | serializedVersion: 12 47 | m_GIWorkflowMode: 1 48 | m_GISettings: 49 | serializedVersion: 2 50 | m_BounceScale: 1 51 | m_IndirectOutputScale: 1 52 | m_AlbedoBoost: 1 53 | m_EnvironmentLightingMode: 0 54 | m_EnableBakedLightmaps: 1 55 | m_EnableRealtimeLightmaps: 0 56 | m_LightmapEditorSettings: 57 | serializedVersion: 12 58 | m_Resolution: 1 59 | m_BakeResolution: 50 60 | m_AtlasSize: 1024 61 | m_AO: 0 62 | m_AOMaxDistance: 1 63 | m_CompAOExponent: 0 64 | m_CompAOExponentDirect: 0 65 | m_ExtractAmbientOcclusion: 0 66 | m_Padding: 2 67 | m_LightmapParameters: {fileID: 0} 68 | m_LightmapsBakeMode: 1 69 | m_TextureCompression: 0 70 | m_FinalGather: 0 71 | m_FinalGatherFiltering: 1 72 | m_FinalGatherRayCount: 1024 73 | m_ReflectionCompression: 2 74 | m_MixedBakeMode: 1 75 | m_BakeBackend: 0 76 | m_PVRSampling: 1 77 | m_PVRDirectSampleCount: 32 78 | m_PVRSampleCount: 512 79 | m_PVRBounces: 2 80 | m_PVREnvironmentSampleCount: 512 81 | m_PVREnvironmentReferencePointCount: 2048 82 | m_PVRFilteringMode: 0 83 | m_PVRDenoiserTypeDirect: 0 84 | m_PVRDenoiserTypeIndirect: 0 85 | m_PVRDenoiserTypeAO: 0 86 | m_PVRFilterTypeDirect: 0 87 | m_PVRFilterTypeIndirect: 0 88 | m_PVRFilterTypeAO: 0 89 | m_PVREnvironmentMIS: 0 90 | m_PVRCulling: 1 91 | m_PVRFilteringGaussRadiusDirect: 1 92 | m_PVRFilteringGaussRadiusIndirect: 5 93 | m_PVRFilteringGaussRadiusAO: 2 94 | m_PVRFilteringAtrousPositionSigmaDirect: 0.5 95 | m_PVRFilteringAtrousPositionSigmaIndirect: 2 96 | m_PVRFilteringAtrousPositionSigmaAO: 1 97 | m_ExportTrainingData: 0 98 | m_TrainingDataDestination: TrainingData 99 | m_LightProbeSampleCountMultiplier: 4 100 | m_LightingDataAsset: {fileID: 0} 101 | m_LightingSettings: {fileID: 4890085278179872738, guid: 0904909b966321d4a9da72eb778acfeb, 102 | type: 2} 103 | --- !u!196 &5 104 | NavMeshSettings: 105 | serializedVersion: 2 106 | m_ObjectHideFlags: 0 107 | m_BuildSettings: 108 | serializedVersion: 2 109 | agentTypeID: 0 110 | agentRadius: 0.5 111 | agentHeight: 2 112 | agentSlope: 45 113 | agentClimb: 0.4 114 | ledgeDropHeight: 0 115 | maxJumpAcrossDistance: 0 116 | minRegionArea: 2 117 | manualCellSize: 0 118 | cellSize: 0.16666666 119 | manualTileSize: 0 120 | tileSize: 256 121 | accuratePlacement: 0 122 | maxJobWorkers: 0 123 | preserveTilesOutsideBounds: 0 124 | debug: 125 | m_Flags: 0 126 | m_NavMeshData: {fileID: 0} 127 | --- !u!1 &38156656 128 | GameObject: 129 | m_ObjectHideFlags: 0 130 | m_CorrespondingSourceObject: {fileID: 0} 131 | m_PrefabInstance: {fileID: 0} 132 | m_PrefabAsset: {fileID: 0} 133 | serializedVersion: 6 134 | m_Component: 135 | - component: {fileID: 38156657} 136 | - component: {fileID: 38156661} 137 | - component: {fileID: 38156660} 138 | - component: {fileID: 38156659} 139 | - component: {fileID: 38156658} 140 | m_Layer: 5 141 | m_Name: ScrollView 142 | m_TagString: Untagged 143 | m_Icon: {fileID: 0} 144 | m_NavMeshLayer: 0 145 | m_StaticEditorFlags: 0 146 | m_IsActive: 1 147 | --- !u!224 &38156657 148 | RectTransform: 149 | m_ObjectHideFlags: 0 150 | m_CorrespondingSourceObject: {fileID: 0} 151 | m_PrefabInstance: {fileID: 0} 152 | m_PrefabAsset: {fileID: 0} 153 | m_GameObject: {fileID: 38156656} 154 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 155 | m_LocalPosition: {x: 0, y: 0, z: 0} 156 | m_LocalScale: {x: 1, y: 1, z: 1} 157 | m_Children: 158 | - {fileID: 1086899404} 159 | m_Father: {fileID: 1646839690} 160 | m_RootOrder: 0 161 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 162 | m_AnchorMin: {x: 0, y: 0} 163 | m_AnchorMax: {x: 1, y: 1} 164 | m_AnchoredPosition: {x: -10, y: 0} 165 | m_SizeDelta: {x: -20, y: 0} 166 | m_Pivot: {x: 0.5, y: 1} 167 | --- !u!114 &38156658 168 | MonoBehaviour: 169 | m_ObjectHideFlags: 0 170 | m_CorrespondingSourceObject: {fileID: 0} 171 | m_PrefabInstance: {fileID: 0} 172 | m_PrefabAsset: {fileID: 0} 173 | m_GameObject: {fileID: 38156656} 174 | m_Enabled: 1 175 | m_EditorHideFlags: 0 176 | m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} 177 | m_Name: 178 | m_EditorClassIdentifier: 179 | m_Material: {fileID: 0} 180 | m_Color: {r: 1, g: 1, b: 1, a: 1} 181 | m_RaycastTarget: 1 182 | m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} 183 | m_Maskable: 1 184 | m_OnCullStateChanged: 185 | m_PersistentCalls: 186 | m_Calls: [] 187 | m_Sprite: {fileID: 0} 188 | m_Type: 0 189 | m_PreserveAspect: 0 190 | m_FillCenter: 1 191 | m_FillMethod: 4 192 | m_FillAmount: 1 193 | m_FillClockwise: 1 194 | m_FillOrigin: 0 195 | m_UseSpriteMesh: 0 196 | m_PixelsPerUnitMultiplier: 1 197 | --- !u!222 &38156659 198 | CanvasRenderer: 199 | m_ObjectHideFlags: 0 200 | m_CorrespondingSourceObject: {fileID: 0} 201 | m_PrefabInstance: {fileID: 0} 202 | m_PrefabAsset: {fileID: 0} 203 | m_GameObject: {fileID: 38156656} 204 | m_CullTransparentMesh: 1 205 | --- !u!114 &38156660 206 | MonoBehaviour: 207 | m_ObjectHideFlags: 0 208 | m_CorrespondingSourceObject: {fileID: 0} 209 | m_PrefabInstance: {fileID: 0} 210 | m_PrefabAsset: {fileID: 0} 211 | m_GameObject: {fileID: 38156656} 212 | m_Enabled: 1 213 | m_EditorHideFlags: 0 214 | m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3} 215 | m_Name: 216 | m_EditorClassIdentifier: 217 | m_ShowMaskGraphic: 0 218 | --- !u!114 &38156661 219 | MonoBehaviour: 220 | m_ObjectHideFlags: 0 221 | m_CorrespondingSourceObject: {fileID: 0} 222 | m_PrefabInstance: {fileID: 0} 223 | m_PrefabAsset: {fileID: 0} 224 | m_GameObject: {fileID: 38156656} 225 | m_Enabled: 1 226 | m_EditorHideFlags: 0 227 | m_Script: {fileID: 11500000, guid: 1aa08ab6e0800fa44ae55d278d1423e3, type: 3} 228 | m_Name: 229 | m_EditorClassIdentifier: 230 | m_Content: {fileID: 1086899404} 231 | m_Horizontal: 0 232 | m_Vertical: 1 233 | m_MovementType: 1 234 | m_Elasticity: 0.1 235 | m_Inertia: 1 236 | m_DecelerationRate: 0.135 237 | m_ScrollSensitivity: 1 238 | m_Viewport: {fileID: 0} 239 | m_HorizontalScrollbar: {fileID: 0} 240 | m_VerticalScrollbar: {fileID: 155392644} 241 | m_HorizontalScrollbarVisibility: 0 242 | m_VerticalScrollbarVisibility: 0 243 | m_HorizontalScrollbarSpacing: 0 244 | m_VerticalScrollbarSpacing: 0 245 | m_OnValueChanged: 246 | m_PersistentCalls: 247 | m_Calls: [] 248 | --- !u!1 &155392642 249 | GameObject: 250 | m_ObjectHideFlags: 0 251 | m_CorrespondingSourceObject: {fileID: 0} 252 | m_PrefabInstance: {fileID: 0} 253 | m_PrefabAsset: {fileID: 0} 254 | serializedVersion: 6 255 | m_Component: 256 | - component: {fileID: 155392643} 257 | - component: {fileID: 155392646} 258 | - component: {fileID: 155392645} 259 | - component: {fileID: 155392644} 260 | m_Layer: 5 261 | m_Name: Scrollbar 262 | m_TagString: Untagged 263 | m_Icon: {fileID: 0} 264 | m_NavMeshLayer: 0 265 | m_StaticEditorFlags: 0 266 | m_IsActive: 1 267 | --- !u!224 &155392643 268 | RectTransform: 269 | m_ObjectHideFlags: 0 270 | m_CorrespondingSourceObject: {fileID: 0} 271 | m_PrefabInstance: {fileID: 0} 272 | m_PrefabAsset: {fileID: 0} 273 | m_GameObject: {fileID: 155392642} 274 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 275 | m_LocalPosition: {x: 0, y: 0, z: 0} 276 | m_LocalScale: {x: 1, y: 1, z: 1} 277 | m_Children: 278 | - {fileID: 823457167} 279 | m_Father: {fileID: 1646839690} 280 | m_RootOrder: 1 281 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 282 | m_AnchorMin: {x: 1, y: 0} 283 | m_AnchorMax: {x: 1, y: 1} 284 | m_AnchoredPosition: {x: -5, y: 0} 285 | m_SizeDelta: {x: 20, y: 0} 286 | m_Pivot: {x: 0.5, y: 0.5} 287 | --- !u!114 &155392644 288 | MonoBehaviour: 289 | m_ObjectHideFlags: 0 290 | m_CorrespondingSourceObject: {fileID: 0} 291 | m_PrefabInstance: {fileID: 0} 292 | m_PrefabAsset: {fileID: 0} 293 | m_GameObject: {fileID: 155392642} 294 | m_Enabled: 1 295 | m_EditorHideFlags: 0 296 | m_Script: {fileID: 11500000, guid: 2a4db7a114972834c8e4117be1d82ba3, type: 3} 297 | m_Name: 298 | m_EditorClassIdentifier: 299 | m_Navigation: 300 | m_Mode: 3 301 | m_WrapAround: 0 302 | m_SelectOnUp: {fileID: 0} 303 | m_SelectOnDown: {fileID: 0} 304 | m_SelectOnLeft: {fileID: 0} 305 | m_SelectOnRight: {fileID: 0} 306 | m_Transition: 1 307 | m_Colors: 308 | m_NormalColor: {r: 1, g: 1, b: 1, a: 1} 309 | m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} 310 | m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} 311 | m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} 312 | m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} 313 | m_ColorMultiplier: 1 314 | m_FadeDuration: 0.1 315 | m_SpriteState: 316 | m_HighlightedSprite: {fileID: 0} 317 | m_PressedSprite: {fileID: 0} 318 | m_SelectedSprite: {fileID: 0} 319 | m_DisabledSprite: {fileID: 0} 320 | m_AnimationTriggers: 321 | m_NormalTrigger: Normal 322 | m_HighlightedTrigger: Highlighted 323 | m_PressedTrigger: Pressed 324 | m_SelectedTrigger: Highlighted 325 | m_DisabledTrigger: Disabled 326 | m_Interactable: 1 327 | m_TargetGraphic: {fileID: 1011219729} 328 | m_HandleRect: {fileID: 1011219728} 329 | m_Direction: 2 330 | m_Value: 1 331 | m_Size: 0.10701655 332 | m_NumberOfSteps: 0 333 | m_OnValueChanged: 334 | m_PersistentCalls: 335 | m_Calls: [] 336 | --- !u!114 &155392645 337 | MonoBehaviour: 338 | m_ObjectHideFlags: 0 339 | m_CorrespondingSourceObject: {fileID: 0} 340 | m_PrefabInstance: {fileID: 0} 341 | m_PrefabAsset: {fileID: 0} 342 | m_GameObject: {fileID: 155392642} 343 | m_Enabled: 1 344 | m_EditorHideFlags: 0 345 | m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} 346 | m_Name: 347 | m_EditorClassIdentifier: 348 | m_Material: {fileID: 0} 349 | m_Color: {r: 1, g: 1, b: 1, a: 1} 350 | m_RaycastTarget: 1 351 | m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} 352 | m_Maskable: 1 353 | m_OnCullStateChanged: 354 | m_PersistentCalls: 355 | m_Calls: [] 356 | m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} 357 | m_Type: 1 358 | m_PreserveAspect: 0 359 | m_FillCenter: 1 360 | m_FillMethod: 4 361 | m_FillAmount: 1 362 | m_FillClockwise: 1 363 | m_FillOrigin: 0 364 | m_UseSpriteMesh: 0 365 | m_PixelsPerUnitMultiplier: 1 366 | --- !u!222 &155392646 367 | CanvasRenderer: 368 | m_ObjectHideFlags: 0 369 | m_CorrespondingSourceObject: {fileID: 0} 370 | m_PrefabInstance: {fileID: 0} 371 | m_PrefabAsset: {fileID: 0} 372 | m_GameObject: {fileID: 155392642} 373 | m_CullTransparentMesh: 1 374 | --- !u!1 &316492814 375 | GameObject: 376 | m_ObjectHideFlags: 0 377 | m_CorrespondingSourceObject: {fileID: 0} 378 | m_PrefabInstance: {fileID: 0} 379 | m_PrefabAsset: {fileID: 0} 380 | serializedVersion: 6 381 | m_Component: 382 | - component: {fileID: 316492818} 383 | - component: {fileID: 316492817} 384 | - component: {fileID: 316492816} 385 | - component: {fileID: 316492815} 386 | m_Layer: 0 387 | m_Name: EventSystem 388 | m_TagString: Untagged 389 | m_Icon: {fileID: 0} 390 | m_NavMeshLayer: 0 391 | m_StaticEditorFlags: 0 392 | m_IsActive: 1 393 | --- !u!114 &316492815 394 | MonoBehaviour: 395 | m_ObjectHideFlags: 0 396 | m_CorrespondingSourceObject: {fileID: 0} 397 | m_PrefabInstance: {fileID: 0} 398 | m_PrefabAsset: {fileID: 0} 399 | m_GameObject: {fileID: 316492814} 400 | m_Enabled: 1 401 | m_EditorHideFlags: 0 402 | m_Script: {fileID: 11500000, guid: 2d49b7c1bcd2e07499844da127be038d, type: 3} 403 | m_Name: 404 | m_EditorClassIdentifier: 405 | m_ForceModuleActive: 0 406 | --- !u!114 &316492816 407 | MonoBehaviour: 408 | m_ObjectHideFlags: 0 409 | m_CorrespondingSourceObject: {fileID: 0} 410 | m_PrefabInstance: {fileID: 0} 411 | m_PrefabAsset: {fileID: 0} 412 | m_GameObject: {fileID: 316492814} 413 | m_Enabled: 1 414 | m_EditorHideFlags: 0 415 | m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3} 416 | m_Name: 417 | m_EditorClassIdentifier: 418 | m_HorizontalAxis: Horizontal 419 | m_VerticalAxis: Vertical 420 | m_SubmitButton: Submit 421 | m_CancelButton: Cancel 422 | m_InputActionsPerSecond: 10 423 | m_RepeatDelay: 0.5 424 | m_ForceModuleActive: 0 425 | --- !u!114 &316492817 426 | MonoBehaviour: 427 | m_ObjectHideFlags: 0 428 | m_CorrespondingSourceObject: {fileID: 0} 429 | m_PrefabInstance: {fileID: 0} 430 | m_PrefabAsset: {fileID: 0} 431 | m_GameObject: {fileID: 316492814} 432 | m_Enabled: 1 433 | m_EditorHideFlags: 0 434 | m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3} 435 | m_Name: 436 | m_EditorClassIdentifier: 437 | m_FirstSelected: {fileID: 0} 438 | m_sendNavigationEvents: 1 439 | m_DragThreshold: 5 440 | --- !u!4 &316492818 441 | Transform: 442 | m_ObjectHideFlags: 0 443 | m_CorrespondingSourceObject: {fileID: 0} 444 | m_PrefabInstance: {fileID: 0} 445 | m_PrefabAsset: {fileID: 0} 446 | m_GameObject: {fileID: 316492814} 447 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 448 | m_LocalPosition: {x: 0, y: 0, z: 0} 449 | m_LocalScale: {x: 1, y: 1, z: 1} 450 | m_Children: [] 451 | m_Father: {fileID: 0} 452 | m_RootOrder: 2 453 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 454 | --- !u!1 &432530561 455 | GameObject: 456 | m_ObjectHideFlags: 0 457 | m_CorrespondingSourceObject: {fileID: 0} 458 | m_PrefabInstance: {fileID: 0} 459 | m_PrefabAsset: {fileID: 0} 460 | serializedVersion: 6 461 | m_Component: 462 | - component: {fileID: 432530562} 463 | - component: {fileID: 432530565} 464 | - component: {fileID: 432530564} 465 | - component: {fileID: 432530563} 466 | m_Layer: 5 467 | m_Name: BackButton 468 | m_TagString: Untagged 469 | m_Icon: {fileID: 0} 470 | m_NavMeshLayer: 0 471 | m_StaticEditorFlags: 0 472 | m_IsActive: 1 473 | --- !u!224 &432530562 474 | RectTransform: 475 | m_ObjectHideFlags: 0 476 | m_CorrespondingSourceObject: {fileID: 0} 477 | m_PrefabInstance: {fileID: 0} 478 | m_PrefabAsset: {fileID: 0} 479 | m_GameObject: {fileID: 432530561} 480 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 481 | m_LocalPosition: {x: 0, y: 0, z: 0} 482 | m_LocalScale: {x: 1, y: 1, z: 1} 483 | m_Children: 484 | - {fileID: 531596783} 485 | m_Father: {fileID: 1502237571} 486 | m_RootOrder: 0 487 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 488 | m_AnchorMin: {x: 0, y: 1} 489 | m_AnchorMax: {x: 0, y: 1} 490 | m_AnchoredPosition: {x: 10, y: -10} 491 | m_SizeDelta: {x: 160, y: 40} 492 | m_Pivot: {x: 0, y: 1} 493 | --- !u!114 &432530563 494 | MonoBehaviour: 495 | m_ObjectHideFlags: 0 496 | m_CorrespondingSourceObject: {fileID: 0} 497 | m_PrefabInstance: {fileID: 0} 498 | m_PrefabAsset: {fileID: 0} 499 | m_GameObject: {fileID: 432530561} 500 | m_Enabled: 1 501 | m_EditorHideFlags: 0 502 | m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} 503 | m_Name: 504 | m_EditorClassIdentifier: 505 | m_Navigation: 506 | m_Mode: 3 507 | m_WrapAround: 0 508 | m_SelectOnUp: {fileID: 0} 509 | m_SelectOnDown: {fileID: 0} 510 | m_SelectOnLeft: {fileID: 0} 511 | m_SelectOnRight: {fileID: 0} 512 | m_Transition: 1 513 | m_Colors: 514 | m_NormalColor: {r: 1, g: 1, b: 1, a: 1} 515 | m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} 516 | m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} 517 | m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} 518 | m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} 519 | m_ColorMultiplier: 1 520 | m_FadeDuration: 0.1 521 | m_SpriteState: 522 | m_HighlightedSprite: {fileID: 0} 523 | m_PressedSprite: {fileID: 0} 524 | m_SelectedSprite: {fileID: 0} 525 | m_DisabledSprite: {fileID: 0} 526 | m_AnimationTriggers: 527 | m_NormalTrigger: Normal 528 | m_HighlightedTrigger: Highlighted 529 | m_PressedTrigger: Pressed 530 | m_SelectedTrigger: Highlighted 531 | m_DisabledTrigger: Disabled 532 | m_Interactable: 1 533 | m_TargetGraphic: {fileID: 432530564} 534 | m_OnClick: 535 | m_PersistentCalls: 536 | m_Calls: 537 | - m_Target: {fileID: 1787239750} 538 | m_TargetAssemblyTypeName: 539 | m_MethodName: OnBackButton 540 | m_Mode: 1 541 | m_Arguments: 542 | m_ObjectArgument: {fileID: 0} 543 | m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine 544 | m_IntArgument: 0 545 | m_FloatArgument: 0 546 | m_StringArgument: 547 | m_BoolArgument: 0 548 | m_CallState: 2 549 | --- !u!114 &432530564 550 | MonoBehaviour: 551 | m_ObjectHideFlags: 0 552 | m_CorrespondingSourceObject: {fileID: 0} 553 | m_PrefabInstance: {fileID: 0} 554 | m_PrefabAsset: {fileID: 0} 555 | m_GameObject: {fileID: 432530561} 556 | m_Enabled: 1 557 | m_EditorHideFlags: 0 558 | m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} 559 | m_Name: 560 | m_EditorClassIdentifier: 561 | m_Material: {fileID: 0} 562 | m_Color: {r: 1, g: 1, b: 1, a: 1} 563 | m_RaycastTarget: 1 564 | m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} 565 | m_Maskable: 1 566 | m_OnCullStateChanged: 567 | m_PersistentCalls: 568 | m_Calls: [] 569 | m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} 570 | m_Type: 1 571 | m_PreserveAspect: 0 572 | m_FillCenter: 1 573 | m_FillMethod: 4 574 | m_FillAmount: 1 575 | m_FillClockwise: 1 576 | m_FillOrigin: 0 577 | m_UseSpriteMesh: 0 578 | m_PixelsPerUnitMultiplier: 1 579 | --- !u!222 &432530565 580 | CanvasRenderer: 581 | m_ObjectHideFlags: 0 582 | m_CorrespondingSourceObject: {fileID: 0} 583 | m_PrefabInstance: {fileID: 0} 584 | m_PrefabAsset: {fileID: 0} 585 | m_GameObject: {fileID: 432530561} 586 | m_CullTransparentMesh: 1 587 | --- !u!1 &531596782 588 | GameObject: 589 | m_ObjectHideFlags: 0 590 | m_CorrespondingSourceObject: {fileID: 0} 591 | m_PrefabInstance: {fileID: 0} 592 | m_PrefabAsset: {fileID: 0} 593 | serializedVersion: 6 594 | m_Component: 595 | - component: {fileID: 531596783} 596 | - component: {fileID: 531596785} 597 | - component: {fileID: 531596784} 598 | m_Layer: 5 599 | m_Name: Text 600 | m_TagString: Untagged 601 | m_Icon: {fileID: 0} 602 | m_NavMeshLayer: 0 603 | m_StaticEditorFlags: 0 604 | m_IsActive: 1 605 | --- !u!224 &531596783 606 | RectTransform: 607 | m_ObjectHideFlags: 0 608 | m_CorrespondingSourceObject: {fileID: 0} 609 | m_PrefabInstance: {fileID: 0} 610 | m_PrefabAsset: {fileID: 0} 611 | m_GameObject: {fileID: 531596782} 612 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 613 | m_LocalPosition: {x: 0, y: 0, z: 0} 614 | m_LocalScale: {x: 1, y: 1, z: 1} 615 | m_Children: [] 616 | m_Father: {fileID: 432530562} 617 | m_RootOrder: 0 618 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 619 | m_AnchorMin: {x: 0, y: 0} 620 | m_AnchorMax: {x: 1, y: 1} 621 | m_AnchoredPosition: {x: 0, y: 0} 622 | m_SizeDelta: {x: 0, y: 0} 623 | m_Pivot: {x: 0.5, y: 0.5} 624 | --- !u!114 &531596784 625 | MonoBehaviour: 626 | m_ObjectHideFlags: 0 627 | m_CorrespondingSourceObject: {fileID: 0} 628 | m_PrefabInstance: {fileID: 0} 629 | m_PrefabAsset: {fileID: 0} 630 | m_GameObject: {fileID: 531596782} 631 | m_Enabled: 1 632 | m_EditorHideFlags: 0 633 | m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} 634 | m_Name: 635 | m_EditorClassIdentifier: 636 | m_Material: {fileID: 0} 637 | m_Color: {r: 0.196, g: 0.196, b: 0.196, a: 1} 638 | m_RaycastTarget: 1 639 | m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} 640 | m_Maskable: 1 641 | m_OnCullStateChanged: 642 | m_PersistentCalls: 643 | m_Calls: [] 644 | m_FontData: 645 | m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} 646 | m_FontSize: 14 647 | m_FontStyle: 0 648 | m_BestFit: 0 649 | m_MinSize: 10 650 | m_MaxSize: 40 651 | m_Alignment: 4 652 | m_AlignByGeometry: 0 653 | m_RichText: 1 654 | m_HorizontalOverflow: 0 655 | m_VerticalOverflow: 0 656 | m_LineSpacing: 1 657 | m_Text: Back 658 | --- !u!222 &531596785 659 | CanvasRenderer: 660 | m_ObjectHideFlags: 0 661 | m_CorrespondingSourceObject: {fileID: 0} 662 | m_PrefabInstance: {fileID: 0} 663 | m_PrefabAsset: {fileID: 0} 664 | m_GameObject: {fileID: 531596782} 665 | m_CullTransparentMesh: 1 666 | --- !u!1 &823457166 667 | GameObject: 668 | m_ObjectHideFlags: 0 669 | m_CorrespondingSourceObject: {fileID: 0} 670 | m_PrefabInstance: {fileID: 0} 671 | m_PrefabAsset: {fileID: 0} 672 | serializedVersion: 6 673 | m_Component: 674 | - component: {fileID: 823457167} 675 | m_Layer: 5 676 | m_Name: Sliding Area 677 | m_TagString: Untagged 678 | m_Icon: {fileID: 0} 679 | m_NavMeshLayer: 0 680 | m_StaticEditorFlags: 0 681 | m_IsActive: 1 682 | --- !u!224 &823457167 683 | RectTransform: 684 | m_ObjectHideFlags: 0 685 | m_CorrespondingSourceObject: {fileID: 0} 686 | m_PrefabInstance: {fileID: 0} 687 | m_PrefabAsset: {fileID: 0} 688 | m_GameObject: {fileID: 823457166} 689 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 690 | m_LocalPosition: {x: 0, y: 0, z: 0} 691 | m_LocalScale: {x: 1, y: 1, z: 1} 692 | m_Children: 693 | - {fileID: 1011219728} 694 | m_Father: {fileID: 155392643} 695 | m_RootOrder: 0 696 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 697 | m_AnchorMin: {x: 0, y: 0} 698 | m_AnchorMax: {x: 1, y: 1} 699 | m_AnchoredPosition: {x: 0, y: 0} 700 | m_SizeDelta: {x: -20, y: -20} 701 | m_Pivot: {x: 0.5, y: 0.5} 702 | --- !u!1 &1011219727 703 | GameObject: 704 | m_ObjectHideFlags: 0 705 | m_CorrespondingSourceObject: {fileID: 0} 706 | m_PrefabInstance: {fileID: 0} 707 | m_PrefabAsset: {fileID: 0} 708 | serializedVersion: 6 709 | m_Component: 710 | - component: {fileID: 1011219728} 711 | - component: {fileID: 1011219730} 712 | - component: {fileID: 1011219729} 713 | m_Layer: 5 714 | m_Name: Handle 715 | m_TagString: Untagged 716 | m_Icon: {fileID: 0} 717 | m_NavMeshLayer: 0 718 | m_StaticEditorFlags: 0 719 | m_IsActive: 1 720 | --- !u!224 &1011219728 721 | RectTransform: 722 | m_ObjectHideFlags: 0 723 | m_CorrespondingSourceObject: {fileID: 0} 724 | m_PrefabInstance: {fileID: 0} 725 | m_PrefabAsset: {fileID: 0} 726 | m_GameObject: {fileID: 1011219727} 727 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 728 | m_LocalPosition: {x: 0, y: 0, z: 0} 729 | m_LocalScale: {x: 1, y: 1, z: 1} 730 | m_Children: [] 731 | m_Father: {fileID: 823457167} 732 | m_RootOrder: 0 733 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 734 | m_AnchorMin: {x: 0, y: 0} 735 | m_AnchorMax: {x: 0, y: 0} 736 | m_AnchoredPosition: {x: 0, y: 0} 737 | m_SizeDelta: {x: 20, y: 20} 738 | m_Pivot: {x: 0.5, y: 0.5} 739 | --- !u!114 &1011219729 740 | MonoBehaviour: 741 | m_ObjectHideFlags: 0 742 | m_CorrespondingSourceObject: {fileID: 0} 743 | m_PrefabInstance: {fileID: 0} 744 | m_PrefabAsset: {fileID: 0} 745 | m_GameObject: {fileID: 1011219727} 746 | m_Enabled: 1 747 | m_EditorHideFlags: 0 748 | m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} 749 | m_Name: 750 | m_EditorClassIdentifier: 751 | m_Material: {fileID: 0} 752 | m_Color: {r: 1, g: 1, b: 1, a: 1} 753 | m_RaycastTarget: 1 754 | m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} 755 | m_Maskable: 1 756 | m_OnCullStateChanged: 757 | m_PersistentCalls: 758 | m_Calls: [] 759 | m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} 760 | m_Type: 1 761 | m_PreserveAspect: 0 762 | m_FillCenter: 1 763 | m_FillMethod: 4 764 | m_FillAmount: 1 765 | m_FillClockwise: 1 766 | m_FillOrigin: 0 767 | m_UseSpriteMesh: 0 768 | m_PixelsPerUnitMultiplier: 1 769 | --- !u!222 &1011219730 770 | CanvasRenderer: 771 | m_ObjectHideFlags: 0 772 | m_CorrespondingSourceObject: {fileID: 0} 773 | m_PrefabInstance: {fileID: 0} 774 | m_PrefabAsset: {fileID: 0} 775 | m_GameObject: {fileID: 1011219727} 776 | m_CullTransparentMesh: 1 777 | --- !u!1 &1086899403 778 | GameObject: 779 | m_ObjectHideFlags: 0 780 | m_CorrespondingSourceObject: {fileID: 0} 781 | m_PrefabInstance: {fileID: 0} 782 | m_PrefabAsset: {fileID: 0} 783 | serializedVersion: 6 784 | m_Component: 785 | - component: {fileID: 1086899404} 786 | - component: {fileID: 1086899406} 787 | - component: {fileID: 1086899405} 788 | - component: {fileID: 1086899407} 789 | m_Layer: 5 790 | m_Name: Text 791 | m_TagString: Untagged 792 | m_Icon: {fileID: 0} 793 | m_NavMeshLayer: 0 794 | m_StaticEditorFlags: 0 795 | m_IsActive: 1 796 | --- !u!224 &1086899404 797 | RectTransform: 798 | m_ObjectHideFlags: 0 799 | m_CorrespondingSourceObject: {fileID: 0} 800 | m_PrefabInstance: {fileID: 0} 801 | m_PrefabAsset: {fileID: 0} 802 | m_GameObject: {fileID: 1086899403} 803 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 804 | m_LocalPosition: {x: 0, y: 0, z: 0} 805 | m_LocalScale: {x: 1, y: 1, z: 1} 806 | m_Children: [] 807 | m_Father: {fileID: 38156657} 808 | m_RootOrder: 0 809 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 810 | m_AnchorMin: {x: 0, y: 0} 811 | m_AnchorMax: {x: 1, y: 1} 812 | m_AnchoredPosition: {x: 0, y: 0} 813 | m_SizeDelta: {x: 0, y: 0} 814 | m_Pivot: {x: 0.5, y: 1} 815 | --- !u!114 &1086899405 816 | MonoBehaviour: 817 | m_ObjectHideFlags: 0 818 | m_CorrespondingSourceObject: {fileID: 0} 819 | m_PrefabInstance: {fileID: 0} 820 | m_PrefabAsset: {fileID: 0} 821 | m_GameObject: {fileID: 1086899403} 822 | m_Enabled: 1 823 | m_EditorHideFlags: 0 824 | m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} 825 | m_Name: 826 | m_EditorClassIdentifier: 827 | m_Material: {fileID: 0} 828 | m_Color: {r: 1, g: 1, b: 1, a: 1} 829 | m_RaycastTarget: 1 830 | m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} 831 | m_Maskable: 1 832 | m_OnCullStateChanged: 833 | m_PersistentCalls: 834 | m_Calls: [] 835 | m_FontData: 836 | m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} 837 | m_FontSize: 20 838 | m_FontStyle: 0 839 | m_BestFit: 0 840 | m_MinSize: 10 841 | m_MaxSize: 40 842 | m_Alignment: 0 843 | m_AlignByGeometry: 0 844 | m_RichText: 1 845 | m_HorizontalOverflow: 0 846 | m_VerticalOverflow: 0 847 | m_LineSpacing: 1 848 | m_Text: "The following components are governed by the licenses indicated below:\n\n\n- 849 | Big Buck Bunny\r\nCopyright (C) 2008 Blender Foundation | peach.blender.org\r\nSome 850 | Rights Reserved. Creative Commons Attribution 3.0 license.\r\nhttp://www.bigbuckbunny.org/\n\n\n\n- 851 | OpenCV : Apache 2.0\n\nhttps://github.com/opencv/opencv/blob/4.x/COPYRIGHT\n\n 852 | Apache License\n Version 2.0, January 853 | 2004\n http://www.apache.org/licenses/\n\n 854 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n 1. Definitions.\n\n 855 | \"License\" shall mean the terms and conditions for use, reproduction,\n 856 | and distribution as defined by Sections 1 through 9 of this document.\n\n 857 | \"Licensor\" shall mean the copyright owner or entity authorized by\n the 858 | copyright owner that is granting the License.\n\n \"Legal Entity\" shall 859 | mean the union of the acting entity and all\n other entities that control, 860 | are controlled by, or are under common\n control with that entity. For the 861 | purposes of this definition,\n \"control\" means (i) the power, direct or 862 | indirect, to cause the\n direction or management of such entity, whether 863 | by contract or\n otherwise, or (ii) ownership of fifty percent (50%) or 864 | more of the\n outstanding shares, or (iii) beneficial ownership of such 865 | entity.\n\n \"You\" (or \"Your\") shall mean an individual or Legal Entity\n 866 | exercising permissions granted by this License.\n\n \"Source\" form shall 867 | mean the preferred form for making modifications,\n including but not limited 868 | to software source code, documentation\n source, and configuration files.\n\n 869 | \"Object\" form shall mean any form resulting from mechanical\n transformation 870 | or translation of a Source form, including but\n not limited to compiled 871 | object code, generated documentation,\n and conversions to other media types.\n\n 872 | \"Work\" shall mean the work of authorship, whether in Source or\n Object 873 | form, made available under the License, as indicated by a\n copyright notice 874 | that is included in or attached to the work\n (an example is provided in 875 | the Appendix below).\n\n \"Derivative Works\" shall mean any work, whether 876 | in Source or Object\n form, that is based on (or derived from) the Work and 877 | for which the\n editorial revisions, annotations, elaborations, or other 878 | modifications\n represent, as a whole, an original work of authorship. For 879 | the purposes\n of this License, Derivative Works shall not include works 880 | that remain\n separable from, or merely link (or bind by name) to the interfaces 881 | of,\n the Work and Derivative Works thereof.\n\n \"Contribution\" shall 882 | mean any work of authorship, including\n the original version of the Work 883 | and any modifications or additions\n to that Work or Derivative Works thereof, 884 | that is intentionally\n submitted to Licensor for inclusion in the Work 885 | by the copyright owner\n or by an individual or Legal Entity authorized 886 | to submit on behalf of\n the copyright owner. For the purposes of this definition, 887 | \"submitted\"\n means any form of electronic, verbal, or written communication 888 | sent\n to the Licensor or its representatives, including but not limited 889 | to\n communication on electronic mailing lists, source code control systems,\n 890 | and issue tracking systems that are managed by, or on behalf of, the\n Licensor 891 | for the purpose of discussing and improving the Work, but\n excluding communication 892 | that is conspicuously marked or otherwise\n designated in writing by the 893 | copyright owner as \"Not a Contribution.\"\n\n \"Contributor\" shall mean 894 | Licensor and any individual or Legal Entity\n on behalf of whom a Contribution 895 | has been received by Licensor and\n subsequently incorporated within the 896 | Work.\n\n 2. Grant of Copyright License. Subject to the terms and conditions 897 | of\n this License, each Contributor hereby grants to You a perpetual,\n 898 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n copyright 899 | license to reproduce, prepare Derivative Works of,\n publicly display, publicly 900 | perform, sublicense, and distribute the\n Work and such Derivative Works 901 | in Source or Object form.\n\n 3. Grant of Patent License. Subject to the terms 902 | and conditions of\n this License, each Contributor hereby grants to You 903 | a perpetual,\n worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n 904 | (except as stated in this section) patent license to make, have made,\n 905 | use, offer to sell, sell, import, and otherwise transfer the Work,\n where 906 | such license applies only to those patent claims licensable\n by such Contributor 907 | that are necessarily infringed by their\n Contribution(s) alone or by combination 908 | of their Contribution(s)\n with the Work to which such Contribution(s) was 909 | submitted. If You\n institute patent litigation against any entity (including 910 | a\n cross-claim or counterclaim in a lawsuit) alleging that the Work\n 911 | or a Contribution incorporated within the Work constitutes direct\n or contributory 912 | patent infringement, then any patent licenses\n granted to You under this 913 | License for that Work shall terminate\n as of the date such litigation is 914 | filed.\n\n 4. Redistribution. You may reproduce and distribute copies of the\n 915 | Work or Derivative Works thereof in any medium, with or without\n modifications, 916 | and in Source or Object form, provided that You\n meet the following conditions:\n\n 917 | (a) You must give any other recipients of the Work or\n Derivative Works 918 | a copy of this License; and\n\n (b) You must cause any modified files to 919 | carry prominent notices\n stating that You changed the files; and\n\n 920 | (c) You must retain, in the Source form of any Derivative Works\n that 921 | You distribute, all copyright, patent, trademark, and\n attribution 922 | notices from the Source form of the Work,\n excluding those notices 923 | that do not pertain to any part of\n the Derivative Works; and\n\n 924 | (d) If the Work includes a \"NOTICE\" text file as part of its\n distribution, 925 | then any Derivative Works that You distribute must\n include a readable 926 | copy of the attribution notices contained\n within such NOTICE file, 927 | excluding those notices that do not\n pertain to any part of the Derivative 928 | Works, in at least one\n of the following places: within a NOTICE text 929 | file distributed\n as part of the Derivative Works; within the Source 930 | form or\n documentation, if provided along with the Derivative Works; 931 | or,\n within a display generated by the Derivative Works, if and\n 932 | wherever such third-party notices normally appear. The contents\n of 933 | the NOTICE file are for informational purposes only and\n do not modify 934 | the License. You may add Your own attribution\n notices within Derivative 935 | Works that You distribute, alongside\n or as an addendum to the NOTICE 936 | text from the Work, provided\n that such additional attribution notices 937 | cannot be construed\n as modifying the License.\n\n You may add 938 | Your own copyright statement to Your modifications and\n may provide additional 939 | or different license terms and conditions\n for use, reproduction, or distribution 940 | of Your modifications, or\n for any such Derivative Works as a whole, provided 941 | Your use,\n reproduction, and distribution of the Work otherwise complies 942 | with\n the conditions stated in this License.\n\n 5. Submission of Contributions. 943 | Unless You explicitly state otherwise,\n any Contribution intentionally submitted 944 | for inclusion in the Work\n by You to the Licensor shall be under the terms 945 | and conditions of\n this License, without any additional terms or conditions.\n 946 | Notwithstanding the above, nothing herein shall supersede or modify\n the 947 | terms of any separate license agreement you may have executed\n with Licensor 948 | regarding such Contributions.\n\n 6. Trademarks. This License does not grant 949 | permission to use the trade\n names, trademarks, service marks, or product 950 | names of the Licensor,\n except as required for reasonable and customary 951 | use in describing the\n origin of the Work and reproducing the content of 952 | the NOTICE file.\n\n 7. Disclaimer of Warranty. Unless required by applicable 953 | law or\n agreed to in writing, Licensor provides the Work (and each\n 954 | Contributor provides its Contributions) on an \"AS IS\" BASIS,\n WITHOUT 955 | WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n implied, including, 956 | without limitation, any warranties or conditions\n of TITLE, NON-INFRINGEMENT, 957 | MERCHANTABILITY, or FITNESS FOR A\n PARTICULAR PURPOSE. You are solely responsible 958 | for determining the\n appropriateness of using or redistributing the Work 959 | and assume any\n risks associated with Your exercise of permissions under 960 | this License.\n\n 8. Limitation of Liability. In no event and under no legal 961 | theory,\n whether in tort (including negligence), contract, or otherwise,\n 962 | unless required by applicable law (such as deliberate and grossly\n negligent 963 | acts) or agreed to in writing, shall any Contributor be\n liable to You 964 | for damages, including any direct, indirect, special,\n incidental, or consequential 965 | damages of any character arising as a\n result of this License or out of 966 | the use or inability to use the\n Work (including but not limited to damages 967 | for loss of goodwill,\n work stoppage, computer failure or malfunction, 968 | or any and all\n other commercial damages or losses), even if such Contributor\n 969 | has been advised of the possibility of such damages.\n\n 9. Accepting Warranty 970 | or Additional Liability. While redistributing\n the Work or Derivative Works 971 | thereof, You may choose to offer,\n and charge a fee for, acceptance of 972 | support, warranty, indemnity,\n or other liability obligations and/or rights 973 | consistent with this\n License. However, in accepting such obligations, 974 | You may act only\n on Your own behalf and on Your sole responsibility, not 975 | on behalf\n of any other Contributor, and only if You agree to indemnify,\n 976 | defend, and hold each Contributor harmless for any liability\n incurred 977 | by, or claims asserted against, such Contributor by reason\n of your accepting 978 | any such warranty or additional liability.\n\n END OF TERMS AND CONDITIONS\n\n 979 | APPENDIX: How to apply the Apache License to your work.\n\n To apply the 980 | Apache License to your work, attach the following\n boilerplate notice, 981 | with the fields enclosed by brackets \"[]\"\n replaced with your own identifying 982 | information. (Don't include\n the brackets!) The text should be enclosed 983 | in the appropriate\n comment syntax for the file format. We also recommend 984 | that a\n file or class name and description of purpose be included on the\n 985 | same \"printed page\" as the copyright notice for easier\n identification 986 | within third-party archives.\n\n Copyright [yyyy] [name of copyright owner]\n\n 987 | Licensed under the Apache License, Version 2.0 (the \"License\");\n you may 988 | not use this file except in compliance with the License.\n You may obtain a 989 | copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n 990 | Unless required by applicable law or agreed to in writing, software\n distributed 991 | under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES 992 | OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for 993 | the specific language governing permissions and\n limitations under the License.\n" 994 | --- !u!222 &1086899406 995 | CanvasRenderer: 996 | m_ObjectHideFlags: 0 997 | m_CorrespondingSourceObject: {fileID: 0} 998 | m_PrefabInstance: {fileID: 0} 999 | m_PrefabAsset: {fileID: 0} 1000 | m_GameObject: {fileID: 1086899403} 1001 | m_CullTransparentMesh: 1 1002 | --- !u!114 &1086899407 1003 | MonoBehaviour: 1004 | m_ObjectHideFlags: 0 1005 | m_CorrespondingSourceObject: {fileID: 0} 1006 | m_PrefabInstance: {fileID: 0} 1007 | m_PrefabAsset: {fileID: 0} 1008 | m_GameObject: {fileID: 1086899403} 1009 | m_Enabled: 1 1010 | m_EditorHideFlags: 0 1011 | m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} 1012 | m_Name: 1013 | m_EditorClassIdentifier: 1014 | m_HorizontalFit: 0 1015 | m_VerticalFit: 2 1016 | --- !u!1 &1502237567 1017 | GameObject: 1018 | m_ObjectHideFlags: 0 1019 | m_CorrespondingSourceObject: {fileID: 0} 1020 | m_PrefabInstance: {fileID: 0} 1021 | m_PrefabAsset: {fileID: 0} 1022 | serializedVersion: 6 1023 | m_Component: 1024 | - component: {fileID: 1502237571} 1025 | - component: {fileID: 1502237570} 1026 | - component: {fileID: 1502237569} 1027 | - component: {fileID: 1502237568} 1028 | m_Layer: 5 1029 | m_Name: Canvas 1030 | m_TagString: Untagged 1031 | m_Icon: {fileID: 0} 1032 | m_NavMeshLayer: 0 1033 | m_StaticEditorFlags: 0 1034 | m_IsActive: 1 1035 | --- !u!114 &1502237568 1036 | MonoBehaviour: 1037 | m_ObjectHideFlags: 0 1038 | m_CorrespondingSourceObject: {fileID: 0} 1039 | m_PrefabInstance: {fileID: 0} 1040 | m_PrefabAsset: {fileID: 0} 1041 | m_GameObject: {fileID: 1502237567} 1042 | m_Enabled: 1 1043 | m_EditorHideFlags: 0 1044 | m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} 1045 | m_Name: 1046 | m_EditorClassIdentifier: 1047 | m_IgnoreReversedGraphics: 1 1048 | m_BlockingObjects: 0 1049 | m_BlockingMask: 1050 | serializedVersion: 2 1051 | m_Bits: 4294967295 1052 | --- !u!114 &1502237569 1053 | MonoBehaviour: 1054 | m_ObjectHideFlags: 0 1055 | m_CorrespondingSourceObject: {fileID: 0} 1056 | m_PrefabInstance: {fileID: 0} 1057 | m_PrefabAsset: {fileID: 0} 1058 | m_GameObject: {fileID: 1502237567} 1059 | m_Enabled: 1 1060 | m_EditorHideFlags: 0 1061 | m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} 1062 | m_Name: 1063 | m_EditorClassIdentifier: 1064 | m_UiScaleMode: 1 1065 | m_ReferencePixelsPerUnit: 100 1066 | m_ScaleFactor: 1 1067 | m_ReferenceResolution: {x: 800, y: 600} 1068 | m_ScreenMatchMode: 0 1069 | m_MatchWidthOrHeight: 0 1070 | m_PhysicalUnit: 3 1071 | m_FallbackScreenDPI: 96 1072 | m_DefaultSpriteDPI: 96 1073 | m_DynamicPixelsPerUnit: 1 1074 | m_PresetInfoIsWorld: 0 1075 | --- !u!223 &1502237570 1076 | Canvas: 1077 | m_ObjectHideFlags: 0 1078 | m_CorrespondingSourceObject: {fileID: 0} 1079 | m_PrefabInstance: {fileID: 0} 1080 | m_PrefabAsset: {fileID: 0} 1081 | m_GameObject: {fileID: 1502237567} 1082 | m_Enabled: 1 1083 | serializedVersion: 3 1084 | m_RenderMode: 0 1085 | m_Camera: {fileID: 0} 1086 | m_PlaneDistance: 100 1087 | m_PixelPerfect: 0 1088 | m_ReceivesEvents: 1 1089 | m_OverrideSorting: 0 1090 | m_OverridePixelPerfect: 0 1091 | m_SortingBucketNormalizedSize: 0 1092 | m_AdditionalShaderChannelsFlag: 25 1093 | m_SortingLayerID: 0 1094 | m_SortingOrder: 0 1095 | m_TargetDisplay: 0 1096 | --- !u!224 &1502237571 1097 | RectTransform: 1098 | m_ObjectHideFlags: 0 1099 | m_CorrespondingSourceObject: {fileID: 0} 1100 | m_PrefabInstance: {fileID: 0} 1101 | m_PrefabAsset: {fileID: 0} 1102 | m_GameObject: {fileID: 1502237567} 1103 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 1104 | m_LocalPosition: {x: 0, y: 0, z: 0} 1105 | m_LocalScale: {x: 0, y: 0, z: 0} 1106 | m_Children: 1107 | - {fileID: 432530562} 1108 | - {fileID: 1646839690} 1109 | m_Father: {fileID: 0} 1110 | m_RootOrder: 1 1111 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 1112 | m_AnchorMin: {x: 0, y: 0} 1113 | m_AnchorMax: {x: 0, y: 0} 1114 | m_AnchoredPosition: {x: 0, y: 0} 1115 | m_SizeDelta: {x: 0, y: 0} 1116 | m_Pivot: {x: 0, y: 0} 1117 | --- !u!1 &1646839689 1118 | GameObject: 1119 | m_ObjectHideFlags: 0 1120 | m_CorrespondingSourceObject: {fileID: 0} 1121 | m_PrefabInstance: {fileID: 0} 1122 | m_PrefabAsset: {fileID: 0} 1123 | serializedVersion: 6 1124 | m_Component: 1125 | - component: {fileID: 1646839690} 1126 | m_Layer: 5 1127 | m_Name: LisenceText 1128 | m_TagString: Untagged 1129 | m_Icon: {fileID: 0} 1130 | m_NavMeshLayer: 0 1131 | m_StaticEditorFlags: 0 1132 | m_IsActive: 1 1133 | --- !u!224 &1646839690 1134 | RectTransform: 1135 | m_ObjectHideFlags: 0 1136 | m_CorrespondingSourceObject: {fileID: 0} 1137 | m_PrefabInstance: {fileID: 0} 1138 | m_PrefabAsset: {fileID: 0} 1139 | m_GameObject: {fileID: 1646839689} 1140 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 1141 | m_LocalPosition: {x: 0, y: 0, z: 0} 1142 | m_LocalScale: {x: 1, y: 1, z: 1} 1143 | m_Children: 1144 | - {fileID: 38156657} 1145 | - {fileID: 155392643} 1146 | m_Father: {fileID: 1502237571} 1147 | m_RootOrder: 1 1148 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 1149 | m_AnchorMin: {x: 0, y: 0} 1150 | m_AnchorMax: {x: 1, y: 1} 1151 | m_AnchoredPosition: {x: 0, y: -25} 1152 | m_SizeDelta: {x: -40, y: -90} 1153 | m_Pivot: {x: 0.5, y: 0.5} 1154 | --- !u!1 &1787239744 1155 | GameObject: 1156 | m_ObjectHideFlags: 0 1157 | m_CorrespondingSourceObject: {fileID: 0} 1158 | m_PrefabInstance: {fileID: 0} 1159 | m_PrefabAsset: {fileID: 0} 1160 | serializedVersion: 6 1161 | m_Component: 1162 | - component: {fileID: 1787239749} 1163 | - component: {fileID: 1787239748} 1164 | - component: {fileID: 1787239746} 1165 | - component: {fileID: 1787239745} 1166 | - component: {fileID: 1787239750} 1167 | m_Layer: 0 1168 | m_Name: Main Camera 1169 | m_TagString: MainCamera 1170 | m_Icon: {fileID: 0} 1171 | m_NavMeshLayer: 0 1172 | m_StaticEditorFlags: 0 1173 | m_IsActive: 1 1174 | --- !u!81 &1787239745 1175 | AudioListener: 1176 | m_ObjectHideFlags: 0 1177 | m_CorrespondingSourceObject: {fileID: 0} 1178 | m_PrefabInstance: {fileID: 0} 1179 | m_PrefabAsset: {fileID: 0} 1180 | m_GameObject: {fileID: 1787239744} 1181 | m_Enabled: 1 1182 | --- !u!124 &1787239746 1183 | Behaviour: 1184 | m_ObjectHideFlags: 0 1185 | m_CorrespondingSourceObject: {fileID: 0} 1186 | m_PrefabInstance: {fileID: 0} 1187 | m_PrefabAsset: {fileID: 0} 1188 | m_GameObject: {fileID: 1787239744} 1189 | m_Enabled: 1 1190 | --- !u!20 &1787239748 1191 | Camera: 1192 | m_ObjectHideFlags: 0 1193 | m_CorrespondingSourceObject: {fileID: 0} 1194 | m_PrefabInstance: {fileID: 0} 1195 | m_PrefabAsset: {fileID: 0} 1196 | m_GameObject: {fileID: 1787239744} 1197 | m_Enabled: 1 1198 | serializedVersion: 2 1199 | m_ClearFlags: 1 1200 | m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0.019607844} 1201 | m_projectionMatrixMode: 1 1202 | m_GateFitMode: 2 1203 | m_FOVAxisMode: 0 1204 | m_SensorSize: {x: 36, y: 24} 1205 | m_LensShift: {x: 0, y: 0} 1206 | m_FocalLength: 50 1207 | m_NormalizedViewPortRect: 1208 | serializedVersion: 2 1209 | x: 0 1210 | y: 0 1211 | width: 1 1212 | height: 1 1213 | near clip plane: 0.3 1214 | far clip plane: 1000 1215 | field of view: 60 1216 | orthographic: 0 1217 | orthographic size: 5 1218 | m_Depth: -1 1219 | m_CullingMask: 1220 | serializedVersion: 2 1221 | m_Bits: 4294967295 1222 | m_RenderingPath: -1 1223 | m_TargetTexture: {fileID: 0} 1224 | m_TargetDisplay: 0 1225 | m_TargetEye: 3 1226 | m_HDR: 0 1227 | m_AllowMSAA: 1 1228 | m_AllowDynamicResolution: 0 1229 | m_ForceIntoRT: 0 1230 | m_OcclusionCulling: 1 1231 | m_StereoConvergence: 10 1232 | m_StereoSeparation: 0.022 1233 | --- !u!4 &1787239749 1234 | Transform: 1235 | m_ObjectHideFlags: 0 1236 | m_CorrespondingSourceObject: {fileID: 0} 1237 | m_PrefabInstance: {fileID: 0} 1238 | m_PrefabAsset: {fileID: 0} 1239 | m_GameObject: {fileID: 1787239744} 1240 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 1241 | m_LocalPosition: {x: 0, y: 1, z: -10} 1242 | m_LocalScale: {x: 1, y: 1, z: 1} 1243 | m_Children: [] 1244 | m_Father: {fileID: 0} 1245 | m_RootOrder: 0 1246 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 1247 | --- !u!114 &1787239750 1248 | MonoBehaviour: 1249 | m_ObjectHideFlags: 0 1250 | m_CorrespondingSourceObject: {fileID: 0} 1251 | m_PrefabInstance: {fileID: 0} 1252 | m_PrefabAsset: {fileID: 0} 1253 | m_GameObject: {fileID: 1787239744} 1254 | m_Enabled: 1 1255 | m_EditorHideFlags: 0 1256 | m_Script: {fileID: 11500000, guid: e8acd81474de8324fa0d60f7399ebdd0, type: 3} 1257 | m_Name: 1258 | m_EditorClassIdentifier: 1259 | -------------------------------------------------------------------------------- /Assets/AVProWithOpenCVForUnityExample/ShowLicense.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b5f0064b996841c41b8eb48d43ec4cce 3 | timeCreated: 1481631418 4 | licenseType: Pro 5 | DefaultImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/StreamingAssets.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 1 2 | guid: fd1a96e49a9d44bbdabee3e9edb3d529 3 | -------------------------------------------------------------------------------- /Assets/StreamingAssets/AVProWithOpenCVForUnityExample.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b1e363552644181419caa3e5db1c202e 3 | folderAsset: yes 4 | DefaultImporter: 5 | userData: 6 | -------------------------------------------------------------------------------- /Assets/StreamingAssets/AVProWithOpenCVForUnityExample/BigBuckBunny_720p30.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnoxSoftware/AVProWithOpenCVForUnityExample/f4b62296901af71b9897cd2940e6657c54ed3964/Assets/StreamingAssets/AVProWithOpenCVForUnityExample/BigBuckBunny_720p30.mp4 -------------------------------------------------------------------------------- /Assets/StreamingAssets/AVProWithOpenCVForUnityExample/BigBuckBunny_720p30.mp4.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: eeac93a986e026742ab84f895e5df439 3 | MovieImporter: 4 | serializedVersion: 1 5 | quality: .5 6 | linearTexture: 0 7 | userData: 8 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | AVPro With OpenCV for Unity Example 2 | ==================== 3 | 4 | Overview 5 | ----- 6 | This example shows how to convert AVProVideo and AVProLiveCamera texture to OpenCV Mat using AsyncGPUReadback. 7 | - AVProVideoGetReadableTextureExample 8 | - AVProVideoAsyncGPUReadbackExample 9 | - AVProVideoExtractFrameExample 10 | - AVProLiveCameraGetFrameAsColor32Example 11 | - AVProLiveCameraAsyncGPUReadbackExample 12 | 13 | Environment 14 | ----- 15 | - Unity 2020.3.48f1+ 16 | [OpenCVForUnity](https://assetstore.unity.com/packages/tools/integration/opencv-for-unity-21088?aid=1011l4ehR) 2.5.9+ 17 | [UnityPlugin-AVProVideo](https://assetstore.unity.com/packages/tools/video/avpro-video-v3-core-desktop-edition-278895?aid=1011l4ehR) 2.9.3+ (Latest-Trial) 18 | [UnityPlugin-AVProLiveCamera](https://assetstore.unity.com/packages/tools/video/avpro-live-camera-3683?aid=1011l4ehR) 2.9.3+ (Latest-Trial) 19 | 20 | 21 | Setup 22 | ----- 23 | 1. Download the latest release unitypackage. [AVProWithOpenCVForUnityExample.unitypackage](https://github.com/EnoxSoftware/AVProWithOpenCVForUnityExample/releases) 24 | 1. Create New Project. (AVProWithOpenCVForUnityExample) 25 | 1. Import OpenCVForUnity from AssetStore 26 | 1. Import UnityPlugin-AVProVideo-Latest-Trial.unitypackage 27 | 1. Import UnityPlugin-AVProLiveCamera-Latest-Trial.unitypackage 28 | 1. Import AVProWithOpenCVForUnityExample.unitypackage 29 | 1. Add the "Assets/AVProWithOpenCVForUnityExample/*.unity" files to the "Scenes In Build" list in the "Build Settings" window. 30 | 1. Build and Deploy. 31 | 32 | Screen Shot 33 | ----- 34 | ![ScreenShot.PNG](ScreenShot.PNG) 35 | -------------------------------------------------------------------------------- /ScreenShot.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EnoxSoftware/AVProWithOpenCVForUnityExample/f4b62296901af71b9897cd2940e6657c54ed3964/ScreenShot.PNG --------------------------------------------------------------------------------