From f75a125719007f0c2ce79429fa937799f8baf6e4 Mon Sep 17 00:00:00 2001 From: LP Date: Thu, 10 Oct 2019 11:31:42 +0100 Subject: [PATCH] Updated to fix unirx issues and support 2019.* --- .gitignore | 6 + src/Assembly-CSharp-Editor.csproj | 949 ++++++---- src/Assembly-CSharp-firstpass.csproj | 1162 +++++++------ src/Assembly-CSharp.csproj | 876 +++++++--- .../InputBindings/SetupToggleBinding.cs | 2 +- .../Bindings/GameObjectExtensions.cs | 43 + .../BindingsRx/Bindings/GenericBindings.cs | 16 + .../BindingsRx/Bindings/TextExtensions.cs | 9 + .../Bindings/TransformExtensions.cs | 9 + .../Extensions/IObservableExtensions.cs | 2 +- .../Extensions/IReactivePropertyExtensions.cs | 6 +- src/Assets/Plugins/UniRx.meta | 3 +- src/Assets/Plugins/UniRx/Examples.meta | 9 + .../UniRx/Examples/Sample01_ObservableWWW.cs | 90 + .../Sample01_ObservableWWW.cs.meta} | 2 +- .../Examples/Sample02_ObservableTriggers.cs | 24 + .../Sample02_ObservableTriggers.cs.meta} | 4 +- .../Sample03_GameObjectAsObservable.cs | 23 + .../Sample03_GameObjectAsObservable.cs.meta} | 2 +- .../Sample04_ConvertFromUnityCallback.cs | 66 + ...Sample04_ConvertFromUnityCallback.cs.meta} | 2 +- .../Examples/Sample05_ConvertFromCoroutine.cs | 45 + .../Sample05_ConvertFromCoroutine.cs.meta} | 4 +- .../Examples/Sample06_ConvertToCoroutine.cs | 62 + .../Sample06_ConvertToCoroutine.cs.meta} | 2 +- .../Sample07_OrchestratIEnumerator.cs | 45 + .../Sample07_OrchestratIEnumerator.cs.meta | 12 + .../Examples/Sample08_DetectDoubleClick.cs | 32 + .../Sample08_DetectDoubleClick.cs.meta | 12 + .../UniRx/Examples/Sample09_EventHandling.cs | 69 + .../Sample09_EventHandling.cs.meta} | 2 +- .../Examples/Sample10_MainThreadDispatcher.cs | 48 + .../Sample10_MainThreadDispatcher.cs.meta | 12 + .../Plugins/UniRx/Examples/Sample11_Logger.cs | 41 + .../UniRx/Examples/Sample11_Logger.cs.meta | 12 + .../UniRx/Examples/Sample12Scene.unity | 1535 +++++++++++++++++ .../UniRx/Examples/Sample12Scene.unity.meta | 8 + .../Examples/Sample12_ReactiveProperty.cs | 77 + .../Sample12_ReactiveProperty.cs.meta | 12 + .../UniRx/Examples/Sample13Scene.unity | 1300 ++++++++++++++ .../UniRx/Examples/Sample13Scene.unity.meta | 8 + .../UniRx/Examples/Sample13_ToDoApp.cs | 68 + .../UniRx/Examples/Sample13_ToDoApp.cs.meta | 12 + .../UniRx/Examples/Sample13_ToDoItem.prefab | 284 +++ .../Examples/Sample13_ToDoItem.prefab.meta | 8 + .../UniRx/Examples/UniRx.Examples.asmdef | 12 + .../UniRx/Examples/UniRx.Examples.asmdef.meta | 7 + src/Assets/Plugins/UniRx/ReadMe.txt | 1295 +------------- src/Assets/Plugins/UniRx/Scripts.meta | 4 +- .../Plugins/UniRx/Scripts/Asynchronous.meta | 4 +- .../Plugins/UniRx/Scripts/Disposables.meta | 4 +- .../Disposables/CancellationDisposable.cs | 2 +- .../Disposables/CompositeDisposable.cs | 2 +- .../Plugins/UniRx/Scripts/InternalUtil.meta | 4 +- .../CancellableTaskCompletionSource.cs | 23 + .../CancellableTaskCompletionSource.cs.meta | 11 + .../InternalUtil/ExceptionExtensions.cs | 15 + .../InternalUtil/ExceptionExtensions.cs.meta | 12 + .../Scripts/InternalUtil/ListObserver.cs | 2 +- .../Scripts/InternalUtil/PromiseHelper.cs | 26 + .../InternalUtil/PromiseHelper.cs.meta | 11 + .../InternalUtil/ReflectionAccessor.cs | 114 -- .../InternalUtil/UnityEqualityComparer.cs | 271 +++ .../UnityEqualityComparer.cs.meta | 11 + .../Plugins/UniRx/Scripts/Notification.cs | 3 +- .../Plugins/UniRx/Scripts/Notifiers.meta | 4 +- .../UniRx/Scripts/Observable.Awaiter.cs | 2 +- .../UniRx/Scripts/Observable.Creation.cs | 8 + .../UniRx/Scripts/Observable.Paging.cs | 1 + .../Plugins/UniRx/Scripts/Observable.cs | 1 + src/Assets/Plugins/UniRx/Scripts/Observer.cs | 9 +- .../Plugins/UniRx/Scripts/Operators.meta | 4 +- .../Plugins/UniRx/Scripts/Operators/Catch.cs | 14 +- .../UniRx/Scripts/Operators/ContinueWith.cs | 13 +- .../UniRx/Scripts/Operators/ObserveOn.cs | 140 +- .../Plugins/UniRx/Scripts/Operators/Return.cs | 47 + .../Plugins/UniRx/Scripts/Operators/Sample.cs | 12 + .../UniRx/Scripts/Operators/TakeUntil.cs | 41 +- .../Plugins/UniRx/Scripts/Operators/Wait.cs | 3 +- .../Plugins/UniRx/Scripts/Schedulers.meta | 4 +- .../Scripts/Schedulers/ThreadPoolScheduler.cs | 2 +- .../Plugins/UniRx/Scripts/Subjects.meta | 4 +- .../UniRx/Scripts/Subjects/AsyncSubject.cs | 10 +- .../UniRx/Scripts/Subjects/BehaviorSubject.cs | 2 +- src/Assets/Plugins/UniRx/Scripts/System.meta | 4 +- .../UniRx/Scripts/System/IObservable.cs | 2 +- .../Plugins/UniRx/Scripts/System/IObserver.cs | 2 +- .../Plugins/UniRx/Scripts/System/IProgress.cs | 2 +- .../Plugins/UniRx/Scripts/System/Tuple.cs | 2 +- src/Assets/Plugins/UniRx/Scripts/Tasks.meta | 6 +- .../Scripts/Tasks/TaskObservableExtensions.cs | 2 +- src/Assets/Plugins/UniRx/Scripts/UniRx.asmdef | 12 + .../Plugins/UniRx/Scripts/UniRx.asmdef.meta | 7 + .../UniRx/Scripts/UnityEngineBridge.meta | 4 +- .../UnityEngineBridge/AotSafeExtensions.cs | 21 - .../UnityEngineBridge/CancellationToken.cs | 2 +- .../UnityEngineBridge/CoroutineAsyncBridge.cs | 24 +- .../UnityEngineBridge/Diagnostics.meta | 4 +- .../InspectableReactiveProperty.cs | 1 + .../InspectorDisplayDrawer.cs | 22 +- .../Scripts/UnityEngineBridge/LazyTask.cs | 143 -- .../UnityEngineBridge/MainThreadDispatcher.cs | 19 +- .../UnityEngineBridge/Observable.Unity.cs | 43 +- .../ObservableMonoBehaviour.cs | 885 ---------- .../UnityEngineBridge/ObservableWWW.cs | 13 +- .../UnityEngineBridge/ObserveExtensions.cs | 1 + .../Scripts/UnityEngineBridge/Operators.meta | 4 +- .../Operators/FromCoroutine.cs | 4 +- .../UnityEngineBridge/PresenterBase.cs | 234 --- .../UnityEngineBridge/ReactiveCollection.cs | 3 +- .../UnityEngineBridge/ReactiveCommand.cs | 95 +- .../UnityEngineBridge/ReactiveDictionary.cs | 15 +- .../UnityEngineBridge/ReactiveProperty.cs | 554 +++--- .../ScenePlaybackDetector.cs | 4 + .../Scripts/UnityEngineBridge/Toolkit.meta | 6 +- .../UnityEngineBridge/Toolkit/ObjectPool.cs | 24 +- .../Scripts/UnityEngineBridge/Triggers.meta | 4 +- .../Triggers/ObservableJointTrigger.cs | 47 + .../Triggers/ObservableJointTrigger.cs.meta | 11 + .../ObservableRectTransformTrigger.cs | 4 +- .../UnityEngineBridge/TypedMonoBehaviour.cs | 205 --- .../UniRxSynchronizationContext.cs | 57 - .../UniRxSynchronizationContext.cs.meta | 12 - .../UnityEqualityComparer.cs | 136 -- .../UnityUIComponentExtensions.cs | 25 +- .../UniRx/Scripts/UnityWinRTBridge.meta | 4 +- src/Packages/manifest.json | 51 +- src/ProjectSettings/ProjectSettings.asset | Bin 56119 -> 67060 bytes src/ProjectSettings/ProjectVersion.txt | 3 +- src/ProjectSettings/VFXManager.asset | Bin 0 -> 4148 bytes src/ProjectSettings/XRSettings.asset | 10 + src/UniRx.Examples.csproj | 627 +++++++ src/UniRx.csproj | 853 +++++++++ src/src.sln | 30 +- 134 files changed, 8713 insertions(+), 4699 deletions(-) create mode 100644 src/Assets/Plugins/UniRx/Examples.meta create mode 100644 src/Assets/Plugins/UniRx/Examples/Sample01_ObservableWWW.cs rename src/Assets/Plugins/UniRx/{Scripts/UnityEngineBridge/ObservableMonoBehaviour.cs.meta => Examples/Sample01_ObservableWWW.cs.meta} (85%) create mode 100644 src/Assets/Plugins/UniRx/Examples/Sample02_ObservableTriggers.cs rename src/Assets/Plugins/UniRx/{Scripts/InternalUtil/ReflectionAccessor.cs.meta => Examples/Sample02_ObservableTriggers.cs.meta} (76%) create mode 100644 src/Assets/Plugins/UniRx/Examples/Sample03_GameObjectAsObservable.cs rename src/Assets/Plugins/UniRx/{Scripts/UnityEngineBridge/TypedMonoBehaviour.cs.meta => Examples/Sample03_GameObjectAsObservable.cs.meta} (85%) create mode 100644 src/Assets/Plugins/UniRx/Examples/Sample04_ConvertFromUnityCallback.cs rename src/Assets/Plugins/UniRx/{Scripts/UnityEngineBridge/PresenterBase.cs.meta => Examples/Sample04_ConvertFromUnityCallback.cs.meta} (85%) create mode 100644 src/Assets/Plugins/UniRx/Examples/Sample05_ConvertFromCoroutine.cs rename src/Assets/Plugins/UniRx/{Scripts/UnityEngineBridge/AotSafeExtensions.cs.meta => Examples/Sample05_ConvertFromCoroutine.cs.meta} (76%) create mode 100644 src/Assets/Plugins/UniRx/Examples/Sample06_ConvertToCoroutine.cs rename src/Assets/Plugins/UniRx/{Scripts/UnityEngineBridge/UnityEqualityComparer.cs.meta => Examples/Sample06_ConvertToCoroutine.cs.meta} (85%) create mode 100644 src/Assets/Plugins/UniRx/Examples/Sample07_OrchestratIEnumerator.cs create mode 100644 src/Assets/Plugins/UniRx/Examples/Sample07_OrchestratIEnumerator.cs.meta create mode 100644 src/Assets/Plugins/UniRx/Examples/Sample08_DetectDoubleClick.cs create mode 100644 src/Assets/Plugins/UniRx/Examples/Sample08_DetectDoubleClick.cs.meta create mode 100644 src/Assets/Plugins/UniRx/Examples/Sample09_EventHandling.cs rename src/Assets/Plugins/UniRx/{Scripts/UnityEngineBridge/LazyTask.cs.meta => Examples/Sample09_EventHandling.cs.meta} (85%) create mode 100644 src/Assets/Plugins/UniRx/Examples/Sample10_MainThreadDispatcher.cs create mode 100644 src/Assets/Plugins/UniRx/Examples/Sample10_MainThreadDispatcher.cs.meta create mode 100644 src/Assets/Plugins/UniRx/Examples/Sample11_Logger.cs create mode 100644 src/Assets/Plugins/UniRx/Examples/Sample11_Logger.cs.meta create mode 100644 src/Assets/Plugins/UniRx/Examples/Sample12Scene.unity create mode 100644 src/Assets/Plugins/UniRx/Examples/Sample12Scene.unity.meta create mode 100644 src/Assets/Plugins/UniRx/Examples/Sample12_ReactiveProperty.cs create mode 100644 src/Assets/Plugins/UniRx/Examples/Sample12_ReactiveProperty.cs.meta create mode 100644 src/Assets/Plugins/UniRx/Examples/Sample13Scene.unity create mode 100644 src/Assets/Plugins/UniRx/Examples/Sample13Scene.unity.meta create mode 100644 src/Assets/Plugins/UniRx/Examples/Sample13_ToDoApp.cs create mode 100644 src/Assets/Plugins/UniRx/Examples/Sample13_ToDoApp.cs.meta create mode 100644 src/Assets/Plugins/UniRx/Examples/Sample13_ToDoItem.prefab create mode 100644 src/Assets/Plugins/UniRx/Examples/Sample13_ToDoItem.prefab.meta create mode 100644 src/Assets/Plugins/UniRx/Examples/UniRx.Examples.asmdef create mode 100644 src/Assets/Plugins/UniRx/Examples/UniRx.Examples.asmdef.meta create mode 100644 src/Assets/Plugins/UniRx/Scripts/InternalUtil/CancellableTaskCompletionSource.cs create mode 100644 src/Assets/Plugins/UniRx/Scripts/InternalUtil/CancellableTaskCompletionSource.cs.meta create mode 100644 src/Assets/Plugins/UniRx/Scripts/InternalUtil/ExceptionExtensions.cs create mode 100644 src/Assets/Plugins/UniRx/Scripts/InternalUtil/ExceptionExtensions.cs.meta create mode 100644 src/Assets/Plugins/UniRx/Scripts/InternalUtil/PromiseHelper.cs create mode 100644 src/Assets/Plugins/UniRx/Scripts/InternalUtil/PromiseHelper.cs.meta delete mode 100644 src/Assets/Plugins/UniRx/Scripts/InternalUtil/ReflectionAccessor.cs create mode 100644 src/Assets/Plugins/UniRx/Scripts/InternalUtil/UnityEqualityComparer.cs create mode 100644 src/Assets/Plugins/UniRx/Scripts/InternalUtil/UnityEqualityComparer.cs.meta create mode 100644 src/Assets/Plugins/UniRx/Scripts/UniRx.asmdef create mode 100644 src/Assets/Plugins/UniRx/Scripts/UniRx.asmdef.meta delete mode 100644 src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/AotSafeExtensions.cs delete mode 100644 src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/LazyTask.cs delete mode 100644 src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/ObservableMonoBehaviour.cs delete mode 100644 src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/PresenterBase.cs create mode 100644 src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/Triggers/ObservableJointTrigger.cs create mode 100644 src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/Triggers/ObservableJointTrigger.cs.meta delete mode 100644 src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/TypedMonoBehaviour.cs delete mode 100644 src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/UniRxSynchronizationContext.cs delete mode 100644 src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/UniRxSynchronizationContext.cs.meta delete mode 100644 src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/UnityEqualityComparer.cs create mode 100644 src/ProjectSettings/VFXManager.asset create mode 100644 src/ProjectSettings/XRSettings.asset create mode 100644 src/UniRx.Examples.csproj create mode 100644 src/UniRx.csproj diff --git a/.gitignore b/.gitignore index 4efe230..6662a9f 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,9 @@ Temp /src/src.userprefs /*.unitypackage src/\.vs/ + +dist/ + +src/.idea/ + +src/Logs/ diff --git a/src/Assembly-CSharp-Editor.csproj b/src/Assembly-CSharp-Editor.csproj index 575d34d..b20223c 100644 --- a/src/Assembly-CSharp-Editor.csproj +++ b/src/Assembly-CSharp-Editor.csproj @@ -1,20 +1,22 @@  - 4 + latest + <_TargetFrameworkDirectories>non_empty_path_generated_by_unity.rider.package + <_FullFrameworkReferenceAssemblyPaths>non_empty_path_generated_by_unity.rider.package + true Debug AnyCPU 10.0.20506 2.0 - - + {0F82C266-B129-FC86-404A-370C3030009B} Library Properties Assembly-CSharp-Editor - v3.5 + v4.7.1 512 . @@ -23,7 +25,7 @@ full false Temp\bin\Debug\ - DEBUG;TRACE;UNITY_5_3_OR_NEWER;UNITY_5_4_OR_NEWER;UNITY_5_5_OR_NEWER;UNITY_5_6_OR_NEWER;UNITY_2017_1_OR_NEWER;UNITY_2017_2_OR_NEWER;UNITY_2017_3_OR_NEWER;UNITY_2018_1_OR_NEWER;UNITY_2018_1_0;UNITY_2018_1;UNITY_2018;PLATFORM_ARCH_64;UNITY_64;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_DUCK_TYPING;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_SPRITERENDERER_FLIPPING;ENABLE_SPRITES;ENABLE_GRID;ENABLE_TILEMAP;ENABLE_TERRAIN;ENABLE_RAKNET;ENABLE_DIRECTOR;ENABLE_UNET;ENABLE_LZMA;ENABLE_UNITYEVENTS;ENABLE_WEBCAM;ENABLE_WWW;ENABLE_CLOUD_SERVICES_COLLAB;ENABLE_CLOUD_SERVICES_COLLAB_SOFTLOCKS;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_HUB;ENABLE_CLOUD_PROJECT_ID;ENABLE_CLOUD_SERVICES_USE_WEBREQUEST;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_HUB;ENABLE_EDITOR_HUB_LICENSE;ENABLE_WEBSOCKET_CLIENT;ENABLE_DIRECTOR_AUDIO;ENABLE_DIRECTOR_TEXTURE;ENABLE_TIMELINE;ENABLE_EDITOR_METRICS;ENABLE_EDITOR_METRICS_CACHING;ENABLE_MANAGED_JOBS;ENABLE_MANAGED_TRANSFORM_JOBS;INCLUDE_DYNAMIC_GI;INCLUDE_GI;ENABLE_MONO_BDWGC;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;INCLUDE_PUBNUB;ENABLE_PLAYMODE_TESTS_RUNNER;ENABLE_VIDEO;ENABLE_PACKMAN;ENABLE_CUSTOM_RENDER_TEXTURE;ENABLE_LOCALIZATION;PLATFORM_STANDALONE_WIN;PLATFORM_STANDALONE;UNITY_STANDALONE_WIN;UNITY_STANDALONE;ENABLE_SUBSTANCE;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_UNITYWEBREQUEST;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_PURCHASING;ENABLE_CLOUD_SERVICES_CRASH_REPORTING;ENABLE_OUT_OF_PROCESS_CRASH_HANDLER;ENABLE_EVENT_QUEUE;ENABLE_CLUSTERINPUT;ENABLE_VR;ENABLE_AR;ENABLE_WEBSOCKET_HOST;ENABLE_MONO;NET_2_0_SUBSET;ENABLE_PROFILER;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN;ENABLE_UNITY_COLLECTIONS_CHECKS;UNITY_TEAM_LICENSE;ENABLE_VSTU + DEBUG;TRACE;UNITY_2019_2_3;UNITY_2019_2;UNITY_2019;UNITY_5_3_OR_NEWER;UNITY_5_4_OR_NEWER;UNITY_5_5_OR_NEWER;UNITY_5_6_OR_NEWER;UNITY_2017_1_OR_NEWER;UNITY_2017_2_OR_NEWER;UNITY_2017_3_OR_NEWER;UNITY_2017_4_OR_NEWER;UNITY_2018_1_OR_NEWER;UNITY_2018_2_OR_NEWER;UNITY_2018_3_OR_NEWER;UNITY_2018_4_OR_NEWER;UNITY_2019_1_OR_NEWER;UNITY_2019_2_OR_NEWER;PLATFORM_ARCH_64;UNITY_64;UNITY_INCLUDE_TESTS;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_TEXTURE_STREAMING;ENABLE_UNET;ENABLE_LZMA;ENABLE_UNITYEVENTS;ENABLE_WEBCAM;ENABLE_WWW;ENABLE_CLOUD_SERVICES_COLLAB;ENABLE_CLOUD_SERVICES_COLLAB_SOFTLOCKS;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_SERVICES_USE_WEBREQUEST;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_HUB_LICENSE;ENABLE_WEBSOCKET_CLIENT;ENABLE_DIRECTOR_AUDIO;ENABLE_DIRECTOR_TEXTURE;ENABLE_MANAGED_JOBS;ENABLE_MANAGED_TRANSFORM_JOBS;ENABLE_MANAGED_ANIMATION_JOBS;ENABLE_MANAGED_AUDIO_JOBS;INCLUDE_DYNAMIC_GI;ENABLE_MONO_BDWGC;ENABLE_SCRIPTING_GC_WBARRIERS;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;ENABLE_VIDEO;PLATFORM_STANDALONE_WIN;PLATFORM_STANDALONE;UNITY_STANDALONE_WIN;UNITY_STANDALONE;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_UNITYWEBREQUEST;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_PURCHASING;ENABLE_CLOUD_SERVICES_CRASH_REPORTING;ENABLE_OUT_OF_PROCESS_CRASH_HANDLER;ENABLE_EVENT_QUEUE;ENABLE_CLUSTER_SYNC;ENABLE_CLUSTERINPUT;ENABLE_VR;ENABLE_AR;ENABLE_WEBSOCKET_HOST;ENABLE_MONO;NET_STANDARD_2_0;ENABLE_PROFILER;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN;ENABLE_UNITY_COLLECTIONS_CHECKS;ENABLE_BURST_AOT;UNITY_TEAM_LICENSE;ENABLE_CUSTOM_RENDER_TEXTURE;ENABLE_DIRECTOR;ENABLE_LOCALIZATION;ENABLE_SPRITES;ENABLE_TERRAIN;ENABLE_TILEMAP;ENABLE_TIMELINE;NET_4_6;CSHARP_7_OR_LATER;CSHARP_7_3_OR_NEWER prompt 4 0169 @@ -42,315 +44,643 @@ true true false - - - {E097FAD1-6243-4DAD-9C02-E9B9EFC3FFC1};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - Unity/VSTU - Editor:5 - StandaloneWindows64:19 - 2018.1.0b10 + false + false - C:\Program Files\Unity\Hub\Editor\2018.1.0b10\Editor\Data\Managed/UnityEngine/UnityEngine.dll + C:\Program Files\Unity\Hub\Editor\2019.2.3f1\Editor\Data\Managed/UnityEngine/UnityEngine.dll - C:\Program Files\Unity\Hub\Editor\2018.1.0b10\Editor\Data\Managed/UnityEditor.dll + C:\Program Files\Unity\Hub\Editor\2019.2.3f1\Editor\Data\Managed/UnityEditor.dll - - - C:/Code/Unity/OS/bindingsrx/src/Library/ScriptAssemblies/Unity.PackageManagerUI.Editor.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.AIModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.ARModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.AccessibilityModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.AnimationModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.AssetBundleModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.AudioModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.BaselibModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.ClothModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.CloudWebServicesModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.ClusterInputModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.ClusterRendererModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.CoreModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.CrashReportingModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.DirectorModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.FacebookModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.GameCenterModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.GridModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.HotReloadModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.IMGUIModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.ImageConversionModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.InputModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.JSONSerializeModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.ParticleSystemModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.ParticlesLegacyModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.PerformanceReportingModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.PhysicsModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.Physics2DModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.ScreenCaptureModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.SharedInternalsModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.SpatialTrackingModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.SpriteMaskModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.SpriteShapeModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.StyleSheetsModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.SubstanceModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.TLSModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.TerrainModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.TerrainPhysicsModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.TextRenderingModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.TilemapModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.TimelineModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.UIModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.UIElementsModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.UNETModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.UmbraModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.UnityAnalyticsModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.UnityConnectModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestAssetBundleModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestAudioModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestTextureModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestWWWModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.VRModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.VehiclesModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.VideoModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.WebModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.WindModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.XRModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/Unity.Locator.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/UnityExtensions/Unity/GUISystem/UnityEngine.UI.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/UnityExtensions/Unity/GUISystem/Editor/UnityEditor.UI.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/UnityExtensions/Unity/Networking/UnityEngine.Networking.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/UnityExtensions/Unity/Networking/Editor/UnityEditor.Networking.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/UnityExtensions/Unity/TestRunner/Editor/UnityEditor.TestRunner.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/UnityExtensions/Unity/TestRunner/UnityEngine.TestRunner.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/UnityExtensions/Unity/TestRunner/net35/unity-custom/nunit.framework.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/UnityExtensions/Unity/Timeline/RuntimeEditor/UnityEngine.Timeline.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/UnityExtensions/Unity/Timeline/Editor/UnityEditor.Timeline.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/UnityExtensions/Unity/TreeEditor/Editor/UnityEditor.TreeEditor.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/UnityExtensions/Unity/UIAutomation/UnityEngine.UIAutomation.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/UnityExtensions/Unity/UIAutomation/Editor/UnityEditor.UIAutomation.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/UnityExtensions/Unity/UnityGoogleAudioSpatializer/Editor/UnityEditor.GoogleAudioSpatializer.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/UnityExtensions/Unity/UnityGoogleAudioSpatializer/RuntimeEditor/UnityEngine.GoogleAudioSpatializer.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/UnityExtensions/Unity/UnityHoloLens/Editor/UnityEditor.HoloLens.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/UnityExtensions/Unity/UnityHoloLens/RuntimeEditor/UnityEngine.HoloLens.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/UnityExtensions/Unity/UnitySpatialTracking/Editor/UnityEditor.SpatialTracking.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/UnityExtensions/Unity/UnitySpatialTracking/RuntimeEditor/UnityEngine.SpatialTracking.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/UnityExtensions/Unity/UnityVR/Editor/UnityEditor.VR.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEditor.Graphs.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/PlaybackEngines/windowsstandalonesupport/UnityEditor.WindowsStandalone.Extensions.dll - - - C:/ProgramData/Unity/cache/packages/packages.unity.com/com.unity.ads@2.0.3/UnityEngine.Advertisements.dll - - - C:/ProgramData/Unity/cache/packages/packages.unity.com/com.unity.ads@2.0.3/Editor/UnityEditor.Advertisements.dll - - - C:/ProgramData/Unity/cache/packages/packages.unity.com/com.unity.analytics@2.0.13/UnityEngine.Analytics.dll - - - C:/ProgramData/Unity/cache/packages/packages.unity.com/com.unity.analytics@2.0.13/Editor/UnityEditor.Analytics.dll - - - C:/ProgramData/Unity/cache/packages/packages.unity.com/com.unity.purchasing@2.0.1/UnityEngine.Purchasing.dll - - - C:/ProgramData/Unity/cache/packages/packages.unity.com/com.unity.purchasing@2.0.1/Editor/UnityEditor.Purchasing.dll - - - C:/ProgramData/Unity/cache/packages/packages.unity.com/com.unity.standardevents@1.0.10/UnityEngine.StandardEvents.dll - - - C:/Program Files (x86)/Microsoft Visual Studio Tools for Unity/15.0/Editor/SyntaxTree.VisualStudio.Unity.Bridge.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/MonoBleedingEdge/lib/mono/2.0-api/mscorlib.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/MonoBleedingEdge/lib/mono/2.0-api/System.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/MonoBleedingEdge/lib/mono/2.0-api/System.Core.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/MonoBleedingEdge/lib/mono/2.0-api/System.Runtime.Serialization.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/MonoBleedingEdge/lib/mono/2.0-api/System.Xml.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/MonoBleedingEdge/lib/mono/2.0-api/System.Xml.Linq.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/MonoBleedingEdge/lib/mono/2.0-api/UnityScript.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/MonoBleedingEdge/lib/mono/2.0-api/UnityScript.Lang.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/MonoBleedingEdge/lib/mono/2.0-api/Boo.Lang.dll - + + + E:/Code/open-source/bindingsrx/src/Library/ScriptAssemblies/UnityEditor.TestRunner.dll + + + E:/Code/open-source/bindingsrx/src/Library/ScriptAssemblies/UnityEngine.TestRunner.dll + + + E:/Code/open-source/bindingsrx/src/Library/ScriptAssemblies/Unity.Timeline.Editor.dll + + + E:/Code/open-source/bindingsrx/src/Library/ScriptAssemblies/com.unity.multiplayer-hlapi.Editor.dll + + + E:/Code/open-source/bindingsrx/src/Library/ScriptAssemblies/Unity.VSCode.Editor.dll + + + E:/Code/open-source/bindingsrx/src/Library/ScriptAssemblies/Unity.TextMeshPro.Editor.dll + + + E:/Code/open-source/bindingsrx/src/Library/ScriptAssemblies/UnityEngine.UI.dll + + + E:/Code/open-source/bindingsrx/src/Library/ScriptAssemblies/Unity.Timeline.dll + + + E:/Code/open-source/bindingsrx/src/Library/ScriptAssemblies/Unity.CollabProxy.Editor.dll + + + E:/Code/open-source/bindingsrx/src/Library/ScriptAssemblies/com.unity.multiplayer-weaver.Editor.dll + + + E:/Code/open-source/bindingsrx/src/Library/ScriptAssemblies/UnityEngine.XR.LegacyInputHelpers.dll + + + E:/Code/open-source/bindingsrx/src/Library/ScriptAssemblies/Unity.Rider.Editor.dll + + + E:/Code/open-source/bindingsrx/src/Library/ScriptAssemblies/Unity.2D.Sprite.Editor.dll + + + E:/Code/open-source/bindingsrx/src/Library/ScriptAssemblies/Unity.2D.Tilemap.Editor.dll + + + E:/Code/open-source/bindingsrx/src/Library/ScriptAssemblies/UnityEditor.SpatialTracking.dll + + + E:/Code/open-source/bindingsrx/src/Library/ScriptAssemblies/UnityEngine.SpatialTracking.dll + + + E:/Code/open-source/bindingsrx/src/Library/ScriptAssemblies/Unity.TextMeshPro.dll + + + E:/Code/open-source/bindingsrx/src/Library/ScriptAssemblies/Unity.Analytics.DataPrivacy.dll + + + E:/Code/open-source/bindingsrx/src/Library/ScriptAssemblies/UnityEditor.XR.LegacyInputHelpers.dll + + + E:/Code/open-source/bindingsrx/src/Library/ScriptAssemblies/UnityEditor.UI.dll + + + E:/Code/open-source/bindingsrx/src/Library/ScriptAssemblies/com.unity.multiplayer-hlapi.Runtime.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.AIModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.ARModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.AccessibilityModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.AndroidJNIModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.AnimationModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.AssetBundleModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.AudioModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.ClothModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.ClusterInputModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.ClusterRendererModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.CoreModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.CrashReportingModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.DSPGraphModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.DirectorModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.FileSystemHttpModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.GameCenterModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.GridModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.HotReloadModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.IMGUIModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.ImageConversionModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.InputModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.InputLegacyModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.JSONSerializeModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.LocalizationModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.ParticleSystemModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.PerformanceReportingModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.PhysicsModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.Physics2DModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.ProfilerModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.ScreenCaptureModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.SharedInternalsModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.SpriteMaskModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.SpriteShapeModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.StreamingModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.SubstanceModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.TLSModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.TerrainModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.TerrainPhysicsModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.TextCoreModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.TextRenderingModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.TilemapModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.UIModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.UIElementsModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.UNETModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.UmbraModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityAnalyticsModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityConnectModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityTestProtocolModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestAssetBundleModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestAudioModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestTextureModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestWWWModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.VFXModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.VRModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.VehiclesModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.VideoModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.WindModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.XRModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/UnityExtensions/Unity/UnityVR/Editor/UnityEditor.VR.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEditor.Graphs.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/PlaybackEngines/WindowsStandaloneSupport/UnityEditor.WindowsStandalone.Extensions.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/PlaybackEngines/AndroidPlayer/UnityEditor.Android.Extensions.dll + + + E:/Code/open-source/bindingsrx/src/Library/PackageCache/com.unity.ads@2.0.8/Editor/UnityEditor.Advertisements.dll + + + E:/Code/open-source/bindingsrx/src/Library/PackageCache/com.unity.analytics@3.3.2/Unity.Analytics.Editor.dll + + + E:/Code/open-source/bindingsrx/src/Library/PackageCache/com.unity.analytics@3.3.2/Unity.Analytics.StandardEvents.dll + + + E:/Code/open-source/bindingsrx/src/Library/PackageCache/com.unity.analytics@3.3.2/Unity.Analytics.Tracker.dll + + + E:/Code/open-source/bindingsrx/src/Library/PackageCache/com.unity.purchasing@2.0.6/Editor/UnityEditor.Purchasing.dll + + + E:/Code/open-source/bindingsrx/src/Library/PackageCache/com.unity.ext.nunit@1.0.0/net35/unity-custom/nunit.framework.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/mscorlib.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Core.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Runtime.Serialization.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Xml.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Xml.Linq.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Numerics.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Numerics.Vectors.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Net.Http.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Microsoft.CSharp.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Data.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/Microsoft.Win32.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/netstandard.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.AppContext.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Collections.Concurrent.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Collections.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Collections.NonGeneric.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Collections.Specialized.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ComponentModel.Annotations.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ComponentModel.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ComponentModel.EventBasedAsync.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ComponentModel.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ComponentModel.TypeConverter.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Console.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Data.Common.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.Contracts.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.Debug.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.FileVersionInfo.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.Process.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.StackTrace.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.TextWriterTraceListener.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.Tools.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.TraceSource.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Drawing.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Dynamic.Runtime.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Globalization.Calendars.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Globalization.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Globalization.Extensions.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.Compression.ZipFile.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.FileSystem.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.FileSystem.DriveInfo.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.FileSystem.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.FileSystem.Watcher.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.IsolatedStorage.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.MemoryMappedFiles.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.Pipes.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.UnmanagedMemoryStream.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Linq.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Linq.Expressions.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Linq.Parallel.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Linq.Queryable.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.Http.Rtc.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.NameResolution.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.NetworkInformation.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.Ping.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.Requests.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.Security.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.Sockets.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.WebHeaderCollection.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.WebSockets.Client.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.WebSockets.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ObjectModel.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Reflection.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Reflection.Emit.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Reflection.Emit.ILGeneration.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Reflection.Emit.Lightweight.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Reflection.Extensions.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Reflection.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Resources.Reader.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Resources.ResourceManager.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Resources.Writer.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.CompilerServices.VisualC.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Extensions.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Handles.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.InteropServices.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.InteropServices.RuntimeInformation.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.InteropServices.WindowsRuntime.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Numerics.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Serialization.Formatters.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Serialization.Json.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Serialization.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Serialization.Xml.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Claims.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Cryptography.Algorithms.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Cryptography.Csp.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Cryptography.Encoding.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Cryptography.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Cryptography.X509Certificates.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Principal.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.SecureString.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ServiceModel.Duplex.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ServiceModel.Http.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ServiceModel.NetTcp.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ServiceModel.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ServiceModel.Security.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Text.Encoding.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Text.Encoding.Extensions.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Text.RegularExpressions.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.Overlapped.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.Tasks.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.Tasks.Parallel.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.Thread.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.ThreadPool.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.Timer.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ValueTuple.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Xml.ReaderWriter.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Xml.XDocument.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Xml.XmlDocument.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Xml.XmlSerializer.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Xml.XPath.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Xml.XPath.XDocument.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/unityscript/UnityScript.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/unityscript/UnityScript.Lang.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/unityscript/Boo.Lang.dll + @@ -361,9 +691,12 @@ {4CFFDA30-0E63-039E-0DCA-DAC117CE2649} Assembly-CSharp + + {EB5BB4EA-F22B-E8E9-3D41-C3930B798F7C} + UniRx + - - \ No newline at end of file + diff --git a/src/Assembly-CSharp-firstpass.csproj b/src/Assembly-CSharp-firstpass.csproj index cc35cf6..483db37 100644 --- a/src/Assembly-CSharp-firstpass.csproj +++ b/src/Assembly-CSharp-firstpass.csproj @@ -1,20 +1,22 @@  - 4 + latest + <_TargetFrameworkDirectories>non_empty_path_generated_by_unity.rider.package + <_FullFrameworkReferenceAssemblyPaths>non_empty_path_generated_by_unity.rider.package + true Debug AnyCPU 10.0.20506 2.0 - - + {E53CDB40-1DF9-8A61-5878-81243AFDF805} Library Properties Assembly-CSharp-firstpass - v3.5 + v4.7.1 512 . @@ -23,7 +25,7 @@ full false Temp\bin\Debug\ - DEBUG;TRACE;UNITY_5_3_OR_NEWER;UNITY_5_4_OR_NEWER;UNITY_5_5_OR_NEWER;UNITY_5_6_OR_NEWER;UNITY_2017_1_OR_NEWER;UNITY_2017_2_OR_NEWER;UNITY_2017_3_OR_NEWER;UNITY_2018_1_OR_NEWER;UNITY_2018_1_0;UNITY_2018_1;UNITY_2018;PLATFORM_ARCH_64;UNITY_64;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_DUCK_TYPING;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_SPRITERENDERER_FLIPPING;ENABLE_SPRITES;ENABLE_GRID;ENABLE_TILEMAP;ENABLE_TERRAIN;ENABLE_RAKNET;ENABLE_DIRECTOR;ENABLE_UNET;ENABLE_LZMA;ENABLE_UNITYEVENTS;ENABLE_WEBCAM;ENABLE_WWW;ENABLE_CLOUD_SERVICES_COLLAB;ENABLE_CLOUD_SERVICES_COLLAB_SOFTLOCKS;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_HUB;ENABLE_CLOUD_PROJECT_ID;ENABLE_CLOUD_SERVICES_USE_WEBREQUEST;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_HUB;ENABLE_EDITOR_HUB_LICENSE;ENABLE_WEBSOCKET_CLIENT;ENABLE_DIRECTOR_AUDIO;ENABLE_DIRECTOR_TEXTURE;ENABLE_TIMELINE;ENABLE_EDITOR_METRICS;ENABLE_EDITOR_METRICS_CACHING;ENABLE_MANAGED_JOBS;ENABLE_MANAGED_TRANSFORM_JOBS;INCLUDE_DYNAMIC_GI;INCLUDE_GI;ENABLE_MONO_BDWGC;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;INCLUDE_PUBNUB;ENABLE_PLAYMODE_TESTS_RUNNER;ENABLE_VIDEO;ENABLE_PACKMAN;ENABLE_CUSTOM_RENDER_TEXTURE;ENABLE_LOCALIZATION;PLATFORM_STANDALONE_WIN;PLATFORM_STANDALONE;UNITY_STANDALONE_WIN;UNITY_STANDALONE;ENABLE_SUBSTANCE;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_UNITYWEBREQUEST;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_PURCHASING;ENABLE_CLOUD_SERVICES_CRASH_REPORTING;ENABLE_OUT_OF_PROCESS_CRASH_HANDLER;ENABLE_EVENT_QUEUE;ENABLE_CLUSTERINPUT;ENABLE_VR;ENABLE_AR;ENABLE_WEBSOCKET_HOST;ENABLE_MONO;NET_2_0_SUBSET;ENABLE_PROFILER;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN;ENABLE_UNITY_COLLECTIONS_CHECKS;UNITY_TEAM_LICENSE;ENABLE_VSTU + DEBUG;TRACE;UNITY_2019_2_3;UNITY_2019_2;UNITY_2019;UNITY_5_3_OR_NEWER;UNITY_5_4_OR_NEWER;UNITY_5_5_OR_NEWER;UNITY_5_6_OR_NEWER;UNITY_2017_1_OR_NEWER;UNITY_2017_2_OR_NEWER;UNITY_2017_3_OR_NEWER;UNITY_2017_4_OR_NEWER;UNITY_2018_1_OR_NEWER;UNITY_2018_2_OR_NEWER;UNITY_2018_3_OR_NEWER;UNITY_2018_4_OR_NEWER;UNITY_2019_1_OR_NEWER;UNITY_2019_2_OR_NEWER;PLATFORM_ARCH_64;UNITY_64;UNITY_INCLUDE_TESTS;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_TEXTURE_STREAMING;ENABLE_UNET;ENABLE_LZMA;ENABLE_UNITYEVENTS;ENABLE_WEBCAM;ENABLE_WWW;ENABLE_CLOUD_SERVICES_COLLAB;ENABLE_CLOUD_SERVICES_COLLAB_SOFTLOCKS;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_SERVICES_USE_WEBREQUEST;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_HUB_LICENSE;ENABLE_WEBSOCKET_CLIENT;ENABLE_DIRECTOR_AUDIO;ENABLE_DIRECTOR_TEXTURE;ENABLE_MANAGED_JOBS;ENABLE_MANAGED_TRANSFORM_JOBS;ENABLE_MANAGED_ANIMATION_JOBS;ENABLE_MANAGED_AUDIO_JOBS;INCLUDE_DYNAMIC_GI;ENABLE_MONO_BDWGC;ENABLE_SCRIPTING_GC_WBARRIERS;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;ENABLE_VIDEO;PLATFORM_STANDALONE_WIN;PLATFORM_STANDALONE;UNITY_STANDALONE_WIN;UNITY_STANDALONE;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_UNITYWEBREQUEST;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_PURCHASING;ENABLE_CLOUD_SERVICES_CRASH_REPORTING;ENABLE_OUT_OF_PROCESS_CRASH_HANDLER;ENABLE_EVENT_QUEUE;ENABLE_CLUSTER_SYNC;ENABLE_CLUSTERINPUT;ENABLE_VR;ENABLE_AR;ENABLE_WEBSOCKET_HOST;ENABLE_MONO;NET_STANDARD_2_0;ENABLE_PROFILER;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN;ENABLE_UNITY_COLLECTIONS_CHECKS;ENABLE_BURST_AOT;UNITY_TEAM_LICENSE;ENABLE_CUSTOM_RENDER_TEXTURE;ENABLE_DIRECTOR;ENABLE_LOCALIZATION;ENABLE_SPRITES;ENABLE_TERRAIN;ENABLE_TILEMAP;ENABLE_TIMELINE;CSHARP_7_OR_LATER;CSHARP_7_3_OR_NEWER prompt 4 0169 @@ -42,525 +44,655 @@ true true false - - - {E097FAD1-6243-4DAD-9C02-E9B9EFC3FFC1};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - Unity/VSTU - GamePlugins:3 - StandaloneWindows64:19 - 2018.1.0b10 + false + false - C:\Program Files\Unity\Hub\Editor\2018.1.0b10\Editor\Data\Managed/UnityEngine/UnityEngine.dll + C:\Program Files\Unity\Hub\Editor\2019.2.3f1\Editor\Data\Managed/UnityEngine/UnityEngine.dll - C:\Program Files\Unity\Hub\Editor\2018.1.0b10\Editor\Data\Managed/UnityEditor.dll + C:\Program Files\Unity\Hub\Editor\2019.2.3f1\Editor\Data\Managed/UnityEditor.dll - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - C:/Code/Unity/OS/bindingsrx/src/Library/ScriptAssemblies/Unity.PackageManagerUI.Editor.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.AIModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.ARModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.AccessibilityModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.AnimationModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.AssetBundleModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.AudioModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.BaselibModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.ClothModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.CloudWebServicesModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.ClusterInputModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.ClusterRendererModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.CoreModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.CrashReportingModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.DirectorModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.FacebookModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.GameCenterModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.GridModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.HotReloadModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.IMGUIModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.ImageConversionModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.InputModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.JSONSerializeModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.ParticleSystemModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.ParticlesLegacyModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.PerformanceReportingModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.PhysicsModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.Physics2DModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.ScreenCaptureModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.SharedInternalsModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.SpatialTrackingModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.SpriteMaskModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.SpriteShapeModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.StyleSheetsModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.SubstanceModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.TLSModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.TerrainModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.TerrainPhysicsModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.TextRenderingModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.TilemapModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.TimelineModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.UIModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.UIElementsModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.UNETModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.UmbraModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.UnityAnalyticsModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.UnityConnectModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestAssetBundleModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestAudioModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestTextureModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestWWWModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.VRModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.VehiclesModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.VideoModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.WebModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.WindModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.XRModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/Unity.Locator.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/UnityExtensions/Unity/GUISystem/UnityEngine.UI.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/UnityExtensions/Unity/Networking/UnityEngine.Networking.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/UnityExtensions/Unity/Timeline/RuntimeEditor/UnityEngine.Timeline.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/UnityExtensions/Unity/UIAutomation/UnityEngine.UIAutomation.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/UnityExtensions/Unity/UnityGoogleAudioSpatializer/RuntimeEditor/UnityEngine.GoogleAudioSpatializer.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/UnityExtensions/Unity/UnityHoloLens/RuntimeEditor/UnityEngine.HoloLens.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/UnityExtensions/Unity/UnitySpatialTracking/RuntimeEditor/UnityEngine.SpatialTracking.dll - - - C:/ProgramData/Unity/cache/packages/packages.unity.com/com.unity.ads@2.0.3/UnityEngine.Advertisements.dll - - - C:/ProgramData/Unity/cache/packages/packages.unity.com/com.unity.analytics@2.0.13/UnityEngine.Analytics.dll - - - C:/ProgramData/Unity/cache/packages/packages.unity.com/com.unity.purchasing@2.0.1/UnityEngine.Purchasing.dll - - - C:/ProgramData/Unity/cache/packages/packages.unity.com/com.unity.standardevents@1.0.10/UnityEngine.StandardEvents.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/MonoBleedingEdge/lib/mono/unity/mscorlib.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/MonoBleedingEdge/lib/mono/unity/System.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/MonoBleedingEdge/lib/mono/unity/System.Core.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/MonoBleedingEdge/lib/mono/unity/System.Runtime.Serialization.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/MonoBleedingEdge/lib/mono/unity/System.Xml.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/MonoBleedingEdge/lib/mono/unity/System.Xml.Linq.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/MonoBleedingEdge/lib/mono/unity/UnityScript.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/MonoBleedingEdge/lib/mono/unity/UnityScript.Lang.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/MonoBleedingEdge/lib/mono/unity/Boo.Lang.dll - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + E:/Code/open-source/bindingsrx/src/Library/ScriptAssemblies/Unity.Timeline.Editor.dll + + + E:/Code/open-source/bindingsrx/src/Library/ScriptAssemblies/com.unity.multiplayer-hlapi.Editor.dll + + + E:/Code/open-source/bindingsrx/src/Library/ScriptAssemblies/Unity.VSCode.Editor.dll + + + E:/Code/open-source/bindingsrx/src/Library/ScriptAssemblies/Unity.TextMeshPro.Editor.dll + + + E:/Code/open-source/bindingsrx/src/Library/ScriptAssemblies/UnityEngine.UI.dll + + + E:/Code/open-source/bindingsrx/src/Library/ScriptAssemblies/Unity.Timeline.dll + + + E:/Code/open-source/bindingsrx/src/Library/ScriptAssemblies/Unity.CollabProxy.Editor.dll + + + E:/Code/open-source/bindingsrx/src/Library/ScriptAssemblies/com.unity.multiplayer-weaver.Editor.dll + + + E:/Code/open-source/bindingsrx/src/Library/ScriptAssemblies/UnityEngine.XR.LegacyInputHelpers.dll + + + E:/Code/open-source/bindingsrx/src/Library/ScriptAssemblies/Unity.Rider.Editor.dll + + + E:/Code/open-source/bindingsrx/src/Library/ScriptAssemblies/Unity.2D.Sprite.Editor.dll + + + E:/Code/open-source/bindingsrx/src/Library/ScriptAssemblies/Unity.2D.Tilemap.Editor.dll + + + E:/Code/open-source/bindingsrx/src/Library/ScriptAssemblies/UnityEditor.SpatialTracking.dll + + + E:/Code/open-source/bindingsrx/src/Library/ScriptAssemblies/UnityEngine.SpatialTracking.dll + + + E:/Code/open-source/bindingsrx/src/Library/ScriptAssemblies/Unity.TextMeshPro.dll + + + E:/Code/open-source/bindingsrx/src/Library/ScriptAssemblies/Unity.Analytics.DataPrivacy.dll + + + E:/Code/open-source/bindingsrx/src/Library/ScriptAssemblies/UnityEditor.XR.LegacyInputHelpers.dll + + + E:/Code/open-source/bindingsrx/src/Library/ScriptAssemblies/UnityEditor.UI.dll + + + E:/Code/open-source/bindingsrx/src/Library/ScriptAssemblies/com.unity.multiplayer-hlapi.Runtime.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.AIModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.ARModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.AccessibilityModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.AndroidJNIModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.AnimationModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.AssetBundleModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.AudioModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.ClothModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.ClusterInputModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.ClusterRendererModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.CoreModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.CrashReportingModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.DSPGraphModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.DirectorModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.FileSystemHttpModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.GameCenterModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.GridModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.HotReloadModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.IMGUIModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.ImageConversionModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.InputModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.InputLegacyModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.JSONSerializeModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.LocalizationModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.ParticleSystemModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.PerformanceReportingModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.PhysicsModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.Physics2DModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.ProfilerModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.ScreenCaptureModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.SharedInternalsModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.SpriteMaskModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.SpriteShapeModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.StreamingModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.SubstanceModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.TLSModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.TerrainModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.TerrainPhysicsModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.TextCoreModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.TextRenderingModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.TilemapModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.UIModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.UIElementsModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.UNETModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.UmbraModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityAnalyticsModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityConnectModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityTestProtocolModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestAssetBundleModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestAudioModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestTextureModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestWWWModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.VFXModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.VRModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.VehiclesModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.VideoModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.WindModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.XRModule.dll + + + E:/Code/open-source/bindingsrx/src/Library/PackageCache/com.unity.analytics@3.3.2/Unity.Analytics.Editor.dll + + + E:/Code/open-source/bindingsrx/src/Library/PackageCache/com.unity.analytics@3.3.2/Unity.Analytics.StandardEvents.dll + + + E:/Code/open-source/bindingsrx/src/Library/PackageCache/com.unity.analytics@3.3.2/Unity.Analytics.Tracker.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/mscorlib.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Core.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Runtime.Serialization.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Xml.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Xml.Linq.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Numerics.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Numerics.Vectors.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Net.Http.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Microsoft.CSharp.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Data.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/Microsoft.Win32.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/netstandard.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.AppContext.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Collections.Concurrent.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Collections.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Collections.NonGeneric.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Collections.Specialized.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ComponentModel.Annotations.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ComponentModel.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ComponentModel.EventBasedAsync.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ComponentModel.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ComponentModel.TypeConverter.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Console.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Data.Common.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.Contracts.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.Debug.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.FileVersionInfo.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.Process.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.StackTrace.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.TextWriterTraceListener.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.Tools.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.TraceSource.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Drawing.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Dynamic.Runtime.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Globalization.Calendars.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Globalization.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Globalization.Extensions.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.Compression.ZipFile.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.FileSystem.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.FileSystem.DriveInfo.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.FileSystem.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.FileSystem.Watcher.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.IsolatedStorage.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.MemoryMappedFiles.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.Pipes.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.UnmanagedMemoryStream.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Linq.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Linq.Expressions.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Linq.Parallel.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Linq.Queryable.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.Http.Rtc.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.NameResolution.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.NetworkInformation.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.Ping.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.Requests.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.Security.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.Sockets.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.WebHeaderCollection.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.WebSockets.Client.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.WebSockets.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ObjectModel.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Reflection.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Reflection.Emit.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Reflection.Emit.ILGeneration.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Reflection.Emit.Lightweight.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Reflection.Extensions.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Reflection.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Resources.Reader.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Resources.ResourceManager.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Resources.Writer.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.CompilerServices.VisualC.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Extensions.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Handles.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.InteropServices.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.InteropServices.RuntimeInformation.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.InteropServices.WindowsRuntime.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Numerics.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Serialization.Formatters.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Serialization.Json.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Serialization.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Serialization.Xml.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Claims.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Cryptography.Algorithms.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Cryptography.Csp.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Cryptography.Encoding.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Cryptography.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Cryptography.X509Certificates.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Principal.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.SecureString.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ServiceModel.Duplex.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ServiceModel.Http.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ServiceModel.NetTcp.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ServiceModel.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ServiceModel.Security.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Text.Encoding.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Text.Encoding.Extensions.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Text.RegularExpressions.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.Overlapped.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.Tasks.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.Tasks.Parallel.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.Thread.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.ThreadPool.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.Timer.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ValueTuple.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Xml.ReaderWriter.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Xml.XDocument.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Xml.XmlDocument.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Xml.XmlSerializer.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Xml.XPath.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Xml.XPath.XDocument.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/unityscript/UnityScript.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/unityscript/UnityScript.Lang.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/unityscript/Boo.Lang.dll + + + + + {EB5BB4EA-F22B-E8E9-3D41-C3930B798F7C} + UniRx + - - \ No newline at end of file + diff --git a/src/Assembly-CSharp.csproj b/src/Assembly-CSharp.csproj index 57b57f2..f6a4220 100644 --- a/src/Assembly-CSharp.csproj +++ b/src/Assembly-CSharp.csproj @@ -1,20 +1,22 @@  - 4 + latest + <_TargetFrameworkDirectories>non_empty_path_generated_by_unity.rider.package + <_FullFrameworkReferenceAssemblyPaths>non_empty_path_generated_by_unity.rider.package + true Debug AnyCPU 10.0.20506 2.0 - - + {4CFFDA30-0E63-039E-0DCA-DAC117CE2649} Library Properties Assembly-CSharp - v3.5 + v4.7.1 512 . @@ -23,7 +25,7 @@ full false Temp\bin\Debug\ - DEBUG;TRACE;UNITY_5_3_OR_NEWER;UNITY_5_4_OR_NEWER;UNITY_5_5_OR_NEWER;UNITY_5_6_OR_NEWER;UNITY_2017_1_OR_NEWER;UNITY_2017_2_OR_NEWER;UNITY_2017_3_OR_NEWER;UNITY_2018_1_OR_NEWER;UNITY_2018_1_0;UNITY_2018_1;UNITY_2018;PLATFORM_ARCH_64;UNITY_64;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_DUCK_TYPING;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_SPRITERENDERER_FLIPPING;ENABLE_SPRITES;ENABLE_GRID;ENABLE_TILEMAP;ENABLE_TERRAIN;ENABLE_RAKNET;ENABLE_DIRECTOR;ENABLE_UNET;ENABLE_LZMA;ENABLE_UNITYEVENTS;ENABLE_WEBCAM;ENABLE_WWW;ENABLE_CLOUD_SERVICES_COLLAB;ENABLE_CLOUD_SERVICES_COLLAB_SOFTLOCKS;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_HUB;ENABLE_CLOUD_PROJECT_ID;ENABLE_CLOUD_SERVICES_USE_WEBREQUEST;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_HUB;ENABLE_EDITOR_HUB_LICENSE;ENABLE_WEBSOCKET_CLIENT;ENABLE_DIRECTOR_AUDIO;ENABLE_DIRECTOR_TEXTURE;ENABLE_TIMELINE;ENABLE_EDITOR_METRICS;ENABLE_EDITOR_METRICS_CACHING;ENABLE_MANAGED_JOBS;ENABLE_MANAGED_TRANSFORM_JOBS;INCLUDE_DYNAMIC_GI;INCLUDE_GI;ENABLE_MONO_BDWGC;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;INCLUDE_PUBNUB;ENABLE_PLAYMODE_TESTS_RUNNER;ENABLE_VIDEO;ENABLE_PACKMAN;ENABLE_CUSTOM_RENDER_TEXTURE;ENABLE_LOCALIZATION;PLATFORM_STANDALONE_WIN;PLATFORM_STANDALONE;UNITY_STANDALONE_WIN;UNITY_STANDALONE;ENABLE_SUBSTANCE;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_UNITYWEBREQUEST;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_PURCHASING;ENABLE_CLOUD_SERVICES_CRASH_REPORTING;ENABLE_OUT_OF_PROCESS_CRASH_HANDLER;ENABLE_EVENT_QUEUE;ENABLE_CLUSTERINPUT;ENABLE_VR;ENABLE_AR;ENABLE_WEBSOCKET_HOST;ENABLE_MONO;NET_2_0_SUBSET;ENABLE_PROFILER;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN;ENABLE_UNITY_COLLECTIONS_CHECKS;UNITY_TEAM_LICENSE;ENABLE_VSTU + DEBUG;TRACE;UNITY_2019_2_3;UNITY_2019_2;UNITY_2019;UNITY_5_3_OR_NEWER;UNITY_5_4_OR_NEWER;UNITY_5_5_OR_NEWER;UNITY_5_6_OR_NEWER;UNITY_2017_1_OR_NEWER;UNITY_2017_2_OR_NEWER;UNITY_2017_3_OR_NEWER;UNITY_2017_4_OR_NEWER;UNITY_2018_1_OR_NEWER;UNITY_2018_2_OR_NEWER;UNITY_2018_3_OR_NEWER;UNITY_2018_4_OR_NEWER;UNITY_2019_1_OR_NEWER;UNITY_2019_2_OR_NEWER;PLATFORM_ARCH_64;UNITY_64;UNITY_INCLUDE_TESTS;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_TEXTURE_STREAMING;ENABLE_UNET;ENABLE_LZMA;ENABLE_UNITYEVENTS;ENABLE_WEBCAM;ENABLE_WWW;ENABLE_CLOUD_SERVICES_COLLAB;ENABLE_CLOUD_SERVICES_COLLAB_SOFTLOCKS;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_SERVICES_USE_WEBREQUEST;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_HUB_LICENSE;ENABLE_WEBSOCKET_CLIENT;ENABLE_DIRECTOR_AUDIO;ENABLE_DIRECTOR_TEXTURE;ENABLE_MANAGED_JOBS;ENABLE_MANAGED_TRANSFORM_JOBS;ENABLE_MANAGED_ANIMATION_JOBS;ENABLE_MANAGED_AUDIO_JOBS;INCLUDE_DYNAMIC_GI;ENABLE_MONO_BDWGC;ENABLE_SCRIPTING_GC_WBARRIERS;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;ENABLE_VIDEO;PLATFORM_STANDALONE_WIN;PLATFORM_STANDALONE;UNITY_STANDALONE_WIN;UNITY_STANDALONE;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_UNITYWEBREQUEST;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_PURCHASING;ENABLE_CLOUD_SERVICES_CRASH_REPORTING;ENABLE_OUT_OF_PROCESS_CRASH_HANDLER;ENABLE_EVENT_QUEUE;ENABLE_CLUSTER_SYNC;ENABLE_CLUSTERINPUT;ENABLE_VR;ENABLE_AR;ENABLE_WEBSOCKET_HOST;ENABLE_MONO;NET_STANDARD_2_0;ENABLE_PROFILER;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN;ENABLE_UNITY_COLLECTIONS_CHECKS;ENABLE_BURST_AOT;UNITY_TEAM_LICENSE;ENABLE_CUSTOM_RENDER_TEXTURE;ENABLE_DIRECTOR;ENABLE_LOCALIZATION;ENABLE_SPRITES;ENABLE_TERRAIN;ENABLE_TILEMAP;ENABLE_TIMELINE;CSHARP_7_OR_LATER;CSHARP_7_3_OR_NEWER prompt 4 0169 @@ -42,274 +44,632 @@ true true false - - - {E097FAD1-6243-4DAD-9C02-E9B9EFC3FFC1};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - Unity/VSTU - Game:1 - StandaloneWindows64:19 - 2018.1.0b10 + false + false - C:\Program Files\Unity\Hub\Editor\2018.1.0b10\Editor\Data\Managed/UnityEngine/UnityEngine.dll + C:\Program Files\Unity\Hub\Editor\2019.2.3f1\Editor\Data\Managed/UnityEngine/UnityEngine.dll - C:\Program Files\Unity\Hub\Editor\2018.1.0b10\Editor\Data\Managed/UnityEditor.dll + C:\Program Files\Unity\Hub\Editor\2019.2.3f1\Editor\Data\Managed/UnityEditor.dll - - - - - - - C:/Code/Unity/OS/bindingsrx/src/Library/ScriptAssemblies/Unity.PackageManagerUI.Editor.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.AIModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.ARModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.AccessibilityModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.AnimationModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.AssetBundleModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.AudioModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.BaselibModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.ClothModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.CloudWebServicesModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.ClusterInputModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.ClusterRendererModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.CoreModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.CrashReportingModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.DirectorModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.FacebookModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.GameCenterModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.GridModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.HotReloadModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.IMGUIModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.ImageConversionModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.InputModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.JSONSerializeModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.ParticleSystemModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.ParticlesLegacyModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.PerformanceReportingModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.PhysicsModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.Physics2DModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.ScreenCaptureModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.SharedInternalsModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.SpatialTrackingModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.SpriteMaskModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.SpriteShapeModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.StyleSheetsModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.SubstanceModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.TLSModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.TerrainModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.TerrainPhysicsModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.TextRenderingModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.TilemapModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.TimelineModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.UIModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.UIElementsModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.UNETModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.UmbraModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.UnityAnalyticsModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.UnityConnectModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestAssetBundleModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestAudioModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestTextureModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestWWWModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.VRModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.VehiclesModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.VideoModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.WebModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.WindModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/UnityEngine/UnityEngine.XRModule.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/Managed/Unity.Locator.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/UnityExtensions/Unity/GUISystem/UnityEngine.UI.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/UnityExtensions/Unity/Networking/UnityEngine.Networking.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/UnityExtensions/Unity/Timeline/RuntimeEditor/UnityEngine.Timeline.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/UnityExtensions/Unity/UIAutomation/UnityEngine.UIAutomation.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/UnityExtensions/Unity/UnityGoogleAudioSpatializer/RuntimeEditor/UnityEngine.GoogleAudioSpatializer.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/UnityExtensions/Unity/UnityHoloLens/RuntimeEditor/UnityEngine.HoloLens.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/UnityExtensions/Unity/UnitySpatialTracking/RuntimeEditor/UnityEngine.SpatialTracking.dll - - - C:/ProgramData/Unity/cache/packages/packages.unity.com/com.unity.ads@2.0.3/UnityEngine.Advertisements.dll - - - C:/ProgramData/Unity/cache/packages/packages.unity.com/com.unity.analytics@2.0.13/UnityEngine.Analytics.dll - - - C:/ProgramData/Unity/cache/packages/packages.unity.com/com.unity.purchasing@2.0.1/UnityEngine.Purchasing.dll - - - C:/ProgramData/Unity/cache/packages/packages.unity.com/com.unity.standardevents@1.0.10/UnityEngine.StandardEvents.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/MonoBleedingEdge/lib/mono/unity/mscorlib.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/MonoBleedingEdge/lib/mono/unity/System.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/MonoBleedingEdge/lib/mono/unity/System.Core.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/MonoBleedingEdge/lib/mono/unity/System.Runtime.Serialization.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/MonoBleedingEdge/lib/mono/unity/System.Xml.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/MonoBleedingEdge/lib/mono/unity/System.Xml.Linq.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/MonoBleedingEdge/lib/mono/unity/UnityScript.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/MonoBleedingEdge/lib/mono/unity/UnityScript.Lang.dll - - - C:/Program Files/Unity/Hub/Editor/2018.1.0b10/Editor/Data/MonoBleedingEdge/lib/mono/unity/Boo.Lang.dll - + + + + + + + E:/Code/open-source/bindingsrx/src/Library/ScriptAssemblies/Unity.Timeline.Editor.dll + + + E:/Code/open-source/bindingsrx/src/Library/ScriptAssemblies/com.unity.multiplayer-hlapi.Editor.dll + + + E:/Code/open-source/bindingsrx/src/Library/ScriptAssemblies/Unity.VSCode.Editor.dll + + + E:/Code/open-source/bindingsrx/src/Library/ScriptAssemblies/Unity.TextMeshPro.Editor.dll + + + E:/Code/open-source/bindingsrx/src/Library/ScriptAssemblies/UnityEngine.UI.dll + + + E:/Code/open-source/bindingsrx/src/Library/ScriptAssemblies/Unity.Timeline.dll + + + E:/Code/open-source/bindingsrx/src/Library/ScriptAssemblies/Unity.CollabProxy.Editor.dll + + + E:/Code/open-source/bindingsrx/src/Library/ScriptAssemblies/com.unity.multiplayer-weaver.Editor.dll + + + E:/Code/open-source/bindingsrx/src/Library/ScriptAssemblies/UnityEngine.XR.LegacyInputHelpers.dll + + + E:/Code/open-source/bindingsrx/src/Library/ScriptAssemblies/Unity.Rider.Editor.dll + + + E:/Code/open-source/bindingsrx/src/Library/ScriptAssemblies/Unity.2D.Sprite.Editor.dll + + + E:/Code/open-source/bindingsrx/src/Library/ScriptAssemblies/Unity.2D.Tilemap.Editor.dll + + + E:/Code/open-source/bindingsrx/src/Library/ScriptAssemblies/UnityEditor.SpatialTracking.dll + + + E:/Code/open-source/bindingsrx/src/Library/ScriptAssemblies/UnityEngine.SpatialTracking.dll + + + E:/Code/open-source/bindingsrx/src/Library/ScriptAssemblies/Unity.TextMeshPro.dll + + + E:/Code/open-source/bindingsrx/src/Library/ScriptAssemblies/Unity.Analytics.DataPrivacy.dll + + + E:/Code/open-source/bindingsrx/src/Library/ScriptAssemblies/UnityEditor.XR.LegacyInputHelpers.dll + + + E:/Code/open-source/bindingsrx/src/Library/ScriptAssemblies/UnityEditor.UI.dll + + + E:/Code/open-source/bindingsrx/src/Library/ScriptAssemblies/com.unity.multiplayer-hlapi.Runtime.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.AIModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.ARModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.AccessibilityModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.AndroidJNIModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.AnimationModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.AssetBundleModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.AudioModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.ClothModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.ClusterInputModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.ClusterRendererModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.CoreModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.CrashReportingModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.DSPGraphModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.DirectorModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.FileSystemHttpModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.GameCenterModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.GridModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.HotReloadModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.IMGUIModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.ImageConversionModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.InputModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.InputLegacyModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.JSONSerializeModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.LocalizationModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.ParticleSystemModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.PerformanceReportingModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.PhysicsModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.Physics2DModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.ProfilerModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.ScreenCaptureModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.SharedInternalsModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.SpriteMaskModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.SpriteShapeModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.StreamingModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.SubstanceModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.TLSModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.TerrainModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.TerrainPhysicsModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.TextCoreModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.TextRenderingModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.TilemapModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.UIModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.UIElementsModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.UNETModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.UmbraModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityAnalyticsModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityConnectModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityTestProtocolModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestAssetBundleModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestAudioModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestTextureModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestWWWModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.VFXModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.VRModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.VehiclesModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.VideoModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.WindModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.XRModule.dll + + + E:/Code/open-source/bindingsrx/src/Library/PackageCache/com.unity.analytics@3.3.2/Unity.Analytics.Editor.dll + + + E:/Code/open-source/bindingsrx/src/Library/PackageCache/com.unity.analytics@3.3.2/Unity.Analytics.StandardEvents.dll + + + E:/Code/open-source/bindingsrx/src/Library/PackageCache/com.unity.analytics@3.3.2/Unity.Analytics.Tracker.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/mscorlib.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Core.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Runtime.Serialization.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Xml.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Xml.Linq.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Numerics.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Numerics.Vectors.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Net.Http.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Microsoft.CSharp.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/System.Data.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/Microsoft.Win32.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/netstandard.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.AppContext.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Collections.Concurrent.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Collections.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Collections.NonGeneric.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Collections.Specialized.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ComponentModel.Annotations.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ComponentModel.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ComponentModel.EventBasedAsync.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ComponentModel.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ComponentModel.TypeConverter.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Console.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Data.Common.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.Contracts.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.Debug.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.FileVersionInfo.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.Process.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.StackTrace.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.TextWriterTraceListener.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.Tools.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Diagnostics.TraceSource.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Drawing.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Dynamic.Runtime.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Globalization.Calendars.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Globalization.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Globalization.Extensions.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.Compression.ZipFile.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.FileSystem.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.FileSystem.DriveInfo.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.FileSystem.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.FileSystem.Watcher.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.IsolatedStorage.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.MemoryMappedFiles.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.Pipes.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.IO.UnmanagedMemoryStream.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Linq.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Linq.Expressions.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Linq.Parallel.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Linq.Queryable.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.Http.Rtc.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.NameResolution.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.NetworkInformation.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.Ping.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.Requests.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.Security.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.Sockets.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.WebHeaderCollection.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.WebSockets.Client.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Net.WebSockets.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ObjectModel.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Reflection.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Reflection.Emit.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Reflection.Emit.ILGeneration.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Reflection.Emit.Lightweight.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Reflection.Extensions.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Reflection.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Resources.Reader.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Resources.ResourceManager.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Resources.Writer.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.CompilerServices.VisualC.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Extensions.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Handles.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.InteropServices.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.InteropServices.RuntimeInformation.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.InteropServices.WindowsRuntime.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Numerics.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Serialization.Formatters.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Serialization.Json.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Serialization.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Runtime.Serialization.Xml.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Claims.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Cryptography.Algorithms.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Cryptography.Csp.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Cryptography.Encoding.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Cryptography.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Cryptography.X509Certificates.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.Principal.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Security.SecureString.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ServiceModel.Duplex.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ServiceModel.Http.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ServiceModel.NetTcp.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ServiceModel.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ServiceModel.Security.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Text.Encoding.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Text.Encoding.Extensions.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Text.RegularExpressions.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.Overlapped.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.Tasks.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.Tasks.Parallel.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.Thread.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.ThreadPool.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Threading.Timer.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.ValueTuple.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Xml.ReaderWriter.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Xml.XDocument.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Xml.XmlDocument.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Xml.XmlSerializer.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Xml.XPath.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/Facades/System.Xml.XPath.XDocument.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/unityscript/UnityScript.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/unityscript/UnityScript.Lang.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/MonoBleedingEdge/lib/mono/unityscript/Boo.Lang.dll + {E53CDB40-1DF9-8A61-5878-81243AFDF805} Assembly-CSharp-firstpass + + {EB5BB4EA-F22B-E8E9-3D41-C3930B798F7C} + UniRx + - - \ No newline at end of file + diff --git a/src/Assets/Examples/InputBindings/SetupToggleBinding.cs b/src/Assets/Examples/InputBindings/SetupToggleBinding.cs index 7daaada..594d7a1 100644 --- a/src/Assets/Examples/InputBindings/SetupToggleBinding.cs +++ b/src/Assets/Examples/InputBindings/SetupToggleBinding.cs @@ -19,7 +19,7 @@ void Start() { ToggleElement.BindToggleTo(ToggleState); - var textualRepresentation = ToggleState.Select(GetTextualState).ToReactiveProperty(); + var textualRepresentation = ToggleState.Select(GetTextualState).ToReadOnlyReactiveProperty(); textualRepresentation.AddTo(TextElement); TextElement.BindTextTo(textualRepresentation); diff --git a/src/Assets/Plugins/BindingsRx/Bindings/GameObjectExtensions.cs b/src/Assets/Plugins/BindingsRx/Bindings/GameObjectExtensions.cs index f4ab586..e65995d 100644 --- a/src/Assets/Plugins/BindingsRx/Bindings/GameObjectExtensions.cs +++ b/src/Assets/Plugins/BindingsRx/Bindings/GameObjectExtensions.cs @@ -36,5 +36,48 @@ public static IDisposable BindTagTo(this GameObject input, IReactiveProperty getter, Action setter, BindingTypes bindingType = BindingTypes.Default, params IFilter[] filters) { return GenericBindings.Bind(() => input.tag, x => input.tag = x, getter, setter, bindingType, filters).AddTo(input); } + + public static IDisposable BindChildPrefabsTo(this GameObject input, IReadOnlyReactiveCollection list, + GameObject prefab, Action onChildCreated = null, Action onChildRemoving = null) + { return BindChildPrefabsTo(input, list, prefab, GameObject.Instantiate, onChildCreated, onChildRemoving); } + + public static IDisposable BindChildPrefabsTo(this GameObject input, IReadOnlyReactiveCollection list, + GameObject prefab, Func instantiator, + Action onChildCreated = null, Action onChildRemoving = null) + { + var disposable = new CompositeDisposable(); + + void onElementAdded(CollectionAddEvent data) + { + var newChild = instantiator(prefab, input.transform); + onChildCreated?.Invoke(data.Value, newChild); + } + + void onElementUpdated(CollectionReplaceEvent data) + { + var existingChild = input.transform.GetChild(data.Index); + onChildCreated?.Invoke(data.NewValue, existingChild.gameObject); + } + + void onElementRemoved(CollectionRemoveEvent data) + { + var existingChild = input.transform.GetChild(data.Index); + onChildRemoving?.Invoke(data.Value, existingChild.gameObject); + GameObject.Destroy(existingChild); + } + + list.ObserveAdd().Subscribe(onElementAdded).AddTo(disposable); + list.ObserveReplace().Subscribe(onElementUpdated).AddTo(disposable); + list.ObserveRemove().Subscribe(onElementRemoved).AddTo(disposable); + + input.transform.DeleteAllChildren(); + foreach (var element in list) + { + var newChild = instantiator(prefab, input.transform); + onChildCreated?.Invoke(element, newChild); + } + + return disposable.AddTo(input); + } } } \ No newline at end of file diff --git a/src/Assets/Plugins/BindingsRx/Bindings/GenericBindings.cs b/src/Assets/Plugins/BindingsRx/Bindings/GenericBindings.cs index 597f66d..6fcbd79 100644 --- a/src/Assets/Plugins/BindingsRx/Bindings/GenericBindings.cs +++ b/src/Assets/Plugins/BindingsRx/Bindings/GenericBindings.cs @@ -27,6 +27,14 @@ public static IDisposable Bind(IReactiveProperty propertyA , IReactiveProp return new CompositeDisposable(propertyABinding, propertyBBinding); } + public static IDisposable Bind(IReactiveProperty propertyA , IReadOnlyReactiveProperty propertyB, params IFilter[] filters) + { + return propertyB + .ApplyInputFilters(filters) + .DistinctUntilChanged() + .Subscribe(x => propertyA.Value = x); + } + public static IDisposable Bind(Func propertyAGetter, Action propertyASetter, IReactiveProperty propertyB, BindingTypes bindingTypes = BindingTypes.Default, params IFilter[] filters) { var propertyBBinding = propertyB @@ -46,6 +54,14 @@ public static IDisposable Bind(Func propertyAGetter, Action propertyASe return new CompositeDisposable(propertyABinding, propertyBBinding); } + public static IDisposable Bind(Action propertyASetter, IReadOnlyReactiveProperty propertyB, params IFilter[] filters) + { + return propertyB + .ApplyInputFilters(filters) + .DistinctUntilChanged() + .Subscribe(propertyASetter); + } + public static IDisposable Bind(Func propertyAGetter, Action propertyASetter, Func propertyBGetter, Action propertyBSetter, BindingTypes bindingTypes = BindingTypes.Default, params IFilter[] filters) { var propertyBBinding = Observable.EveryUpdate() diff --git a/src/Assets/Plugins/BindingsRx/Bindings/TextExtensions.cs b/src/Assets/Plugins/BindingsRx/Bindings/TextExtensions.cs index a205093..6d87c73 100644 --- a/src/Assets/Plugins/BindingsRx/Bindings/TextExtensions.cs +++ b/src/Assets/Plugins/BindingsRx/Bindings/TextExtensions.cs @@ -9,6 +9,9 @@ namespace BindingsRx.Bindings { public static class TextExtensions { + public static IDisposable BindTextTo(this Text input, IReadOnlyReactiveProperty property, params IFilter[] filters) + { return GenericBindings.Bind(x => input.text = x, property, filters).AddTo(input); } + public static IDisposable BindTextTo(this Text input, IReactiveProperty property, params IFilter[] filters) { return GenericBindings.Bind(() => input.text, x => input.text = x, property, BindingTypes.OneWay, filters).AddTo(input); } @@ -38,12 +41,18 @@ public static IDisposable BindTextTo(this Text input, Func getter, IConver public static IDisposable BindFontSizeTo(this Text input, IReactiveProperty property, params IFilter[] filters) { return GenericBindings.Bind(() => input.fontSize, x => input.fontSize = x, property, BindingTypes.OneWay, filters).AddTo(input); } + + public static IDisposable BindFontSizeTo(this Text input, IReadOnlyReactiveProperty property, params IFilter[] filters) + { return GenericBindings.Bind(x => input.fontSize = x, property, filters).AddTo(input); } public static IDisposable BindFontSizeTo(this Text input, Func getter, params IFilter[] filters) { return GenericBindings.Bind(() => input.fontSize, x => input.fontSize = x, getter, null, BindingTypes.OneWay, filters).AddTo(input); } public static IDisposable BindColorTo(this Text input, IReactiveProperty property, BindingTypes bindingType = BindingTypes.Default, params IFilter[] filters) { return GenericBindings.Bind(() => input.color, x => input.color = x, property, bindingType, filters).AddTo(input); } + + public static IDisposable BindColorTo(this Text input, IReadOnlyReactiveProperty property, params IFilter[] filters) + { return GenericBindings.Bind(x => input.color = x, property, filters).AddTo(input); } public static IDisposable BindColorTo(this Text input, Func getter, Action setter, BindingTypes bindingType = BindingTypes.Default, params IFilter[] filters) { return GenericBindings.Bind(() => input.color, x => input.color = x, getter, setter, bindingType, filters).AddTo(input); } diff --git a/src/Assets/Plugins/BindingsRx/Bindings/TransformExtensions.cs b/src/Assets/Plugins/BindingsRx/Bindings/TransformExtensions.cs index 3dddfbf..a6fbf8b 100644 --- a/src/Assets/Plugins/BindingsRx/Bindings/TransformExtensions.cs +++ b/src/Assets/Plugins/BindingsRx/Bindings/TransformExtensions.cs @@ -24,5 +24,14 @@ public static IDisposable BindScaleTo(this Transform input, IReactiveProperty getter, Action setter, BindingTypes bindingType = BindingTypes.Default, params IFilter[] filters) { return GenericBindings.Bind(() => input.localScale, x => input.transform.localScale = x, getter, setter, bindingType, filters).AddTo(input); } + + public static void DeleteAllChildren(this Transform transform) + { + for (var i = transform.childCount - 1; i >= 0; i--) + { + var child = transform.GetChild(i); + GameObject.Destroy(child.gameObject); + } + } } } \ No newline at end of file diff --git a/src/Assets/Plugins/BindingsRx/Extensions/IObservableExtensions.cs b/src/Assets/Plugins/BindingsRx/Extensions/IObservableExtensions.cs index 9760dbf..b4e16ce 100644 --- a/src/Assets/Plugins/BindingsRx/Extensions/IObservableExtensions.cs +++ b/src/Assets/Plugins/BindingsRx/Extensions/IObservableExtensions.cs @@ -1,4 +1,4 @@ -using System.Collections.Generic; +using System; using BindingsRx.Filters; using UniRx; diff --git a/src/Assets/Plugins/BindingsRx/Extensions/IReactivePropertyExtensions.cs b/src/Assets/Plugins/BindingsRx/Extensions/IReactivePropertyExtensions.cs index 5902f08..57e7be7 100644 --- a/src/Assets/Plugins/BindingsRx/Extensions/IReactivePropertyExtensions.cs +++ b/src/Assets/Plugins/BindingsRx/Extensions/IReactivePropertyExtensions.cs @@ -1,10 +1,8 @@ -using UniRx; - + namespace BindingsRx.Extensions { public static class IReactivePropertyExtensions { - public static ReactiveProperty ToTextualProperty(this IReactiveProperty nonStringProperty) - { return nonStringProperty.Select(x => x.ToString()).ToReactiveProperty(); } + } } \ No newline at end of file diff --git a/src/Assets/Plugins/UniRx.meta b/src/Assets/Plugins/UniRx.meta index e75374f..e8f39e0 100644 --- a/src/Assets/Plugins/UniRx.meta +++ b/src/Assets/Plugins/UniRx.meta @@ -1,9 +1,8 @@ fileFormatVersion: 2 guid: 998cc3f9e78a04d4b874f69d2bc55c98 folderAsset: yes -timeCreated: 1485556057 -licenseType: Free DefaultImporter: + externalObjects: {} userData: assetBundleName: assetBundleVariant: diff --git a/src/Assets/Plugins/UniRx/Examples.meta b/src/Assets/Plugins/UniRx/Examples.meta new file mode 100644 index 0000000..f534230 --- /dev/null +++ b/src/Assets/Plugins/UniRx/Examples.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 978ae90fe3a2bba4f8dd7ab0f7c029dc +folderAsset: yes +timeCreated: 1455373896 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/Assets/Plugins/UniRx/Examples/Sample01_ObservableWWW.cs b/src/Assets/Plugins/UniRx/Examples/Sample01_ObservableWWW.cs new file mode 100644 index 0000000..0c629da --- /dev/null +++ b/src/Assets/Plugins/UniRx/Examples/Sample01_ObservableWWW.cs @@ -0,0 +1,90 @@ +#if !(UNITY_METRO || UNITY_WP8) + +#if UNITY_2018_3_OR_NEWER +#pragma warning disable CS0618 +#endif + +using UnityEngine; + +namespace UniRx.Examples +{ + // sample script, attach your object. + public class Sample01_ObservableWWW : MonoBehaviour + { + void Start() + { + // Basic: Download from google. + { + ObservableWWW.Get("http://google.co.jp/") + .Subscribe( + x => Debug.Log(x.Substring(0, 100)), // onSuccess + ex => Debug.LogException(ex)); // onError + } + + // Linear Pattern with LINQ Query Expressions + // download after google, start bing download + { + var query = from google in ObservableWWW.Get("http://google.com/") + from bing in ObservableWWW.Get("http://bing.com/") + select new { google, bing }; + + var cancel = query.Subscribe(x => Debug.Log(x.google.Substring(0, 100) + ":" + x.bing.Substring(0, 100))); + + // Call Dispose is cancel downloading. + cancel.Dispose(); + } + + // Observable.WhenAll is for parallel asynchronous operation + // (It's like Observable.Zip but specialized for single async operations like Task.WhenAll of .NET 4) + { + var parallel = Observable.WhenAll( + ObservableWWW.Get("http://google.com/"), + ObservableWWW.Get("http://bing.com/"), + ObservableWWW.Get("http://unity3d.com/")); + + parallel.Subscribe(xs => + { + Debug.Log(xs[0].Substring(0, 100)); // google + Debug.Log(xs[1].Substring(0, 100)); // bing + Debug.Log(xs[2].Substring(0, 100)); // unity + }); + } + + // with Progress + { + // notifier for progress + var progressNotifier = new ScheduledNotifier(); + progressNotifier.Subscribe(x => Debug.Log(x)); // write www.progress + + // pass notifier to WWW.Get/Post + ObservableWWW.Get("http://google.com/", progress: progressNotifier).Subscribe(); + } + + // with Error + { + // If WWW has .error, ObservableWWW throws WWWErrorException to onError pipeline. + // WWWErrorException has RawErrorMessage, HasResponse, StatusCode, ResponseHeaders + ObservableWWW.Get("http://www.google.com/404") + .CatchIgnore((WWWErrorException ex) => + { + Debug.Log(ex.RawErrorMessage); + if (ex.HasResponse) + { + Debug.Log(ex.StatusCode); + } + foreach (var item in ex.ResponseHeaders) + { + Debug.Log(item.Key + ":" + item.Value); + } + }) + .Subscribe(); + } + } + } +} + +#endif + +#if UNITY_2018_3_OR_NEWER +#pragma warning restore CS0618 +#endif \ No newline at end of file diff --git a/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/ObservableMonoBehaviour.cs.meta b/src/Assets/Plugins/UniRx/Examples/Sample01_ObservableWWW.cs.meta similarity index 85% rename from src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/ObservableMonoBehaviour.cs.meta rename to src/Assets/Plugins/UniRx/Examples/Sample01_ObservableWWW.cs.meta index 462e462..7d6e662 100644 --- a/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/ObservableMonoBehaviour.cs.meta +++ b/src/Assets/Plugins/UniRx/Examples/Sample01_ObservableWWW.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: e57124d833524f44683d4699fadca8e0 +guid: bf3770fc51ac89f45987dbde37ae81bd timeCreated: 1455373901 licenseType: Store MonoImporter: diff --git a/src/Assets/Plugins/UniRx/Examples/Sample02_ObservableTriggers.cs b/src/Assets/Plugins/UniRx/Examples/Sample02_ObservableTriggers.cs new file mode 100644 index 0000000..c054aed --- /dev/null +++ b/src/Assets/Plugins/UniRx/Examples/Sample02_ObservableTriggers.cs @@ -0,0 +1,24 @@ +using UnityEngine; +using UniRx.Triggers; // Triggers Namepsace +using System; + +namespace UniRx.Examples +{ + public class Sample02_ObservableTriggers : MonoBehaviour + { + void Start() + { + // Get the plain object + var cube = GameObject.CreatePrimitive(PrimitiveType.Cube); + + // Add ObservableXxxTrigger for handle MonoBehaviour's event as Observable + cube.AddComponent() + .UpdateAsObservable() + .SampleFrame(30) + .Subscribe(x => Debug.Log("cube"), () => Debug.Log("destroy")); + + // destroy after 3 second:) + GameObject.Destroy(cube, 3f); + } + } +} \ No newline at end of file diff --git a/src/Assets/Plugins/UniRx/Scripts/InternalUtil/ReflectionAccessor.cs.meta b/src/Assets/Plugins/UniRx/Examples/Sample02_ObservableTriggers.cs.meta similarity index 76% rename from src/Assets/Plugins/UniRx/Scripts/InternalUtil/ReflectionAccessor.cs.meta rename to src/Assets/Plugins/UniRx/Examples/Sample02_ObservableTriggers.cs.meta index e1c5ea5..af1e429 100644 --- a/src/Assets/Plugins/UniRx/Scripts/InternalUtil/ReflectionAccessor.cs.meta +++ b/src/Assets/Plugins/UniRx/Examples/Sample02_ObservableTriggers.cs.meta @@ -1,6 +1,6 @@ fileFormatVersion: 2 -guid: 88d8b380ac449bb4fa107a002f6e6ca7 -timeCreated: 1455373900 +guid: cb5e978d683e94f4d9c2c81be80f93a7 +timeCreated: 1455373901 licenseType: Store MonoImporter: serializedVersion: 2 diff --git a/src/Assets/Plugins/UniRx/Examples/Sample03_GameObjectAsObservable.cs b/src/Assets/Plugins/UniRx/Examples/Sample03_GameObjectAsObservable.cs new file mode 100644 index 0000000..2c0d0e4 --- /dev/null +++ b/src/Assets/Plugins/UniRx/Examples/Sample03_GameObjectAsObservable.cs @@ -0,0 +1,23 @@ +#if !(UNITY_IPHONE || UNITY_ANDROID || UNITY_METRO) + +using UnityEngine; +using UniRx.Triggers; // for enable gameObject.EventAsObservbale() + +namespace UniRx.Examples +{ + public class Sample03_GameObjectAsObservable : MonoBehaviour + { + void Start() + { + // All events can subscribe by ***AsObservable if enables UniRx.Triggers + this.OnMouseDownAsObservable() + .SelectMany(_ => this.gameObject.UpdateAsObservable()) + .TakeUntil(this.gameObject.OnMouseUpAsObservable()) + .Select(_ => Input.mousePosition) + .RepeatUntilDestroy(this) + .Subscribe(x => Debug.Log(x), ()=> Debug.Log("!!!" + "complete")); + } + } +} + +#endif \ No newline at end of file diff --git a/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/TypedMonoBehaviour.cs.meta b/src/Assets/Plugins/UniRx/Examples/Sample03_GameObjectAsObservable.cs.meta similarity index 85% rename from src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/TypedMonoBehaviour.cs.meta rename to src/Assets/Plugins/UniRx/Examples/Sample03_GameObjectAsObservable.cs.meta index a0aa322..e6cd393 100644 --- a/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/TypedMonoBehaviour.cs.meta +++ b/src/Assets/Plugins/UniRx/Examples/Sample03_GameObjectAsObservable.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 0d6bb561b9a027f4d8ee0cf68f9df4dc +guid: 005e349e5ccdd2b47bddc813b81afe40 timeCreated: 1455373897 licenseType: Store MonoImporter: diff --git a/src/Assets/Plugins/UniRx/Examples/Sample04_ConvertFromUnityCallback.cs b/src/Assets/Plugins/UniRx/Examples/Sample04_ConvertFromUnityCallback.cs new file mode 100644 index 0000000..549d8c2 --- /dev/null +++ b/src/Assets/Plugins/UniRx/Examples/Sample04_ConvertFromUnityCallback.cs @@ -0,0 +1,66 @@ +using System; +using UnityEngine; + +namespace UniRx.Examples +{ + public class Sample04_ConvertFromUnityCallback : MonoBehaviour + { + // This is about log but more reliable log sample => Sample11_Logger + + private class LogCallback + { + public string Condition; + public string StackTrace; + public UnityEngine.LogType LogType; + } + + static class LogHelper + { + // If static register callback, use Subject for event branching. + +#if (UNITY_4_0 || UNITY_4_1 || UNITY_4_2 || UNITY_4_3 || UNITY_4_4 || UNITY_4_5 || UNITY_4_6 || UNITY_4_7) + static Subject subject; + + public static IObservable LogCallbackAsObservable() + { + if (subject == null) + { + subject = new Subject(); + + // Publish to Subject in callback + + + UnityEngine.Application.RegisterLogCallback((condition, stackTrace, type) => + { + subject.OnNext(new LogCallback { Condition = condition, StackTrace = stackTrace, LogType = type }); + }); + } + + return subject.AsObservable(); + } + +#else + // If standard evetns, you can use Observable.FromEvent. + + public static IObservable LogCallbackAsObservable() + { + return Observable.FromEvent( + h => (condition, stackTrace, type) => h(new LogCallback { Condition = condition, StackTrace = stackTrace, LogType = type }), + h => Application.logMessageReceived += h, h => Application.logMessageReceived -= h); + } +#endif + } + + void Awake() + { + // method is separatable and composable + LogHelper.LogCallbackAsObservable() + .Where(x => x.LogType == LogType.Warning) + .Subscribe(x => Debug.Log(x)); + + LogHelper.LogCallbackAsObservable() + .Where(x => x.LogType == LogType.Error) + .Subscribe(x => Debug.Log(x)); + } + } +} \ No newline at end of file diff --git a/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/PresenterBase.cs.meta b/src/Assets/Plugins/UniRx/Examples/Sample04_ConvertFromUnityCallback.cs.meta similarity index 85% rename from src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/PresenterBase.cs.meta rename to src/Assets/Plugins/UniRx/Examples/Sample04_ConvertFromUnityCallback.cs.meta index 8c82022..939ce3f 100644 --- a/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/PresenterBase.cs.meta +++ b/src/Assets/Plugins/UniRx/Examples/Sample04_ConvertFromUnityCallback.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 57bffdb091ac4164d850493fc89e9d6c +guid: 73e69fd4bbb724045a4e06050fbc5af3 timeCreated: 1455373899 licenseType: Store MonoImporter: diff --git a/src/Assets/Plugins/UniRx/Examples/Sample05_ConvertFromCoroutine.cs b/src/Assets/Plugins/UniRx/Examples/Sample05_ConvertFromCoroutine.cs new file mode 100644 index 0000000..8c5a37a --- /dev/null +++ b/src/Assets/Plugins/UniRx/Examples/Sample05_ConvertFromCoroutine.cs @@ -0,0 +1,45 @@ +using System; +using System.Collections; +using System.Threading; +using UnityEngine; +#if UNITY_2018_3_OR_NEWER +#pragma warning disable CS0618 +#endif + +namespace UniRx.Examples +{ + public class Sample05_ConvertFromCoroutine + { + // public method + public static IObservable GetWWW(string url) + { + // convert coroutine to IObservable + return Observable.FromCoroutine((observer, cancellationToken) => GetWWWCore(url, observer, cancellationToken)); + } + + // IEnumerator with callback + static IEnumerator GetWWWCore(string url, IObserver observer, CancellationToken cancellationToken) + { + var www = new UnityEngine.WWW(url); + while (!www.isDone && !cancellationToken.IsCancellationRequested) + { + yield return null; + } + + if (cancellationToken.IsCancellationRequested) yield break; + + if (www.error != null) + { + observer.OnError(new Exception(www.error)); + } + else + { + observer.OnNext(www.text); + observer.OnCompleted(); + } + } + } +} +#if UNITY_2018_3_OR_NEWER +#pragma warning restore CS0618 +#endif \ No newline at end of file diff --git a/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/AotSafeExtensions.cs.meta b/src/Assets/Plugins/UniRx/Examples/Sample05_ConvertFromCoroutine.cs.meta similarity index 76% rename from src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/AotSafeExtensions.cs.meta rename to src/Assets/Plugins/UniRx/Examples/Sample05_ConvertFromCoroutine.cs.meta index bac65ab..4814aca 100644 --- a/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/AotSafeExtensions.cs.meta +++ b/src/Assets/Plugins/UniRx/Examples/Sample05_ConvertFromCoroutine.cs.meta @@ -1,6 +1,6 @@ fileFormatVersion: 2 -guid: b54afb590b8d9f149aac39f480c8d4c0 -timeCreated: 1455373900 +guid: 41f3df73f7da66b4980f6d9a86927796 +timeCreated: 1455373898 licenseType: Store MonoImporter: serializedVersion: 2 diff --git a/src/Assets/Plugins/UniRx/Examples/Sample06_ConvertToCoroutine.cs b/src/Assets/Plugins/UniRx/Examples/Sample06_ConvertToCoroutine.cs new file mode 100644 index 0000000..e7ec1da --- /dev/null +++ b/src/Assets/Plugins/UniRx/Examples/Sample06_ConvertToCoroutine.cs @@ -0,0 +1,62 @@ +using System; +using System.Collections; +using UnityEngine; + +namespace UniRx.Examples +{ + public class Sample06_ConvertToCoroutine : MonoBehaviour + { + // convert IObservable to Coroutine + void Start() + { + StartCoroutine(ComplexCoroutineTest()); + } + + IEnumerator ComplexCoroutineTest() + { + yield return new WaitForSeconds(1); + + var v = default(int); + yield return Observable.Range(1, 10).StartAsCoroutine(x => v = x); + + Debug.Log(v); // 10(callback is last value) + yield return new WaitForSeconds(3); + + yield return Observable.Return(100).StartAsCoroutine(x => v = x); + + Debug.Log(v); // 100 + } + + // Note:ToAwaitableEnumerator/StartAsCoroutine/LazyTask are obsolete way on Unity 5.3 + // You can use ToYieldInstruction. + +#if !(UNITY_4_0 || UNITY_4_1 || UNITY_4_2 || UNITY_4_3 || UNITY_4_4 || UNITY_4_5 || UNITY_4_6 || UNITY_5_0 || UNITY_5_1 || UNITY_5_2) +#if UNITY_2018_3_OR_NEWER +#pragma warning disable CS0618 +#endif + + IEnumerator TestNewCustomYieldInstruction() + { + // wait Rx Observable. + yield return Observable.Timer(TimeSpan.FromSeconds(1)).ToYieldInstruction(); + + // you can change the scheduler(this is ignore Time.scale) + yield return Observable.Timer(TimeSpan.FromSeconds(1), Scheduler.MainThreadIgnoreTimeScale).ToYieldInstruction(); + + // get return value from ObservableYieldInstruction + var o = ObservableWWW.Get("http://unity3d.com/").ToYieldInstruction(throwOnError: false); + yield return o; + + if (o.HasError) { Debug.Log(o.Error.ToString()); } + if (o.HasResult) { Debug.Log(o.Result); } + + // other sample(wait until transform.position.y >= 100) + yield return this.ObserveEveryValueChanged(x => x.transform).FirstOrDefault(x => x.position.y >= 100).ToYieldInstruction(); + } +#if UNITY_2018_3_OR_NEWER +#pragma warning restore CS0618 +#endif +#endif + + } +} \ No newline at end of file diff --git a/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/UnityEqualityComparer.cs.meta b/src/Assets/Plugins/UniRx/Examples/Sample06_ConvertToCoroutine.cs.meta similarity index 85% rename from src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/UnityEqualityComparer.cs.meta rename to src/Assets/Plugins/UniRx/Examples/Sample06_ConvertToCoroutine.cs.meta index 87e1fcb..70a1bb7 100644 --- a/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/UnityEqualityComparer.cs.meta +++ b/src/Assets/Plugins/UniRx/Examples/Sample06_ConvertToCoroutine.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 590dc07f5b0787f418da909b37281f86 +guid: 5da8247fbc4a4c84e96a727b44903214 timeCreated: 1455373899 licenseType: Store MonoImporter: diff --git a/src/Assets/Plugins/UniRx/Examples/Sample07_OrchestratIEnumerator.cs b/src/Assets/Plugins/UniRx/Examples/Sample07_OrchestratIEnumerator.cs new file mode 100644 index 0000000..fa0fcdc --- /dev/null +++ b/src/Assets/Plugins/UniRx/Examples/Sample07_OrchestratIEnumerator.cs @@ -0,0 +1,45 @@ +#pragma warning disable 0168 +#pragma warning disable 0219 + +using System; +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using UnityEngine; + +namespace UniRx.Examples +{ + public class Sample07_OrchestratIEnumerator : MonoBehaviour + { + // two coroutines + IEnumerator AsyncA() + { + Debug.Log("a start"); + yield return new WaitForSeconds(3); + Debug.Log("a end"); + } + + IEnumerator AsyncB() + { + Debug.Log("b start"); + yield return new WaitForEndOfFrame(); + Debug.Log("b end"); + } + + void Start() + { + // after completed AsyncA, run AsyncB as continuous routine. + // UniRx expands SelectMany(IEnumerator) as SelectMany(IEnumerator.ToObservable()) + var cancel = Observable.FromCoroutine(AsyncA) + .SelectMany(AsyncB) + .Subscribe(); + + // If you want to stop Coroutine(as cancel), call subscription.Dispose() + // cancel.Dispose(); + } + } +} + +#pragma warning restore 0219 +#pragma warning restore 0168 \ No newline at end of file diff --git a/src/Assets/Plugins/UniRx/Examples/Sample07_OrchestratIEnumerator.cs.meta b/src/Assets/Plugins/UniRx/Examples/Sample07_OrchestratIEnumerator.cs.meta new file mode 100644 index 0000000..8ed0986 --- /dev/null +++ b/src/Assets/Plugins/UniRx/Examples/Sample07_OrchestratIEnumerator.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: d437607dfffa8ff428bda3366354078d +timeCreated: 1455373901 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/Assets/Plugins/UniRx/Examples/Sample08_DetectDoubleClick.cs b/src/Assets/Plugins/UniRx/Examples/Sample08_DetectDoubleClick.cs new file mode 100644 index 0000000..1c880ed --- /dev/null +++ b/src/Assets/Plugins/UniRx/Examples/Sample08_DetectDoubleClick.cs @@ -0,0 +1,32 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using UnityEngine; + +namespace UniRx.Examples +{ + public class Sample08_DetectDoubleClick : MonoBehaviour + { + void Start() + { + // Global event handling is very useful. + // UniRx can handle there events. + // Observable.EveryUpdate/EveryFixedUpdate/EveryEndOfFrame + // Observable.EveryApplicationFocus/EveryApplicationPause + // Observable.OnceApplicationQuit + + // This DoubleCLick Sample is from + // The introduction to Reactive Programming you've been missing + // https://gist.github.com/staltz/868e7e9bc2a7b8c1f754 + + var clickStream = Observable.EveryUpdate() + .Where(_ => Input.GetMouseButtonDown(0)); + + clickStream.Buffer(clickStream.Throttle(TimeSpan.FromMilliseconds(250))) + .Where(xs => xs.Count >= 2) + .Subscribe(xs => Debug.Log("DoubleClick Detected! Count:" + xs.Count)); + } + } +} \ No newline at end of file diff --git a/src/Assets/Plugins/UniRx/Examples/Sample08_DetectDoubleClick.cs.meta b/src/Assets/Plugins/UniRx/Examples/Sample08_DetectDoubleClick.cs.meta new file mode 100644 index 0000000..84cf0d1 --- /dev/null +++ b/src/Assets/Plugins/UniRx/Examples/Sample08_DetectDoubleClick.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: eb801bbfb1ffcd64389e90c8f2435b79 +timeCreated: 1455373902 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/Assets/Plugins/UniRx/Examples/Sample09_EventHandling.cs b/src/Assets/Plugins/UniRx/Examples/Sample09_EventHandling.cs new file mode 100644 index 0000000..8ccd1db --- /dev/null +++ b/src/Assets/Plugins/UniRx/Examples/Sample09_EventHandling.cs @@ -0,0 +1,69 @@ +#pragma warning disable 0067 + +using System; +using UnityEngine; + +namespace UniRx.Examples +{ + public class Sample09_EventHandling : MonoBehaviour + { + public class MyEventArgs : EventArgs + { + public int MyProperty { get; set; } + } + + public event EventHandler FooBar; + public event Action FooFoo; + + CompositeDisposable disposables = new CompositeDisposable(); + + // Subject is Rx's native event expression and recommend way for use Rx as event. + // Subject.OnNext as fire event, + // expose IObserver is subscibable for external source, it's no need convert. + Subject onBarBar = new Subject(); + public IObservable OnBarBar { get { return onBarBar; } } + + void Start() + { + // convert to IO as (sender, eventArgs) + Observable.FromEventPattern, MyEventArgs>( + h => h.Invoke, h => FooBar += h, h => FooBar -= h) + .Subscribe() + .AddTo(disposables); // IDisposable can add to collection easily by AddTo + + // convert to IO, many situation this is useful than FromEventPattern + Observable.FromEvent, MyEventArgs>( + h => (sender, e) => h(e), h => FooBar += h, h => FooBar -= h) + .Subscribe() + .AddTo(disposables); + + // You can convert Action like event. + Observable.FromEvent( + h => FooFoo += h, h => FooFoo -= h) + .Subscribe() + .AddTo(disposables); + + // AOT Safe EventHandling, use dummy capture, see:https://github.com/neuecc/UniRx/wiki/AOT-Exception-Patterns-and-Hacks + var capture = 0; + Observable.FromEventPattern, MyEventArgs>(h => + { + capture.GetHashCode(); // dummy for AOT + return new EventHandler(h); + }, h => FooBar += h, h => FooBar -= h) + .Subscribe() + .AddTo(disposables); + + // Subject as like event. + OnBarBar.Subscribe().AddTo(disposables); + onBarBar.OnNext(1); // fire event + } + + void OnDestroy() + { + // manage subscription lifecycle + disposables.Dispose(); + } + } +} + +#pragma warning restore 0067 \ No newline at end of file diff --git a/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/LazyTask.cs.meta b/src/Assets/Plugins/UniRx/Examples/Sample09_EventHandling.cs.meta similarity index 85% rename from src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/LazyTask.cs.meta rename to src/Assets/Plugins/UniRx/Examples/Sample09_EventHandling.cs.meta index 76a2399..5da8ac7 100644 --- a/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/LazyTask.cs.meta +++ b/src/Assets/Plugins/UniRx/Examples/Sample09_EventHandling.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 894287b5c0263d14fbf00c5de21f3b81 +guid: 95140e49213aa6f49a470a81873b87c0 timeCreated: 1455373900 licenseType: Store MonoImporter: diff --git a/src/Assets/Plugins/UniRx/Examples/Sample10_MainThreadDispatcher.cs b/src/Assets/Plugins/UniRx/Examples/Sample10_MainThreadDispatcher.cs new file mode 100644 index 0000000..b2cafef --- /dev/null +++ b/src/Assets/Plugins/UniRx/Examples/Sample10_MainThreadDispatcher.cs @@ -0,0 +1,48 @@ +using System; +using System.Collections; +using UnityEngine; + +namespace UniRx.Examples +{ + public class Sample10_MainThreadDispatcher + { + public void Run() + { + // MainThreadDispatcher is heart of Rx and Unity integration + + // StartCoroutine can start coroutine besides MonoBehaviour. + MainThreadDispatcher.StartCoroutine(TestAsync()); + + // We have two way of run coroutine, FromCoroutine or StartCoroutine. + // StartCoroutine is Unity primitive way and it's awaitable by yield return. + // FromCoroutine is Rx, it's composable and cancellable by subscription's IDisposable. + // FromCoroutine's overload can have return value, see:Sample05_ConvertFromCoroutine + Observable.FromCoroutine(TestAsync).Subscribe(); + + // Add Action to MainThreadDispatcher. Action is saved queue, run on next update. + MainThreadDispatcher.Post(_ => Debug.Log("test"), null); + + // Timebased operations is run on MainThread(as default) + // All timebased operation(Interval, Timer, Delay, Buffer, etc...)is single thread, thread safe! + Observable.Interval(TimeSpan.FromSeconds(1)) + .Subscribe(x => Debug.Log(x)); + + // Observable.Start use ThreadPool Scheduler as default. + // ObserveOnMainThread return to mainthread + Observable.Start(() => Unit.Default) // asynchronous work + .ObserveOnMainThread() + .Subscribe(x => Debug.Log(x)); + } + + IEnumerator TestAsync() + { + Debug.Log("a"); + yield return new WaitForSeconds(1); + Debug.Log("b"); + yield return new WaitForSeconds(1); + Debug.Log("c"); + yield return new WaitForSeconds(1); + Debug.Log("d"); + } + } +} \ No newline at end of file diff --git a/src/Assets/Plugins/UniRx/Examples/Sample10_MainThreadDispatcher.cs.meta b/src/Assets/Plugins/UniRx/Examples/Sample10_MainThreadDispatcher.cs.meta new file mode 100644 index 0000000..fbbee22 --- /dev/null +++ b/src/Assets/Plugins/UniRx/Examples/Sample10_MainThreadDispatcher.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 6a0b959735346af48b772254afc8afdd +timeCreated: 1455373899 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/Assets/Plugins/UniRx/Examples/Sample11_Logger.cs b/src/Assets/Plugins/UniRx/Examples/Sample11_Logger.cs new file mode 100644 index 0000000..8de54d5 --- /dev/null +++ b/src/Assets/Plugins/UniRx/Examples/Sample11_Logger.cs @@ -0,0 +1,41 @@ +using System; +using System.Collections; +using UniRx.Diagnostics; +using UnityEngine; + +namespace UniRx.Examples +{ + public class Sample11_Logger + { + // UniRx.Diagnostics.Logger + // logger is threadsafe, define per class with name. + static readonly UniRx.Diagnostics.Logger logger = new UniRx.Diagnostics.Logger("Sample11"); + + // call once at applicationinit + public void ApplicationInitialize() + { + // Log as Stream, UniRx.Diagnostics.ObservableLogger.Listener is IObservable + // You can subscribe and output to any place. + ObservableLogger.Listener.LogToUnityDebug(); + + // for example, filter only Exception and upload to web. + // (make custom sink(IObserver) is better to use) + ObservableLogger.Listener + .Where(x => x.LogType == LogType.Exception) + .Subscribe(x => + { + // ObservableWWW.Post("", null).Subscribe(); + }); + } + + public void Run() + { + // Debug is write only DebugBuild. + logger.Debug("Debug Message"); + + // or other logging methods + logger.Log("Message"); + logger.Exception(new Exception("test exception")); + } + } +} \ No newline at end of file diff --git a/src/Assets/Plugins/UniRx/Examples/Sample11_Logger.cs.meta b/src/Assets/Plugins/UniRx/Examples/Sample11_Logger.cs.meta new file mode 100644 index 0000000..0e5f69f --- /dev/null +++ b/src/Assets/Plugins/UniRx/Examples/Sample11_Logger.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: f5aa72c61e2548a4bac4d65f93c63bf1 +timeCreated: 1455373902 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/Assets/Plugins/UniRx/Examples/Sample12Scene.unity b/src/Assets/Plugins/UniRx/Examples/Sample12Scene.unity new file mode 100644 index 0000000..dd99029 --- /dev/null +++ b/src/Assets/Plugins/UniRx/Examples/Sample12Scene.unity @@ -0,0 +1,1535 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +SceneSettings: + m_ObjectHideFlags: 0 + m_PVSData: + m_PVSObjectsArray: [] + m_PVSPortalsArray: [] + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 6 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 3 + m_SkyboxMaterial: {fileID: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} +--- !u!157 &4 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 6 + m_GIWorkflowMode: 0 + m_LightmapsMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_TemporalCoherenceThreshold: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 0 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 3 + m_Resolution: 2 + m_BakeResolution: 40 + m_TextureWidth: 1024 + m_TextureHeight: 1024 + m_AOMaxDistance: 1 + m_Padding: 2 + m_CompAOExponent: 0 + m_LightmapParameters: {fileID: 0} + m_TextureCompression: 1 + m_FinalGather: 0 + m_FinalGatherRayCount: 1024 + m_ReflectionCompression: 2 + m_LightingDataAsset: {fileID: 0} + m_RuntimeCPUUsage: 25 +--- !u!196 &5 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + accuratePlacement: 0 + minRegionArea: 2 + cellSize: 0.16666667 + manualCellSize: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &33721919 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 33721920} + - 223: {fileID: 33721924} + - 114: {fileID: 33721923} + - 114: {fileID: 33721922} + - 114: {fileID: 33721921} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &33721920 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 33721919} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 921642174} + - {fileID: 530746210} + - {fileID: 46704896} + - {fileID: 579875960} + - {fileID: 1891604357} + m_Father: {fileID: 0} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!114 &33721921 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 33721919} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 18e34490a83a27e44adf93dd4ffd1f22, type: 3} + m_Name: + m_EditorClassIdentifier: + MyButton: {fileID: 921642175} + MyToggle: {fileID: 530746211} + MyInput: {fileID: 46704897} + MyText: {fileID: 579875961} + MySlider: {fileID: 1891604358} + IntRxProp: + value: 0 +--- !u!114 &33721922 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 33721919} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1301386320, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &33721923 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 33721919} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1980459831, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 +--- !u!223 &33721924 +Canvas: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 33721919} + m_Enabled: 1 + serializedVersion: 2 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!1 &46704895 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 46704896} + - 222: {fileID: 46704899} + - 114: {fileID: 46704898} + - 114: {fileID: 46704897} + m_Layer: 5 + m_Name: InputField + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &46704896 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 46704895} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 835857415} + - {fileID: 710358450} + m_Father: {fileID: 33721920} + m_RootOrder: 2 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 277} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &46704897 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 46704895} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 575553740, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 46704898} + m_TextComponent: {fileID: 710358451} + m_Placeholder: {fileID: 835857416} + m_ContentType: 0 + m_InputType: 0 + m_AsteriskChar: 42 + m_KeyboardType: 0 + m_LineType: 0 + m_HideMobileInput: 0 + m_CharacterValidation: 0 + m_CharacterLimit: 0 + m_OnEndEdit: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.InputField+SubmitEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.InputField+OnChangeEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_CustomCaretColor: 0 + m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412} + m_Text: + m_CaretBlinkRate: 1.7 + m_CaretWidth: 1 + m_ReadOnly: 0 +--- !u!114 &46704898 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 46704895} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &46704899 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 46704895} +--- !u!1 &163238468 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 163238469} + - 222: {fileID: 163238471} + - 114: {fileID: 163238470} + m_Layer: 5 + m_Name: Checkmark + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &163238469 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 163238468} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1018308463} + m_RootOrder: 0 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &163238470 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 163238468} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10901, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &163238471 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 163238468} +--- !u!1 &530746209 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 530746210} + - 114: {fileID: 530746211} + m_Layer: 5 + m_Name: Toggle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &530746210 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 530746209} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1018308463} + - {fileID: 1527674668} + m_Father: {fileID: 33721920} + m_RootOrder: 1 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -160, y: 294} + m_SizeDelta: {x: 160, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &530746211 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 530746209} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 2109663825, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1018308464} + toggleTransition: 1 + graphic: {fileID: 163238470} + m_Group: {fileID: 0} + onValueChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.Toggle+ToggleEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + m_IsOn: 0 +--- !u!1 &579875959 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 579875960} + - 222: {fileID: 579875962} + - 114: {fileID: 579875961} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &579875960 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 579875959} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 33721920} + m_RootOrder: 3 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 178} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &579875961 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 579875959} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: New Text +--- !u!222 &579875962 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 579875959} +--- !u!1 &605953354 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 605953355} + m_Layer: 5 + m_Name: Handle Slide Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &605953355 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 605953354} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1022847601} + m_Father: {fileID: 1891604357} + m_RootOrder: 2 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &710358449 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 710358450} + - 222: {fileID: 710358452} + - 114: {fileID: 710358451} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &710358450 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 710358449} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 46704896} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -0.5} + m_SizeDelta: {x: -20, y: -13} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &710358451 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 710358449} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 0 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: +--- !u!222 &710358452 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 710358449} +--- !u!1 &801653541 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 801653542} + - 222: {fileID: 801653544} + - 114: {fileID: 801653543} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &801653542 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 801653541} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1891604357} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0.25} + m_AnchorMax: {x: 1, y: 0.75} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &801653543 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 801653541} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &801653544 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 801653541} +--- !u!1 &835857414 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 835857415} + - 222: {fileID: 835857417} + - 114: {fileID: 835857416} + m_Layer: 5 + m_Name: Placeholder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &835857415 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 835857414} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 46704896} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -0.5} + m_SizeDelta: {x: -20, y: -13} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &835857416 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 835857414} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.5} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 2 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Enter text... +--- !u!222 &835857417 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 835857414} +--- !u!1 &921642173 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 921642174} + - 222: {fileID: 921642177} + - 114: {fileID: 921642176} + - 114: {fileID: 921642175} + m_Layer: 5 + m_Name: Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &921642174 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 921642173} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1781955689} + m_Father: {fileID: 33721920} + m_RootOrder: 0 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -171, y: 218} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &921642175 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 921642173} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 921642176} + m_OnClick: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &921642176 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 921642173} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &921642177 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 921642173} +--- !u!1 &930565829 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 930565830} + - 222: {fileID: 930565832} + - 114: {fileID: 930565831} + m_Layer: 5 + m_Name: Fill + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &930565830 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 930565829} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1807094062} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 10, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &930565831 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 930565829} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &930565832 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 930565829} +--- !u!1 &1018308462 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1018308463} + - 222: {fileID: 1018308465} + - 114: {fileID: 1018308464} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1018308463 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1018308462} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 163238469} + m_Father: {fileID: 530746210} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 10, y: -10} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1018308464 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1018308462} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &1018308465 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1018308462} +--- !u!1 &1022847600 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1022847601} + - 222: {fileID: 1022847603} + - 114: {fileID: 1022847602} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1022847601 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1022847600} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 605953355} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1022847602 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1022847600} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &1022847603 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1022847600} +--- !u!1 &1184379970 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1184379974} + - 114: {fileID: 1184379973} + - 114: {fileID: 1184379972} + - 114: {fileID: 1184379971} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1184379971 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1184379970} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1997211142, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ForceModuleActive: 0 +--- !u!114 &1184379972 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1184379970} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1077351063, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalAxis: Horizontal + m_VerticalAxis: Vertical + m_SubmitButton: Submit + m_CancelButton: Cancel + m_InputActionsPerSecond: 10 + m_RepeatDelay: 0.5 + m_ForceModuleActive: 0 +--- !u!114 &1184379973 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1184379970} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -619905303, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_FirstSelected: {fileID: 0} + m_sendNavigationEvents: 1 + m_DragThreshold: 5 +--- !u!4 &1184379974 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1184379970} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 2 +--- !u!1 &1527674667 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1527674668} + - 222: {fileID: 1527674670} + - 114: {fileID: 1527674669} + m_Layer: 5 + m_Name: Label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1527674668 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1527674667} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 530746210} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 9, y: -0.5} + m_SizeDelta: {x: -28, y: -3} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1527674669 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1527674667} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Toggle +--- !u!222 &1527674670 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1527674667} +--- !u!1 &1781955688 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1781955689} + - 222: {fileID: 1781955691} + - 114: {fileID: 1781955690} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1781955689 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1781955688} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 921642174} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1781955690 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1781955688} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Button +--- !u!222 &1781955691 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1781955688} +--- !u!1 &1807094061 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1807094062} + m_Layer: 5 + m_Name: Fill Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1807094062 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1807094061} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 930565830} + m_Father: {fileID: 1891604357} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0.25} + m_AnchorMax: {x: 1, y: 0.75} + m_AnchoredPosition: {x: -5, y: 0} + m_SizeDelta: {x: -20, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1838497716 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1838497721} + - 20: {fileID: 1838497720} + - 92: {fileID: 1838497719} + - 124: {fileID: 1838497718} + - 81: {fileID: 1838497717} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!81 &1838497717 +AudioListener: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1838497716} + m_Enabled: 1 +--- !u!124 &1838497718 +Behaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1838497716} + m_Enabled: 1 +--- !u!92 &1838497719 +Behaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1838497716} + m_Enabled: 1 +--- !u!20 &1838497720 +Camera: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1838497716} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0.019607844} + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 1 + orthographic size: 5 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 + m_StereoMirrorMode: 0 +--- !u!4 &1838497721 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1838497716} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 +--- !u!1 &1891604356 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1891604357} + - 114: {fileID: 1891604358} + m_Layer: 5 + m_Name: Slider + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1891604357 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1891604356} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 801653542} + - {fileID: 1807094062} + - {fileID: 605953355} + m_Father: {fileID: 33721920} + m_RootOrder: 4 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 102} + m_SizeDelta: {x: 160, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1891604358 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1891604356} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -113659843, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1022847602} + m_FillRect: {fileID: 930565830} + m_HandleRect: {fileID: 1022847601} + m_Direction: 0 + m_MinValue: 0 + m_MaxValue: 1 + m_WholeNumbers: 0 + m_Value: 1 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.Slider+SliderEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null diff --git a/src/Assets/Plugins/UniRx/Examples/Sample12Scene.unity.meta b/src/Assets/Plugins/UniRx/Examples/Sample12Scene.unity.meta new file mode 100644 index 0000000..31b9df7 --- /dev/null +++ b/src/Assets/Plugins/UniRx/Examples/Sample12Scene.unity.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4a4aea8df1ad11c47a1db84432dd30f8 +timeCreated: 1455373896 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/Assets/Plugins/UniRx/Examples/Sample12_ReactiveProperty.cs b/src/Assets/Plugins/UniRx/Examples/Sample12_ReactiveProperty.cs new file mode 100644 index 0000000..e1e7d56 --- /dev/null +++ b/src/Assets/Plugins/UniRx/Examples/Sample12_ReactiveProperty.cs @@ -0,0 +1,77 @@ +// for uGUI(from 4.6) +#if !(UNITY_4_0 || UNITY_4_1 || UNITY_4_2 || UNITY_4_3 || UNITY_4_4 || UNITY_4_5) + +using System; +using UnityEngine; +using UnityEngine.UI; + +namespace UniRx.Examples +{ + public class Sample12_ReactiveProperty : MonoBehaviour + { + // Open Sample12Scene. Set from canvas + public Button MyButton; + public Toggle MyToggle; + public InputField MyInput; + public Text MyText; + public Slider MySlider; + + // You can monitor/modifie in inspector by SpecializedReactiveProperty + public IntReactiveProperty IntRxProp = new IntReactiveProperty(); + + Enemy enemy = new Enemy(1000); + + void Start() + { + // UnityEvent as Observable + // (shortcut, MyButton.OnClickAsObservable()) + MyButton.onClick.AsObservable().Subscribe(_ => enemy.CurrentHp.Value -= 99); + + // Toggle, Input etc as Observable(OnValueChangedAsObservable is helper for provide isOn value on subscribe) + // SubscribeToInteractable is UniRx.UI Extension Method, same as .interactable = x) + MyToggle.OnValueChangedAsObservable().SubscribeToInteractable(MyButton); + + // input shows delay after 1 second +#if !(UNITY_4_6 || UNITY_4_7 || UNITY_5_0 || UNITY_5_1 || UNITY_5_2) + MyInput.OnValueChangedAsObservable() +#else + MyInput.OnValueChangeAsObservable() +#endif + .Where(x => x != null) + .Delay(TimeSpan.FromSeconds(1)) + .SubscribeToText(MyText); // SubscribeToText is UniRx.UI Extension Method + + // converting for human visibility + MySlider.OnValueChangedAsObservable() + .SubscribeToText(MyText, x => Math.Round(x, 2).ToString()); + + // from RxProp, CurrentHp changing(Button Click) is observable + enemy.CurrentHp.SubscribeToText(MyText); + enemy.IsDead.Where(isDead => isDead == true) + .Subscribe(_ => + { + MyToggle.interactable = MyButton.interactable = false; + }); + + // initial text:) + IntRxProp.SubscribeToText(MyText); + } + } + + // Reactive Notification Model + public class Enemy + { + public IReactiveProperty CurrentHp { get; private set; } + + public IReadOnlyReactiveProperty IsDead { get; private set; } + + public Enemy(int initialHp) + { + // Declarative Property + CurrentHp = new ReactiveProperty(initialHp); + IsDead = CurrentHp.Select(x => x <= 0).ToReactiveProperty(); + } + } +} + +#endif \ No newline at end of file diff --git a/src/Assets/Plugins/UniRx/Examples/Sample12_ReactiveProperty.cs.meta b/src/Assets/Plugins/UniRx/Examples/Sample12_ReactiveProperty.cs.meta new file mode 100644 index 0000000..a56cee3 --- /dev/null +++ b/src/Assets/Plugins/UniRx/Examples/Sample12_ReactiveProperty.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 18e34490a83a27e44adf93dd4ffd1f22 +timeCreated: 1455373897 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/Assets/Plugins/UniRx/Examples/Sample13Scene.unity b/src/Assets/Plugins/UniRx/Examples/Sample13Scene.unity new file mode 100644 index 0000000..169248e --- /dev/null +++ b/src/Assets/Plugins/UniRx/Examples/Sample13Scene.unity @@ -0,0 +1,1300 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +SceneSettings: + m_ObjectHideFlags: 0 + m_PVSData: + m_PVSObjectsArray: [] + m_PVSPortalsArray: [] + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 6 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 3 + m_SkyboxMaterial: {fileID: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} +--- !u!157 &4 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 6 + m_GIWorkflowMode: 0 + m_LightmapsMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_TemporalCoherenceThreshold: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 0 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 3 + m_Resolution: 2 + m_BakeResolution: 40 + m_TextureWidth: 1024 + m_TextureHeight: 1024 + m_AOMaxDistance: 1 + m_Padding: 2 + m_CompAOExponent: 0 + m_LightmapParameters: {fileID: 0} + m_TextureCompression: 1 + m_FinalGather: 0 + m_FinalGatherRayCount: 1024 + m_ReflectionCompression: 2 + m_LightingDataAsset: {fileID: 0} + m_RuntimeCPUUsage: 25 +--- !u!196 &5 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + accuratePlacement: 0 + minRegionArea: 2 + cellSize: 0.16666667 + manualCellSize: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &48390799 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 48390800} + - 222: {fileID: 48390802} + - 114: {fileID: 48390801} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &48390800 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 48390799} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 2136645852} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &48390801 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 48390799} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Clear Checked +--- !u!222 &48390802 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 48390799} +--- !u!1 &80191139 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 80191140} + - 114: {fileID: 80191141} + m_Layer: 5 + m_Name: TodoList + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &80191140 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 80191139} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 625561981} + m_RootOrder: 2 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0.000030517578, y: -864} + m_SizeDelta: {x: 0, y: 744} + m_Pivot: {x: 0.5, y: 0} +--- !u!114 &80191141 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 80191139} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1297475563, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 +--- !u!1 &300470760 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 300470761} + - 114: {fileID: 300470762} + m_Layer: 0 + m_Name: ToDoScene + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &300470761 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 300470760} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 895588078} + m_Father: {fileID: 0} + m_RootOrder: 1 +--- !u!114 &300470762 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 300470760} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 022ecfa555367154c8cf87d61465f7e2, type: 3} + m_Name: + m_EditorClassIdentifier: + Title: {fileID: 852345258} + ToDoInput: {fileID: 566049662} + AddButton: {fileID: 611575448} + ClearButton: {fileID: 2136645853} + TodoList: {fileID: 80191139} + SampleItemPrefab: {fileID: 182208, guid: 173222196f3e1f0448b383f260df7d44, type: 2} +--- !u!1 &448872075 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 448872079} + - 114: {fileID: 448872078} + - 114: {fileID: 448872077} + - 114: {fileID: 448872076} + - 114: {fileID: 448872080} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &448872076 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 448872075} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1997211142, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ForceModuleActive: 0 +--- !u!114 &448872077 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 448872075} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1077351063, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalAxis: Horizontal + m_VerticalAxis: Vertical + m_SubmitButton: Submit + m_CancelButton: Cancel + m_InputActionsPerSecond: 10 + m_RepeatDelay: 0.5 + m_ForceModuleActive: 0 +--- !u!114 &448872078 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 448872075} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -619905303, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_FirstSelected: {fileID: 0} + m_sendNavigationEvents: 1 + m_DragThreshold: 5 +--- !u!4 &448872079 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 448872075} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 2 +--- !u!114 &448872080 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 448872075} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1077351063, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalAxis: Horizontal + m_VerticalAxis: Vertical + m_SubmitButton: Submit + m_CancelButton: Cancel + m_InputActionsPerSecond: 10 + m_RepeatDelay: 0.5 + m_ForceModuleActive: 0 +--- !u!1 &566049660 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 566049661} + - 222: {fileID: 566049664} + - 114: {fileID: 566049663} + - 114: {fileID: 566049662} + m_Layer: 5 + m_Name: ToDoInput + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &566049661 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 566049660} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 2102338788} + - {fileID: 1368145207} + m_Father: {fileID: 650625965} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &566049662 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 566049660} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 575553740, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 566049663} + m_TextComponent: {fileID: 1368145205} + m_Placeholder: {fileID: 2102338789} + m_ContentType: 0 + m_InputType: 0 + m_AsteriskChar: 42 + m_KeyboardType: 0 + m_LineType: 0 + m_HideMobileInput: 0 + m_CharacterValidation: 0 + m_CharacterLimit: 0 + m_OnEndEdit: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.InputField+SubmitEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.InputField+OnChangeEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_CustomCaretColor: 0 + m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412} + m_Text: + m_CaretBlinkRate: 1.7 + m_CaretWidth: 1 + m_ReadOnly: 0 +--- !u!114 &566049663 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 566049660} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &566049664 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 566049660} +--- !u!1 &611575446 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 611575447} + - 222: {fileID: 611575450} + - 114: {fileID: 611575449} + - 114: {fileID: 611575448} + m_Layer: 5 + m_Name: AddButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &611575447 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 611575446} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 721405894} + m_Father: {fileID: 650625965} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &611575448 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 611575446} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 611575449} + m_OnClick: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &611575449 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 611575446} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &611575450 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 611575446} +--- !u!1 &625561980 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 625561981} + - 222: {fileID: 625561983} + - 114: {fileID: 625561982} + m_Layer: 5 + m_Name: Panel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &625561981 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 625561980} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 852345257} + - {fileID: 650625965} + - {fileID: 80191140} + m_Father: {fileID: 895588078} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &625561982 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 625561980} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0.392} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &625561983 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 625561980} +--- !u!1 &650625964 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 650625965} + - 114: {fileID: 650625966} + m_Layer: 5 + m_Name: InputArea + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &650625965 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 650625964} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 566049661} + - {fileID: 611575447} + - {fileID: 2136645852} + m_Father: {fileID: 625561981} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 50} + m_Pivot: {x: 0.5, y: 0} +--- !u!114 &650625966 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 650625964} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -405508275, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 +--- !u!1 &721405893 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 721405894} + - 222: {fileID: 721405896} + - 114: {fileID: 721405895} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &721405894 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 721405893} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 611575447} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &721405895 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 721405893} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Add +--- !u!222 &721405896 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 721405893} +--- !u!1 &852345256 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 852345257} + - 222: {fileID: 852345259} + - 114: {fileID: 852345258} + m_Layer: 5 + m_Name: Title + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &852345257 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 852345256} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 625561981} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 120} + m_Pivot: {x: 0, y: 1} +--- !u!114 &852345258 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 852345256} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 30 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 0 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: TODO App:) +--- !u!222 &852345259 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 852345256} +--- !u!1 &895588077 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 895588078} + - 223: {fileID: 895588081} + - 114: {fileID: 895588080} + - 114: {fileID: 895588079} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &895588078 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 895588077} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 625561981} + m_Father: {fileID: 300470761} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!114 &895588079 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 895588077} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1301386320, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &895588080 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 895588077} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1980459831, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 +--- !u!223 &895588081 +Canvas: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 895588077} + m_Enabled: 1 + serializedVersion: 2 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!1 &1368145204 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1368145207} + - 222: {fileID: 1368145206} + - 114: {fileID: 1368145205} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1368145205 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1368145204} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 0 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: +--- !u!222 &1368145206 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1368145204} +--- !u!224 &1368145207 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1368145204} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 566049661} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -0.5} + m_SizeDelta: {x: -20, y: -13} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &2074703090 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 2074703095} + - 20: {fileID: 2074703094} + - 92: {fileID: 2074703093} + - 124: {fileID: 2074703092} + - 81: {fileID: 2074703091} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!81 &2074703091 +AudioListener: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2074703090} + m_Enabled: 1 +--- !u!124 &2074703092 +Behaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2074703090} + m_Enabled: 1 +--- !u!92 &2074703093 +Behaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2074703090} + m_Enabled: 1 +--- !u!20 &2074703094 +Camera: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2074703090} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0.019607844} + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 1 + orthographic size: 5 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 + m_StereoMirrorMode: 0 +--- !u!4 &2074703095 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2074703090} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 +--- !u!1 &2102338787 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 2102338788} + - 222: {fileID: 2102338790} + - 114: {fileID: 2102338789} + m_Layer: 5 + m_Name: Placeholder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2102338788 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2102338787} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 566049661} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -0.5} + m_SizeDelta: {x: -20, y: -13} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2102338789 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2102338787} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.5} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 2 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: What needs to be done? +--- !u!222 &2102338790 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2102338787} +--- !u!1 &2136645851 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 2136645852} + - 222: {fileID: 2136645855} + - 114: {fileID: 2136645854} + - 114: {fileID: 2136645853} + m_Layer: 5 + m_Name: ClearButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2136645852 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2136645851} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 48390800} + m_Father: {fileID: 650625965} + m_RootOrder: 2 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2136645853 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2136645851} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 2136645854} + m_OnClick: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &2136645854 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2136645851} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &2136645855 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2136645851} diff --git a/src/Assets/Plugins/UniRx/Examples/Sample13Scene.unity.meta b/src/Assets/Plugins/UniRx/Examples/Sample13Scene.unity.meta new file mode 100644 index 0000000..21bef33 --- /dev/null +++ b/src/Assets/Plugins/UniRx/Examples/Sample13Scene.unity.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b879645f640b02b43a8e78e210c1da1f +timeCreated: 1455373896 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/Assets/Plugins/UniRx/Examples/Sample13_ToDoApp.cs b/src/Assets/Plugins/UniRx/Examples/Sample13_ToDoApp.cs new file mode 100644 index 0000000..159e932 --- /dev/null +++ b/src/Assets/Plugins/UniRx/Examples/Sample13_ToDoApp.cs @@ -0,0 +1,68 @@ +// for uGUI(from 4.6) +#if !(UNITY_4_0 || UNITY_4_1 || UNITY_4_2 || UNITY_4_3 || UNITY_4_4 || UNITY_4_5) + +using System.Linq; +using UnityEngine; +using UnityEngine.UI; +using System.Collections; +using UnityEngine.EventSystems; + +namespace UniRx.Examples +{ + public class Sample13_ToDoApp : MonoBehaviour + { + // Open Sample13Scene. Set from canvas + public Text Title; + public InputField ToDoInput; + public Button AddButton; + public Button ClearButton; + public GameObject TodoList; + + // prefab:) + public GameObject SampleItemPrefab; + + ReactiveCollection toDos = new ReactiveCollection(); + + void Start() + { + // merge Button click and push enter key on input field. + var submit = Observable.Merge( + AddButton.OnClickAsObservable().Select(_ => ToDoInput.text), + ToDoInput.OnEndEditAsObservable().Where(_ => Input.GetKeyDown(KeyCode.Return))); + + // add to reactive collection + submit.Where(x => x != "") + .Subscribe(x => + { + ToDoInput.text = ""; // clear input field + var item = Instantiate(SampleItemPrefab) as GameObject; + (item.GetComponentInChildren(typeof(Text)) as Text).text = x; + toDos.Add(item); + }); + + // Collection Change Handling + toDos.ObserveCountChanged().Subscribe(x => Title.text = "TODO App, ItemCount:" + x); + toDos.ObserveAdd().Subscribe(x => + { + x.Value.transform.SetParent(TodoList.transform, false); + }); + toDos.ObserveRemove().Subscribe(x => + { + GameObject.Destroy(x.Value); + }); + + // Clear + ClearButton.OnClickAsObservable() + .Subscribe(_ => + { + var removeTargets = toDos.Where(x => x.GetComponent().isOn).ToArray(); + foreach (var item in removeTargets) + { + toDos.Remove(item); + } + }); + } + } +} + +#endif \ No newline at end of file diff --git a/src/Assets/Plugins/UniRx/Examples/Sample13_ToDoApp.cs.meta b/src/Assets/Plugins/UniRx/Examples/Sample13_ToDoApp.cs.meta new file mode 100644 index 0000000..aaef626 --- /dev/null +++ b/src/Assets/Plugins/UniRx/Examples/Sample13_ToDoApp.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 022ecfa555367154c8cf87d61465f7e2 +timeCreated: 1455373897 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/Assets/Plugins/UniRx/Examples/Sample13_ToDoItem.prefab b/src/Assets/Plugins/UniRx/Examples/Sample13_ToDoItem.prefab new file mode 100644 index 0000000..1a976a1 --- /dev/null +++ b/src/Assets/Plugins/UniRx/Examples/Sample13_ToDoItem.prefab @@ -0,0 +1,284 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &152834 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22461494} + - 222: {fileID: 22298102} + - 114: {fileID: 11434412} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &172388 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22491898} + - 222: {fileID: 22251748} + - 114: {fileID: 11438756} + m_Layer: 5 + m_Name: Label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &174974 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22463654} + - 222: {fileID: 22278786} + - 114: {fileID: 11497312} + m_Layer: 5 + m_Name: Checkmark + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &182208 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 224: {fileID: 22478562} + - 114: {fileID: 11479148} + m_Layer: 5 + m_Name: Sample13_ToDoItem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &11434412 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152834} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &11438756 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 172388} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: .196078435, g: .196078435, b: .196078435, a: 1} + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 30 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'TODOITEM + +' +--- !u!114 &11479148 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 182208} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 2109663825, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: .960784316, g: .960784316, b: .960784316, a: 1} + m_PressedColor: {r: .784313738, g: .784313738, b: .784313738, a: 1} + m_DisabledColor: {r: .784313738, g: .784313738, b: .784313738, a: .501960814} + m_ColorMultiplier: 1 + m_FadeDuration: .100000001 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 11434412} + toggleTransition: 1 + graphic: {fileID: 11497312} + m_Group: {fileID: 0} + onValueChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.Toggle+ToggleEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null + m_IsOn: 1 +--- !u!114 &11497312 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 174974} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Sprite: {fileID: 10901, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &22251748 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 172388} +--- !u!222 &22278786 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 174974} +--- !u!222 &22298102 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152834} +--- !u!224 &22461494 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 152834} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 22463654} + m_Father: {fileID: 22478562} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 10, y: -10} + m_SizeDelta: {x: 20, y: 30} + m_Pivot: {x: .5, y: .5} +--- !u!224 &22463654 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 174974} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 22461494} + m_RootOrder: 0 + m_AnchorMin: {x: .5, y: .5} + m_AnchorMax: {x: .5, y: .5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 30} + m_Pivot: {x: .5, y: .5} +--- !u!224 &22478562 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 182208} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 22461494} + - {fileID: 22491898} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: .5, y: .5} +--- !u!224 &22491898 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 172388} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 22478562} + m_RootOrder: 1 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 9, y: -.5} + m_SizeDelta: {x: -28, y: -3} + m_Pivot: {x: .5, y: .5} +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 182208} + m_IsPrefabParent: 1 diff --git a/src/Assets/Plugins/UniRx/Examples/Sample13_ToDoItem.prefab.meta b/src/Assets/Plugins/UniRx/Examples/Sample13_ToDoItem.prefab.meta new file mode 100644 index 0000000..a80d47b --- /dev/null +++ b/src/Assets/Plugins/UniRx/Examples/Sample13_ToDoItem.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 173222196f3e1f0448b383f260df7d44 +timeCreated: 1455373909 +licenseType: Store +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/Assets/Plugins/UniRx/Examples/UniRx.Examples.asmdef b/src/Assets/Plugins/UniRx/Examples/UniRx.Examples.asmdef new file mode 100644 index 0000000..04b178b --- /dev/null +++ b/src/Assets/Plugins/UniRx/Examples/UniRx.Examples.asmdef @@ -0,0 +1,12 @@ +{ + "name": "UniRx.Examples", + "references": [ + "UniRx" + ], + "optionalUnityReferences": [ + "TestAssemblies" + ], + "includePlatforms": [], + "excludePlatforms": [], + "allowUnsafeCode": false +} \ No newline at end of file diff --git a/src/Assets/Plugins/UniRx/Examples/UniRx.Examples.asmdef.meta b/src/Assets/Plugins/UniRx/Examples/UniRx.Examples.asmdef.meta new file mode 100644 index 0000000..0380f9f --- /dev/null +++ b/src/Assets/Plugins/UniRx/Examples/UniRx.Examples.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 71799519d12379b49b6b53aea974bea5 +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/Assets/Plugins/UniRx/ReadMe.txt b/src/Assets/Plugins/UniRx/ReadMe.txt index d8dc56d..3057658 100644 --- a/src/Assets/Plugins/UniRx/ReadMe.txt +++ b/src/Assets/Plugins/UniRx/ReadMe.txt @@ -1,1307 +1,22 @@ -UniRx - Reactive Extensions for Unity / Ver 5.5.0 +UniRx - Reactive Extensions for Unity / Ver 6.2.2 === Created by Yoshifumi Kawai(neuecc) -[![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/neuecc/UniRx?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) +UniRx (Reactive Extensions for Unity) is a reimplementation of the .NET Reactive Extensions. +UniRx is Core Library (Port of Rx) + Platform Adaptor (MainThreadScheduler/FromCoroutine/etc) + Framework (ObservableTriggers/ReactiveProeperty/etc) + async/await integration(UniRx.Async) -What is UniRx? ---- -UniRx (Reactive Extensions for Unity) is a reimplementation of the .NET Reactive Extensions. The Official Rx implementation is great but doesn't work on Unity and has issues with iOS IL2CPP compatibility. This library fixes those issues and adds some specific utilities for Unity. Supported platforms are PC/Mac/Android/iOS/WP8/WindowsStore/etc and the library is fully supported on both Unity 5 and 4.6. +Please read Official Site's ReadMe(Manual) - https://github.com/neuecc/UniRx/ UniRx is available on the Unity Asset Store (FREE) - http://u3d.as/content/neuecc/uni-rx-reactive-extensions-for-unity/7tT - -Presentation - http://www.slideshare.net/neuecc/unirx-reactive-extensions-for-unityen - Blog for update info - https://medium.com/@neuecc Support thread on the Unity Forums: Ask me any question - http://forum.unity3d.com/threads/248535-UniRx-Reactive-Extensions-for-Unity - Release Notes, see [UniRx/releases](https://github.com/neuecc/UniRx/releases) -UniRx is Core Library (Port of Rx) + Platform Adaptor (MainThreadScheduler/FromCoroutine/etc) + Framework (ObservableTriggers/ReactiveProeperty/etc) - -Why Rx? ---- -Ordinarily, Network operations in Unity require the use of `WWW` and `Coroutine`. That said, using `Coroutine` is not good practice for asynchronous operations for the following (and other) reasons: - -1. Coroutines can't return any values, since its return type must be IEnumerator. -2. Coroutines can't handle exceptions, because yield return statements cannot be surrounded with a try-catch construction. - -This kind of lack of composability causes operations to be close-coupled, which often results in huge monolithic IEnumerators. - -Rx cures that kind of "asynchronous blues". Rx is a library for composing asynchronous and event-based programs using observable collections and LINQ-style query operators. - -The game loop (every Update, OnCollisionEnter, etc), sensor data (Kinect, Leap Motion, VR Input, etc.) are all types of events. Rx represents events as reactive sequences which are both easily composable and support time-based operations by using LINQ query operators. - -Unity is generally single threaded but UniRx facilitates multithreading for joins, cancels, accessing GameObjects, etc. - -UniRx helps UI programming with uGUI. All UI events (clicked, valuechanged, etc) can be converted to UniRx event streams. - -Introduction ---- -Great introduction to Rx article: [The introduction to Reactive Programming you've been missing](https://gist.github.com/staltz/868e7e9bc2a7b8c1f754). - -The following code implements the double click detection example from the article in UniRx: - -``` -var clickStream = Observable.EveryUpdate() - .Where(_ => Input.GetMouseButtonDown(0)); - -clickStream.Buffer(clickStream.Throttle(TimeSpan.FromMilliseconds(250))) - .Where(xs => xs.Count >= 2) - .Subscribe(xs => Debug.Log("DoubleClick Detected! Count:" + xs.Count)); -``` - -This example demonstrates the following features (in only five lines!): - -* The game loop (Update) as an event stream -* Composable event streams -* Merging self stream -* Easy handling of time based operations - -Network operations ---- -Use ObservableWWW for asynchronous network operations. Its Get/Post functions return subscribable IObservables: - -```csharp -ObservableWWW.Get("http://google.co.jp/") - .Subscribe( - x => Debug.Log(x.Substring(0, 100)), // onSuccess - ex => Debug.LogException(ex)); // onError -``` - -Rx is composable and cancelable. You can also query with LINQ expressions: - -```csharp -// composing asynchronous sequence with LINQ query expressions -var query = from google in ObservableWWW.Get("http://google.com/") - from bing in ObservableWWW.Get("http://bing.com/") - from unknown in ObservableWWW.Get(google + bing) - select new { google, bing, unknown }; - -var cancel = query.Subscribe(x => Debug.Log(x)); - -// Call Dispose is cancel. -cancel.Dispose(); -``` - -Use Observable.WhenAll for parallel requests: - -```csharp -// Observable.WhenAll is for parallel asynchronous operation -// (It's like Observable.Zip but specialized for single async operations like Task.WhenAll) -var parallel = Observable.WhenAll( - ObservableWWW.Get("http://google.com/"), - ObservableWWW.Get("http://bing.com/"), - ObservableWWW.Get("http://unity3d.com/")); - -parallel.Subscribe(xs => -{ - Debug.Log(xs[0].Substring(0, 100)); // google - Debug.Log(xs[1].Substring(0, 100)); // bing - Debug.Log(xs[2].Substring(0, 100)); // unity -}); -``` - -Progress information is available: - -```csharp -// notifier for progress use ScheudledNotifier or new Progress(/* action */) -var progressNotifier = new ScheduledNotifier(); -progressNotifier.Subscribe(x => Debug.Log(x)); // write www.progress - -// pass notifier to WWW.Get/Post -ObservableWWW.Get("http://google.com/", progress: progressNotifier).Subscribe(); -``` - -Error handling: - -```csharp -// If WWW has .error, ObservableWWW throws WWWErrorException to onError pipeline. -// WWWErrorException has RawErrorMessage, HasResponse, StatusCode, ResponseHeaders -ObservableWWW.Get("http://www.google.com/404") - .CatchIgnore((WWWErrorException ex) => - { - Debug.Log(ex.RawErrorMessage); - if (ex.HasResponse) - { - Debug.Log(ex.StatusCode); - } - foreach (var item in ex.ResponseHeaders) - { - Debug.Log(item.Key + ":" + item.Value); - } - }) - .Subscribe(); -``` - -Using with IEnumerators (Coroutines) ---- -IEnumerator (Coroutine) is Unity's primitive asynchronous tool. UniRx integrates coroutines and IObservables. You can write asynchronious code in coroutines, and orchestrate them using UniRx. This is best way to control asynchronous flow. - -```csharp -// two coroutines - -IEnumerator AsyncA() -{ - Debug.Log("a start"); - yield return new WaitForSeconds(1); - Debug.Log("a end"); -} - -IEnumerator AsyncB() -{ - Debug.Log("b start"); - yield return new WaitForEndOfFrame(); - Debug.Log("b end"); -} - -// main code -// Observable.FromCoroutine converts IEnumerator to Observable. -// You can also use the shorthand, AsyncA().ToObservable() - -// after AsyncA completes, run AsyncB as a continuous routine. -// UniRx expands SelectMany(IEnumerator) as SelectMany(IEnumerator.ToObservable()) -var cancel = Observable.FromCoroutine(AsyncA) - .SelectMany(AsyncB) - .Subscribe(); - -// you can stop a coroutine by calling your subscription's Dispose. -cancel.Dispose(); -``` - -If in Unity 5.3, you can use ToYieldInstruction for Observable to Coroutine. - -```csharp -IEnumerator TestNewCustomYieldInstruction() -{ - // wait Rx Observable. - yield return Observable.Timer(TimeSpan.FromSeconds(1)).ToYieldInstruction(); - - // you can change the scheduler(this is ignore Time.scale) - yield return Observable.Timer(TimeSpan.FromSeconds(1), Scheduler.MainThreadIgnoreTimeScale).ToYieldInstruction(); - - // get return value from ObservableYieldInstruction - var o = ObservableWWW.Get("http://unity3d.com/").ToYieldInstruction(throwOnError: false); - yield return o; - - if (o.HasError) { Debug.Log(o.Error.ToString()); } - if (o.HasResult) { Debug.Log(o.Result); } - - // other sample(wait until transform.position.y >= 100) - yield return this.transform.ObserveEveryValueChanged(x => x.position).FirstOrDefault(p => p.y >= 100).ToYieldInstruction(); -} -``` -Normally, we have to use callbacks when we require a coroutine to return a value. Observable.FromCoroutine can convert coroutines to cancellable IObservable[T] instead. - -```csharp -// public method -public static IObservable GetWWW(string url) -{ - // convert coroutine to IObservable - return Observable.FromCoroutine((observer, cancellationToken) => GetWWWCore(url, observer, cancellationToken)); -} - -// IObserver is a callback publisher -// Note: IObserver's basic scheme is "OnNext* (OnError | Oncompleted)?" -static IEnumerator GetWWWCore(string url, IObserver observer, CancellationToken cancellationToken) -{ - var www = new UnityEngine.WWW(url); - while (!www.isDone && !cancellationToken.IsCancellationRequested) - { - yield return null; - } - - if (cancellationToken.IsCancellationRequested) yield break; - - if (www.error != null) - { - observer.OnError(new Exception(www.error)); - } - else - { - observer.OnNext(www.text); - observer.OnCompleted(); // IObserver needs OnCompleted after OnNext! - } -} -``` - -Here are some more examples. Next is a multiple OnNext pattern. - -```csharp -public static IObservable ToObservable(this UnityEngine.AsyncOperation asyncOperation) -{ - if (asyncOperation == null) throw new ArgumentNullException("asyncOperation"); - - return Observable.FromCoroutine((observer, cancellationToken) => RunAsyncOperation(asyncOperation, observer, cancellationToken)); -} - -static IEnumerator RunAsyncOperation(UnityEngine.AsyncOperation asyncOperation, IObserver observer, CancellationToken cancellationToken) -{ - while (!asyncOperation.isDone && !cancellationToken.IsCancellationRequested) - { - observer.OnNext(asyncOperation.progress); - yield return null; - } - if (!cancellationToken.IsCancellationRequested) - { - observer.OnNext(asyncOperation.progress); // push 100% - observer.OnCompleted(); - } -} - -// usecase -Application.LoadLevelAsync("testscene") - .ToObservable() - .Do(x => Debug.Log(x)) // output progress - .Last() // last sequence is load completed - .Subscribe(); -``` - -Using for MultiThreading ---- - -```csharp -// Observable.Start is start factory methods on specified scheduler -// default is on ThreadPool -var heavyMethod = Observable.Start(() => -{ - // heavy method... - System.Threading.Thread.Sleep(TimeSpan.FromSeconds(1)); - return 10; -}); - -var heavyMethod2 = Observable.Start(() => -{ - // heavy method... - System.Threading.Thread.Sleep(TimeSpan.FromSeconds(3)); - return 10; -}); - -// Join and await two other thread values -Observable.WhenAll(heavyMethod, heavyMethod2) - .ObserveOnMainThread() // return to main thread - .Subscribe(xs => - { - // Unity can't touch GameObject from other thread - // but use ObserveOnMainThread, you can touch GameObject naturally. - (GameObject.Find("myGuiText")).guiText.text = xs[0] + ":" + xs[1]; - }); -``` - -DefaultScheduler ---- -UniRx's default time based operations (Interval, Timer, Buffer(timeSpan), etc) use `Scheduler.MainThread` as their scheduler. That means most operators (except for `Observable.Start`) work on a single thread, so ObserverOn isn't needed and thread safety measures can be ignored. This is differet from the standard RxNet implementation but better suited to the Unity environment. - -`Scheduler.MainThread` runs under Time.timeScale's influence. If you want to ignore the time scale, use ` Scheduler.MainThreadIgnoreTimeScale` instead. - -MonoBehaviour triggers ---- -UniRx can handle MonoBehaviour events with `UniRx.Triggers`: - -```csharp -using UniRx; -using UniRx.Triggers; // need UniRx.Triggers namespace - -public class MyComponent : MonoBehaviour -{ - void Start() - { - // Get the plain object - var cube = GameObject.CreatePrimitive(PrimitiveType.Cube); - - // Add ObservableXxxTrigger for handle MonoBehaviour's event as Observable - cube.AddComponent() - .UpdateAsObservable() - .SampleFrame(30) - .Subscribe(x => Debug.Log("cube"), () => Debug.Log("destroy")); - - // destroy after 3 second:) - GameObject.Destroy(cube, 3f); - } -} -``` - -Supported triggers are listed in [UniRx.wiki#UniRx.Triggers](https://github.com/neuecc/UniRx/wiki#unirxtriggers). - -These can also be handled more easily by directly subscribing to observables returned by extension methods on Component/GameObject. These methods inject ObservableTrigger automaticaly (except for `ObservableEventTrigger` and `ObservableStateMachineTrigger`): - -```csharp -using UniRx; -using UniRx.Triggers; // need UniRx.Triggers namespace for extend gameObejct - -public class DragAndDropOnce : MonoBehaviour -{ - void Start() - { - // All events can subscribe by ***AsObservable - this.OnMouseDownAsObservable() - .SelectMany(_ => this.UpdateAsObservable()) - .TakeUntil(this.OnMouseUpAsObservable()) - .Select(_ => Input.mousePosition) - .Subscribe(x => Debug.Log(x)); - } -} -``` - -> Previous versions of UniRx provided `ObservableMonoBehaviour`. This is a legacy interface that is no longer supported. Please use UniRx.Triggers instead. - -Creating custom triggers ---- -Converting to Observable is the best way to handle Unity events. If the standard triggers supplied by UniRx are not enough, you can create custom triggers. To demonstrate, here's a LongTap trigger for uGUI: - -```csharp -public class ObservableLongPointerDownTrigger : ObservableTriggerBase, IPointerDownHandler, IPointerUpHandler -{ - public float IntervalSecond = 1f; - - Subject onLongPointerDown; - - float? raiseTime; - - void Update() - { - if (raiseTime != null && raiseTime <= Time.realtimeSinceStartup) - { - if (onLongPointerDown != null) onLongPointerDown.OnNext(Unit.Default); - raiseTime = null; - } - } - - void IPointerDownHandler.OnPointerDown(PointerEventData eventData) - { - raiseTime = Time.realtimeSinceStartup + IntervalSecond; - } - - void IPointerUpHandler.OnPointerUp(PointerEventData eventData) - { - raiseTime = null; - } - - public IObservable OnLongPointerDownAsObservable() - { - return onLongPointerDown ?? (onLongPointerDown = new Subject()); - } - - protected override void RaiseOnCompletedOnDestroy() - { - if (onLongPointerDown != null) - { - onLongPointerDown.OnCompleted(); - } - } -} -``` - -It can be used as easily as the standard triggers: - -```csharp -var trigger = button.AddComponent(); - -trigger.OnLongPointerDownAsObservable().Subscribe(); -``` - -Observable Lifecycle Management ---- -When is OnCompleted called? Subscription lifecycle management is very important to consider when using UniRx. `ObservableTriggers` call OnCompleted when the GameObject they are attached to is destroyed. Other static generator methods (`Observable.Timer`, `Observable.EveryUpdate`, etc...) do not stop automatically, and their subscriptions should be managed manually. - -Rx provides some helper methods, such as `IDisposable.AddTo` which allows you to dispose of several subscriptions at once: - -```csharp -// CompositeDisposable is similar with List, manage multiple IDisposable -CompositeDisposable disposables = new CompositeDisposable(); // field - -void Start() -{ - Observable.EveryUpdate().Subscribe(x => Debug.Log(x)).AddTo(disposables); -} - -void OnTriggerEnter(Collider other) -{ - // .Clear() => Dispose is called for all inner disposables, and the list is cleared. - // .Dispose() => Dispose is called for all inner disposables, and Dispose is called immediately after additional Adds. - disposables.Clear(); -} -``` - -If you want to automatically Dispose when a GameObjects is destroyed, use AddTo(GameObject/Component): - -```csharp -void Start() -{ - Observable.IntervalFrame(30).Subscribe(x => Debug.Log(x)).AddTo(this); -} -``` - -AddTo calls facilitate automatic Dispose. If you needs special OnCompleted handling in the pipeline, however, use `TakeWhile`, `TakeUntil`, `TakeUntilDestroy` and `TakeUntilDisable` instead: - -```csharp -Observable.IntervalFrame(30).TakeUntilDisable(this) - .Subscribe(x => Debug.Log(x), () => Debug.Log("completed!")); -``` - -If you handle events, `Repeat` is an important but dangerous method. It may cause an infinite loop, so handle with care: - -```csharp -using UniRx; -using UniRx.Triggers; - -public class DangerousDragAndDrop : MonoBehaviour -{ - void Start() - { - this.gameObject.OnMouseDownAsObservable() - .SelectMany(_ => this.gameObject.UpdateAsObservable()) - .TakeUntil(this.gameObject.OnMouseUpAsObservable()) - .Select(_ => Input.mousePosition) - .Repeat() // dangerous!!! Repeat cause infinite repeat subscribe at GameObject was destroyed.(If in UnityEditor, Editor is freezed) - .Subscribe(x => Debug.Log(x)); - } -} -``` - -UniRx provides an additional safe Repeat method. `RepeatSafe`: if contiguous "OnComplete" are called repeat stops. `RepeatUntilDestroy(gameObject/component)`, `RepeatUntilDisable(gameObject/component)` allows to stop when a target GameObject has been destroyed: - -```csharp -this.gameObject.OnMouseDownAsObservable() - .SelectMany(_ => this.gameObject.UpdateAsObservable()) - .TakeUntil(this.gameObject.OnMouseUpAsObservable()) - .Select(_ => Input.mousePosition) - .RepeatUntilDestroy(this) // safety way - .Subscribe(x => Debug.Log(x)); -``` - -UniRx gurantees hot observable(FromEvent/Subject/ReactiveProperty/UnityUI.AsObservable..., there are like event) have unhandled exception durability. What is it? If subscribe in subcribe, does not detach event. - -```csharp -button.OnClickAsObservable().Subscribe(_ => -{ - // If throws error in inner subscribe, but doesn't detached OnClick event. - ObservableWWW.Get("htttp://error/").Subscribe(x => - { - Debug.Log(x); - }); -}); -``` - -This behaviour is sometimes useful such as user event handling. - - -All class instances provide an `ObserveEveryValueChanged` method, which watches for changing values every frame: - -```csharp -// watch position change -this.transform.ObserveEveryValueChanged(x => x.position).Subscribe(x => Debug.Log(x)); -``` - -It's very useful. If the watch target is a GameObject, it will stop observing when the target is destroyed, and call OnCompleted. If the watch target is a plain C# Object, OnCompleted will be called on GC. - -Converting Unity callbacks to IObservables ---- -Use Subject (or AsyncSubject for asynchronious operations): - -```csharp -public class LogCallback -{ - public string Condition; - public string StackTrace; - public UnityEngine.LogType LogType; -} - -public static class LogHelper -{ - static Subject subject; - - public static IObservable LogCallbackAsObservable() - { - if (subject == null) - { - subject = new Subject(); - - // Publish to Subject in callback - UnityEngine.Application.RegisterLogCallback((condition, stackTrace, type) => - { - subject.OnNext(new LogCallback { Condition = condition, StackTrace = stackTrace, LogType = type }); - }); - } - - return subject.AsObservable(); - } -} - -// method is separatable and composable -LogHelper.LogCallbackAsObservable() - .Where(x => x.LogType == LogType.Warning) - .Subscribe(); - -LogHelper.LogCallbackAsObservable() - .Where(x => x.LogType == LogType.Error) - .Subscribe(); -``` - -In Unity5, `Application.RegisterLogCallback` was removed in favor of `Application.logMessageReceived`, so we can now simply use `Observable.FromEvent`. - -```csharp -public static IObservable LogCallbackAsObservable() -{ - return Observable.FromEvent( - h => (condition, stackTrace, type) => h(new LogCallback { Condition = condition, StackTrace = stackTrace, LogType = type }), - h => Application.logMessageReceived += h, h => Application.logMessageReceived -= h); -} -``` - -Stream Logger ---- -```csharp -// using UniRx.Diagnostics; - -// logger is threadsafe, define per class with name. -static readonly Logger logger = new Logger("Sample11"); - -// call once at applicationinit -public static void ApplicationInitialize() -{ - // Log as Stream, UniRx.Diagnostics.ObservableLogger.Listener is IObservable - // You can subscribe and output to any place. - ObservableLogger.Listener.LogToUnityDebug(); - - // for example, filter only Exception and upload to web. - // (make custom sink(IObserver) is better to use) - ObservableLogger.Listener - .Where(x => x.LogType == LogType.Exception) - .Subscribe(x => - { - // ObservableWWW.Post("", null).Subscribe(); - }); -} - -// Debug is write only DebugBuild. -logger.Debug("Debug Message"); - -// or other logging methods -logger.Log("Message"); -logger.Exception(new Exception("test exception")); -``` - -Debugging ---- -`Debug` operator in `UniRx.Diagnostics` namespace helps debugging. - -```csharp -// needs Diagnostics using -using UniRx.Diagnostics; - ---- - -// [DebugDump, Normal]OnSubscribe -// [DebugDump, Normal]OnNext(1) -// [DebugDump, Normal]OnNext(10) -// [DebugDump, Normal]OnCompleted() -{ - var subject = new Subject(); - - subject.Debug("DebugDump, Normal").Subscribe(); - - subject.OnNext(1); - subject.OnNext(10); - subject.OnCompleted(); -} - -// [DebugDump, Cancel]OnSubscribe -// [DebugDump, Cancel]OnNext(1) -// [DebugDump, Cancel]OnCancel -{ - var subject = new Subject(); - - var d = subject.Debug("DebugDump, Cancel").Subscribe(); - - subject.OnNext(1); - d.Dispose(); -} - -// [DebugDump, Error]OnSubscribe -// [DebugDump, Error]OnNext(1) -// [DebugDump, Error]OnError(System.Exception) -{ - var subject = new Subject(); - - subject.Debug("DebugDump, Error").Subscribe(); - - subject.OnNext(1); - subject.OnError(new Exception()); -} -``` - -shows sequence element on `OnNext`, `OnError`, `OnCompleted`, `OnCancel`, `OnSubscribe` timing to Debug.Log. It enables only `#if DEBUG`. - -Unity-specific Extra Gems ---- -```csharp -// Unity's singleton UiThread Queue Scheduler -Scheduler.MainThreadScheduler -ObserveOnMainThread()/SubscribeOnMainThread() - -// Global StartCoroutine runner -MainThreadDispatcher.StartCoroutine(enumerator) - -// convert Coroutine to IObservable -Observable.FromCoroutine((observer, token) => enumerator(observer, token)); - -// convert IObservable to Coroutine -yield return Observable.Range(1, 10).ToYieldInstruction(); // after Unity 5.3, before can use StartAsCoroutine() - -// Lifetime hooks -Observable.EveryApplicationPause(); -Observable.EveryApplicationFocus(); -Observable.OnceApplicationQuit(); -``` - -Framecount-based time operators ---- -UniRx provides a few framecount-based time operators: - -Method | --------| -EveryUpdate| -EveryFixedUpdate| -EveryEndOfFrame| -EveryGameObjectUpdate| -EveryLateUpdate| -ObserveOnMainThread| -NextFrame| -IntervalFrame| -TimerFrame| -DelayFrame| -SampleFrame| -ThrottleFrame| -ThrottleFirstFrame| -TimeoutFrame| -DelayFrameSubscription| -FrameInterval| -FrameTimeInterval| -BatchFrame| - -For example, delayed invoke once: - -```csharp -Observable.TimerFrame(100).Subscribe(_ => Debug.Log("after 100 frame")); -``` - -Every* Method's execution order is - -``` -EveryGameObjectUpdate(in MainThreadDispatcher's Execution Order) -> -EveryUpdate -> -EveryLateUpdate -> -EveryEndOfFrame -``` - -EveryGameObjectUpdate invoke from same frame if caller is called before MainThreadDispatcher.Update(I recommend MainThreadDispatcher called first than others(ScriptExecutionOrder makes -32000) -EveryLateUpdate, EveryEndOfFrame invoke from same frame. -EveryUpdate, invoke from next frame. - -MicroCoroutine ---- -MicroCoroutine is memory efficient and fast coroutine worker. This implemantation is based on [Unity blog's 10000 UPDATE() CALLS](http://blogs.unity3d.com/2015/12/23/1k-update-calls/), avoid managed-unmanaged overhead so gets 10x faster iteration. MicroCoroutine is automaticaly used on Framecount-based time operators and ObserveEveryValueChanged. - -If you want to use MicroCoroutine instead of standard unity coroutine, use `MainThreadDispatcher.StartUpdateMicroCoroutine` or `Observable.FromMicroCoroutine`. - -```csharp -int counter; - -IEnumerator Worker() -{ - while(true) - { - counter++; - yield return null; - } -} - -void Start() -{ - for(var i = 0; i < 10000; i++) - { - // fast, memory efficient - MainThreadDispatcher.StartUpdateMicroCoroutine(Worker()); - - // slow... - // StartCoroutine(Worker()); - } -} -``` - -![image](https://cloud.githubusercontent.com/assets/46207/15267997/86e9ed5c-1a0c-11e6-8371-14b61a09c72c.png) - -MicroCoroutine's limitation, only supports `yield return null` and update timing is determined start method(`StartUpdateMicroCoroutine`, `StartFixedUpdateMicroCoroutine`, `StartEndOfFrameMicroCoroutine`). - -If you combine with other IObservable, you can check completed property like isDone. - -```csharp -IEnumerator MicroCoroutineWithToYieldInstruction() -{ - var www = ObservableWWW.Get("http://aaa").ToYieldInstruction(); - while (!www.IsDone) - { - yield return null; - } - - if (www.HasResult) - { - UnityEngine.Debug.Log(www.Result); - } -} -``` - -uGUI Integration ---- -UniRx can handle `UnityEvent`s easily. Use `UnityEvent.AsObservable` to subscribe to events: - -```csharp -public Button MyButton; -// --- -MyButton.onClick.AsObservable().Subscribe(_ => Debug.Log("clicked")); -``` - -Treating Events as Observables enables declarative UI programming. - -```csharp -public Toggle MyToggle; -public InputField MyInput; -public Text MyText; -public Slider MySlider; - -// On Start, you can write reactive rules for declaretive/reactive ui programming -void Start() -{ - // Toggle, Input etc as Observable (OnValueChangedAsObservable is a helper providing isOn value on subscribe) - // SubscribeToInteractable is an Extension Method, same as .interactable = x) - MyToggle.OnValueChangedAsObservable().SubscribeToInteractable(MyButton); - - // Input is displayed after a 1 second delay - MyInput.OnValueChangedAsObservable() - .Where(x => x != null) - .Delay(TimeSpan.FromSeconds(1)) - .SubscribeToText(MyText); // SubscribeToText is helper for subscribe to text - - // Converting for human readability - MySlider.OnValueChangedAsObservable() - .SubscribeToText(MyText, x => Math.Round(x, 2).ToString()); -} -``` - -For more on reactive UI programming please consult Sample12, Sample13 and the ReactiveProperty section below. - -ReactiveProperty, ReactiveCollection ---- -Game data often requires notification. Should we use properties and events (callbacks)? That's often too complex. UniRx provides ReactiveProperty, a lightweight property broker. - -```csharp -// Reactive Notification Model -public class Enemy -{ - public ReactiveProperty CurrentHp { get; private set; } - - public ReactiveProperty IsDead { get; private set; } - - public Enemy(int initialHp) - { - // Declarative Property - CurrentHp = new ReactiveProperty(initialHp); - IsDead = CurrentHp.Select(x => x <= 0).ToReactiveProperty(); - } -} - -// --- -// onclick, HP decrement -MyButton.OnClickAsObservable().Subscribe(_ => enemy.CurrentHp.Value -= 99); -// subscribe from notification model. -enemy.CurrentHp.SubscribeToText(MyText); -enemy.IsDead.Where(isDead => isDead == true) - .Subscribe(_ => - { - MyButton.interactable = false; - }); -``` - -You can combine ReactiveProperties, ReactiveCollections and observables returned by UnityEvent.AsObservable. All UI elements are observable. - -Generic ReactiveProperties are not serializable or inspecatble in the Unity editor, but UniRx provides specialized subclasses of ReactiveProperty that are. These include classes such as Int/LongReactiveProperty, Float/DoubleReactiveProperty, StringReactiveProperty, BoolReactiveProperty and more (Browse them here: [InspectableReactiveProperty.cs](https://github.com/neuecc/UniRx/blob/master/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/InspectableReactiveProperty.cs)). All are fully editable in the inspector. For custom Enum ReactiveProperty, it's easy to write a custom inspectable ReactiveProperty[T]. - -If you needs `[Multiline]` or `[Range]` attach to ReactiveProperty, you can use `MultilineReactivePropertyAttribute` and `RangeReactivePropertyAttribute` instead of `Multiline` and `Range`. - -The provided derived InpsectableReactiveProperties are displayed in the inspector naturally and notify when their value is changed even when it is changed in the inspector. - -![](StoreDocument/RxPropInspector.png) - -This functionality is provided by [InspectorDisplayDrawer](https://github.com/neuecc/UniRx/blob/master/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/InspectorDisplayDrawer.cs). You can supply your own custom specialized ReactiveProperties by inheriting from it: - -```csharp -public enum Fruit -{ - Apple, Grape -} - -[Serializable] -public class FruitReactiveProperty : ReactiveProperty -{ - public FruitReactiveProperty() - { - } - - public FruitReactiveProperty(Fruit initialValue) - :base(initialValue) - { - } -} - -[UnityEditor.CustomPropertyDrawer(typeof(FruitReactiveProperty))] -[UnityEditor.CustomPropertyDrawer(typeof(YourSpecializedReactiveProperty2))] // and others... -public class ExtendInspectorDisplayDrawer : InspectorDisplayDrawer -{ -} -``` - -If a ReactiveProperty value is only updated within a stream, you can make it read only by using from `ReadOnlyReactiveProperty`. - -```csharp -public class Person -{ - public ReactiveProperty GivenName { get; private set; } - public ReactiveProperty FamilyName { get; private set; } - public ReadOnlyReactiveProperty FullName { get; private set; } - - public Person(string givenName, string familyName) - { - GivenName = new ReactiveProperty(givenName); - FamilyName = new ReactiveProperty(familyName); - // If change the givenName or familyName, notify with fullName! - FullName = GivenName.CombineLatest(FamilyName, (x, y) => x + " " + y).ToReadOnlyReactiveProperty(); - } -} -``` - -Model-View-(Reactive)Presenter Pattern ---- -UniRx makes it possible to implement the MVP(MVRP) Pattern. - -![](StoreDocument/MVP_Pattern.png) - -Why should we use MVP instead of MVVM? Unity doesn't provide a UI binding mechanism and creating a binding layer is too complex and loss and affects performance. Still, Views need updating. Presenters are aware of their view's components and can update them. Although there is no real binding, Observables enables subscription to notification, which can act much like the real thing. This pattern is called a Reactive Presenter: - -```csharp -// Presenter for scene(canvas) root. -public class ReactivePresenter : MonoBehaviour -{ - // Presenter is aware of its View (binded in the inspector) - public Button MyButton; - public Toggle MyToggle; - - // State-Change-Events from Model by ReactiveProperty - Enemy enemy = new Enemy(1000); - - void Start() - { - // Rx supplies user events from Views and Models in a reactive manner - MyButton.OnClickAsObservable().Subscribe(_ => enemy.CurrentHp.Value -= 99); - MyToggle.OnValueChangedAsObservable().SubscribeToInteractable(MyButton); - - // Models notify Presenters via Rx, and Presenters update their views - enemy.CurrentHp.SubscribeToText(MyText); - enemy.IsDead.Where(isDead => isDead == true) - .Subscribe(_ => - { - MyToggle.interactable = MyButton.interactable = false; - }); - } -} - -// The Model. All property notify when their values change -public class Enemy -{ - public ReactiveProperty CurrentHp { get; private set; } - - public ReactiveProperty IsDead { get; private set; } - - public Enemy(int initialHp) - { - // Declarative Property - CurrentHp = new ReactiveProperty(initialHp); - IsDead = CurrentHp.Select(x => x <= 0).ToReactiveProperty(); - } -} -``` - -A View is a scene, that is a Unity hierarchy. Views are associated with Presenters by the Unity Engine on initialize. The XxxAsObservable methods make creating event signals simple, without any overhead. SubscribeToText and SubscribeToInteractable are simple binding-like helpers. These may be simple tools, but they are very powerful. They feel natural in the Unity environment and provide high performance and a clean architecture. - -![](StoreDocument/MVRP_Loop.png) - -V -> RP -> M -> RP -> V completely connected in a reactive way. UniRx provides all of the adaptor methods and classes, but other MVVM(or MV*) frameworks can be used instead. UniRx/ReactiveProperty is only simple toolkit. - -GUI programming also benefits from ObservableTriggers. ObservableTriggers convert Unity events to Observables, so the MV(R)P pattern can be composed using them. For example, `ObservableEventTrigger` converts uGUI events to Observable: - -```csharp -var eventTrigger = this.gameObject.AddComponent(); -eventTrigger.OnBeginDragAsObservable() - .SelectMany(_ => eventTrigger.OnDragAsObservable(), (start, current) => UniRx.Tuple.Create(start, current)) - .TakeUntil(eventTrigger.OnEndDragAsObservable()) - .RepeatUntilDestroy(this) - .Subscribe(x => Debug.Log(x)); -``` - -(Obsolete)PresenterBase ---- -> Note: -> PresenterBase works enough, but too complex. -> You can use simple `Initialize` method and call parent to child, it works for most scenario. -> So I don't recommend using `PresenterBase`, sorry. - -ReactiveCommand, AsyncReactiveCommand ----- -ReactiveCommand abstraction of button command with boolean interactable. - -```csharp -public class Player -{ - public ReactiveProperty Hp; - public ReactiveCommand Resurrect; - - public Player() - { - Hp = new ReactiveProperty(1000); - - // If dead, can not execute. - Resurrect = Hp.Select(x => x <= 0).ToReactiveCommand(); - // Execute when clicked - Resurrect.Subscribe(_ => - { - Hp.Value = 1000; - }); - } -} - -public class Presenter : MonoBehaviour -{ - public Button resurrectButton; - - Player player; - - void Start() - { - player = new Player(); - - // If Hp <= 0, can't press button. - player.Resurrect.BindTo(resurrectButton); - } -} -``` - -AsyncReactiveCommand is a variation of ReactiveCommand that `CanExecute`(in many cases bind to button's interactable) is changed to false until asynchronous execution was finished. - -```csharp -public class Presenter : MonoBehaviour -{ - public UnityEngine.UI.Button button; - - void Start() - { - var command = new AsyncReactiveCommand(); - - command.Subscribe(_ => - { - // heavy, heavy, heavy method.... - return Observable.Timer(TimeSpan.FromSeconds(3)).AsUnitObservable(); - }); - - // after clicked, button shows disable for 3 seconds - command.BindTo(button); - - // Note:shortcut extension, bind aync onclick directly - button.BindToOnClick(_ => - { - return Observable.Timer(TimeSpan.FromSeconds(3)).AsUnitObservable(); - }); - } -} -``` - -`AsyncReactiveCommand` has three constructor. - -* `()` - CanExecute is changed to false until async execution finished -* `(IObservable canExecuteSource)` - Mixed with empty, CanExecute becomes true when canExecuteSource send to true and does not executing -* `(IReactiveProperty sharedCanExecute)` - share execution status between multiple AsyncReactiveCommands, if one AsyncReactiveCommand is executing, other AsyncReactiveCommands(with same sharedCanExecute property) becomes CanExecute false until async execution finished - -```csharp -public class Presenter : MonoBehaviour -{ - public UnityEngine.UI.Button button1; - public UnityEngine.UI.Button button2; - - void Start() - { - // share canExecute status. - // when clicked button1, button1 and button2 was disabled for 3 seconds. - - var sharedCanExecute = new ReactiveProperty(); - - button1.BindToOnClick(sharedCanExecute, _ => - { - return Observable.Timer(TimeSpan.FromSeconds(3)).AsUnitObservable(); - }); - - button2.BindToOnClick(sharedCanExecute, _ => - { - return Observable.Timer(TimeSpan.FromSeconds(3)).AsUnitObservable(); - }); - } -} -``` - -MessageBroker, AsyncMessageBroker ---- -MessageBroker is Rx based in-memory pubsub system filtered by type. - -```csharp -public class TestArgs -{ - public int Value { get; set; } -} - ---- - -// Subscribe message on global-scope. -MessageBroker.Default.Receive().Subscribe(x => UnityEngine.Debug.Log(x)); - -// Publish message -MessageBroker.Default.Publish(new TestArgs { Value = 1000 }); -``` - -AsyncMessageBroker is variation of MessageBroker, can await Publish call. - -```csharp -AsyncMessageBroker.Default.Subscribe(x => -{ - // show after 3 seconds. - return Observable.Timer(TimeSpan.FromSeconds(3)) - .ForEachAsync(_ => - { - UnityEngine.Debug.Log(x); - }); -}); - -AsyncMessageBroker.Default.PublishAsync(new TestArgs { Value = 3000 }) - .Subscribe(_ => - { - UnityEngine.Debug.Log("called all subscriber completed"); - }); -``` - -UniRx.Toolkit ---- -`UniRx.Toolkit` includes serveral Rx-ish tools. Currently includes `ObjectPool` and `AsyncObjectPool`. It can `Rent`, `Return` and `PreloadAsync` for fill pool before rent operation. - -```csharp -// sample class -public class Foobar : MonoBehaviour -{ - public IObservable ActionAsync() - { - // heavy, heavy, action... - return Observable.Timer(TimeSpan.FromSeconds(3)).AsUnitObservable(); - } -} - -public class FoobarPool : ObjectPool -{ - readonly Foobar prefab; - readonly Transform hierarchyParent; - - public FoobarPool(Foobar prefab, Transform hierarchyParent) - { - this.prefab = prefab; - this.hierarchyParent = hierarchyParent; - } - - protected override Foobar CreateInstance() - { - var foobar = GameObject.Instantiate(prefab); - foobar.transform.SetParent(hierarchyParent); - - return foobar; - } - - // You can overload OnBeforeRent, OnBeforeReturn, OnClear for customize action. - // In default, OnBeforeRent = SetActive(true), OnBeforeReturn = SetActive(false) - - // protected override void OnBeforeRent(Foobar instance) - // protected override void OnBeforeReturn(Foobar instance) - // protected override void OnClear(Foobar instance) -} - -public class Presenter : MonoBehaviour -{ - FoobarPool pool = null; - - public Foobar prefab; - public Button rentButton; - - void Start() - { - pool = new FoobarPool(prefab, this.transform); - - rentButton.OnClickAsObservable().Subscribe(_ => - { - var foobar = pool.Rent(); - foobar.ActionAsync().Subscribe(__ => - { - // if action completed, return to pool - pool.Return(foobar); - }); - }); - } -} -``` - -Visual Studio Analyzer ---- -For Visual Studio 2015 users, a custom analyzer, UniRxAnalyzer, is provided. It can, for example, detect when streams aren't subscribed to. - -![](StoreDocument/AnalyzerReference.jpg) - -![](StoreDocument/VSAnalyzer.jpg) - -`ObservableWWW` doesn't fire until it's subscribed to, so the analyzer warns about incorrect usage. It can be downloaded from NuGet. - -* Install-Package [UniRxAnalyzer](http://www.nuget.org/packages/UniRxAnalyzer) - -Please submit new analyzer ideas on GitHub Issues! - -Samples ---- -See [UniRx/Examples](https://github.com/neuecc/UniRx/tree/master/Assets/Plugins/UniRx/Examples) - -The samples demonstrate how to do resource management (Sample09_EventHandling), what is the MainThreadDispatcher, among other things. - -Windows Store/Phone App (NETFX_CORE) ---- -Some interfaces, such as `UniRx.IObservable` and `System.IObservable`, cause conflicts when submitting to the Windows Store App. -Therefore, when using NETFX_CORE, please refrain from using such constructs as `UniRx.IObservable` and refer to the UniRx components by their short name, without adding the namespace. This solves the conflicts. - -async/await Support ---- -for the [Upgraded Mono/.Net in Editor on 5.5.0b4](https://forum.unity3d.com/threads/upgraded-mono-net-in-editor-on-5-5-0b4.433541/), Unity supports .NET 4.6 and C# 6 languages. UniRx provides `UniRxSynchronizationContext` for back to MainThread in Task multithreading. - -```csharp -async Task UniRxSynchronizationContextSolves() -{ - Debug.Log("start delay"); - - // UniRxSynchronizationContext is automatically used. - await Task.Delay(TimeSpan.FromMilliseconds(300)); - - Debug.Log("from another thread, but you can touch transform position."); - Debug.Log(this.transform.position); -} -``` - -UniRx also supports directly await Coroutine support type instad of yield return. - -```csharp -async Task CoroutineBridge() -{ - Debug.Log("start www await"); - - var www = await new WWW("https://unity3d.com"); - - Debug.Log(www.text); -} -``` - -Ofcourse, IObservable is awaitable. - -```csharp -async Task AwaitOnClick() -{ - Debug.Log("start mousedown await"); - - await this.OnMouseDownAsObservable().FirstOrDefault(); - - Debug.Log("end mousedown await"); -} -``` - -DLL Separation ---- -If you want to pre-build UniRx, you can build own dll. clone project and open `UniRx.sln`, you can see `UniRx`, it is fullset separated project of UniRx. You should define compile symbol like `UNITY;UNITY_5_4_OR_NEWER;UNITY_5_4_0;UNITY_5_4;UNITY_5;` + `UNITY_EDITOR`, `UNITY_IPHONE` or other platform symbol. We can not provides pre-build binary to release page, asset store because compile symbol is different each other. - -If you want to use UniRx for .NET 3.5 normal CLR application, you can use `UniRx.Library`. `UniRx.Library` is splitted UnityEngine dependency, build `UniRx.Library` needs to define `UniRxLibrary` symbol. pre-build `UniRx.Library` binary, it avilable in NuGet. - -[Install-Package UniRx](https://www.nuget.org/packages/UniRx) - -Reference ---- -* [UniRx/wiki](https://github.com/neuecc/UniRx/wiki) - -UniRx API documents. - -* [ReactiveX](http://reactivex.io/) - -The home of ReactiveX. [Introduction](http://reactivex.io/intro.html), [All operators](http://reactivex.io/documentation/operators.html) are illustrated with graphical marble diagrams, there makes easy to understand. And UniRx is official [ReactiveX Languages](http://reactivex.io/languages.html). - -* [Introduction to Rx](http://introtorx.com/) - -A great online tutorial and eBook. - -* [Beginner's Guide to the Reactive Extensions](http://msdn.microsoft.com/en-us/data/gg577611) - -Many videos, slides and documents for Rx.NET. - -* [The future of programming technology in Unity - UniRx -(JPN)](http://www.slideshare.net/torisoup/unity-unirx) - - [Korean translation](http://www.slideshare.net/agebreak/160402-unirx) - -Intro slide by [@torisoup](https://github.com/torisoup) - -* [Reactive Programming, ​Unity 3D and you](http://slides.com/sammegidov/unirx#/) - - [Repository of UniRxSimpleGame](https://github.com/Xerios/UniRxSimpleGame) - -Intro slide and sample game by [@Xerios](https://github.com/Xerios) - -What game or library is using UniRx? ---- -Games - -Libraries - -- [PhotonWire](https://github.com/neuecc/PhotonWire) - Typed Asynchronous RPC Layer for Photon Server + Unity. -- [uFrame Game Framework](https://www.assetstore.unity3d.com/en/#!/content/14381) - MVVM/MV* framework designed for the Unity Engine. -- [EcsRx](https://github.com/grofit/ecsrx) - A simple framework for unity using the ECS paradigm but with unirx for fully reactive systems. -- [ActionStreetMap Demo](https://github.com/ActionStreetMap/demo) - ASM is an engine for building real city environment dynamically using OSM data. -- [utymap](https://github.com/reinterpretcat/utymap) - UtyMap is library for building real city environment dynamically using various data sources (mostly, OpenStreetMap and Natural Earth). - -If you use UniRx, please comment to [UniRx/issues/152](https://github.com/neuecc/UniRx/issues/152). - -Help & Contribute ---- -Support thread on the Unity forum. Ask me any question - [http://forum.unity3d.com/threads/248535-UniRx-Reactive-Extensions-for-Unity](http://forum.unity3d.com/threads/248535-UniRx-Reactive-Extensions-for-Unity) - -We welcome any contributions, be they bug reports, requests or pull request. -Please consult and submit your reports or requests on GitHub issues. -Source code is available in `Assets/Plugins/UniRx/Scripts`. -This project is using Visual Studio with [UnityVS](http://unityvs.com/). - -Author's other Unity + LINQ Assets ---- -[LINQ to GameObject](https://github.com/neuecc/LINQ-to-GameObject-for-Unity/) is a group of GameObject extensions for Unity that allows traversing the hierarchy and appending GameObject to it like LINQ to XML. It's free and opensource on GitHub. - -![](https://raw.githubusercontent.com/neuecc/LINQ-to-GameObject-for-Unity/master/Images/axis.jpg) - Author Info --- Yoshifumi Kawai(a.k.a. neuecc) is a software developer in Japan. -He is the Director/CTO at Grani, Inc. -Grani is a top social game developer in Japan. He is awarding Microsoft MVP for Visual C# since 2011. -He is known as the creator of [linq.js](http://linqjs.codeplex.com/)(LINQ to Objects for JavaScript) Blog: https://medium.com/@neuecc (English) Blog: http://neue.cc/ (Japanese) @@ -1309,6 +24,6 @@ Twitter: https://twitter.com/neuecc (Japanese) License --- -This library is under the MIT License. +This library is under the [MIT License](https://github.com/neuecc/UniRx/blob/master/LICENSE). Some code is borrowed from [Rx.NET](https://rx.codeplex.com/) and [mono/mcs](https://github.com/mono/mono). diff --git a/src/Assets/Plugins/UniRx/Scripts.meta b/src/Assets/Plugins/UniRx/Scripts.meta index 29c1fce..31d66f2 100644 --- a/src/Assets/Plugins/UniRx/Scripts.meta +++ b/src/Assets/Plugins/UniRx/Scripts.meta @@ -1,8 +1,8 @@ fileFormatVersion: 2 guid: eaf9ac9937118834c86197511fd5317f folderAsset: yes -timeCreated: 1485556057 -licenseType: Free +timeCreated: 1455373896 +licenseType: Store DefaultImporter: userData: assetBundleName: diff --git a/src/Assets/Plugins/UniRx/Scripts/Asynchronous.meta b/src/Assets/Plugins/UniRx/Scripts/Asynchronous.meta index afc3309..41660a7 100644 --- a/src/Assets/Plugins/UniRx/Scripts/Asynchronous.meta +++ b/src/Assets/Plugins/UniRx/Scripts/Asynchronous.meta @@ -1,8 +1,8 @@ fileFormatVersion: 2 guid: c490b3110ff2a524ea963382652a378f folderAsset: yes -timeCreated: 1485556057 -licenseType: Free +timeCreated: 1455373896 +licenseType: Store DefaultImporter: userData: assetBundleName: diff --git a/src/Assets/Plugins/UniRx/Scripts/Disposables.meta b/src/Assets/Plugins/UniRx/Scripts/Disposables.meta index 8fe2861..4070ff2 100644 --- a/src/Assets/Plugins/UniRx/Scripts/Disposables.meta +++ b/src/Assets/Plugins/UniRx/Scripts/Disposables.meta @@ -1,8 +1,8 @@ fileFormatVersion: 2 guid: d061218ef48281148bb1a996d971bdbe folderAsset: yes -timeCreated: 1485556057 -licenseType: Free +timeCreated: 1455373896 +licenseType: Store DefaultImporter: userData: assetBundleName: diff --git a/src/Assets/Plugins/UniRx/Scripts/Disposables/CancellationDisposable.cs b/src/Assets/Plugins/UniRx/Scripts/Disposables/CancellationDisposable.cs index 8841080..abf2189 100644 --- a/src/Assets/Plugins/UniRx/Scripts/Disposables/CancellationDisposable.cs +++ b/src/Assets/Plugins/UniRx/Scripts/Disposables/CancellationDisposable.cs @@ -3,7 +3,7 @@ // Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.txt in the project root for license information. -#if (ENABLE_MONO_BLEEDING_EDGE_EDITOR || ENABLE_MONO_BLEEDING_EDGE_STANDALONE) +#if (NETFX_CORE || NET_4_6 || NET_STANDARD_2_0 || UNITY_WSA_10_0) using System; using System.Threading; diff --git a/src/Assets/Plugins/UniRx/Scripts/Disposables/CompositeDisposable.cs b/src/Assets/Plugins/UniRx/Scripts/Disposables/CompositeDisposable.cs index 97645fd..8b0841e 100644 --- a/src/Assets/Plugins/UniRx/Scripts/Disposables/CompositeDisposable.cs +++ b/src/Assets/Plugins/UniRx/Scripts/Disposables/CompositeDisposable.cs @@ -227,7 +227,7 @@ public void CopyTo(IDisposable[] array, int arrayIndex) lock (_gate) { var disArray = new List(); - foreach (var item in disArray) + foreach (var item in _disposables) { if (item != null) disArray.Add(item); } diff --git a/src/Assets/Plugins/UniRx/Scripts/InternalUtil.meta b/src/Assets/Plugins/UniRx/Scripts/InternalUtil.meta index 8c2f69e..c363e39 100644 --- a/src/Assets/Plugins/UniRx/Scripts/InternalUtil.meta +++ b/src/Assets/Plugins/UniRx/Scripts/InternalUtil.meta @@ -1,8 +1,8 @@ fileFormatVersion: 2 guid: 7147cf40e45d9b7468957f2d28b1f2f0 folderAsset: yes -timeCreated: 1485556057 -licenseType: Free +timeCreated: 1455373896 +licenseType: Store DefaultImporter: userData: assetBundleName: diff --git a/src/Assets/Plugins/UniRx/Scripts/InternalUtil/CancellableTaskCompletionSource.cs b/src/Assets/Plugins/UniRx/Scripts/InternalUtil/CancellableTaskCompletionSource.cs new file mode 100644 index 0000000..7e1e686 --- /dev/null +++ b/src/Assets/Plugins/UniRx/Scripts/InternalUtil/CancellableTaskCompletionSource.cs @@ -0,0 +1,23 @@ +#if CSHARP_7_OR_LATER || (UNITY_2018_3_OR_NEWER && (NET_STANDARD_2_0 || NET_4_6)) +#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; + +namespace UniRx.InternalUtil +{ + internal interface ICancellableTaskCompletionSource + { + bool TrySetException(Exception exception); + bool TrySetCanceled(); + } + + internal class CancellableTaskCompletionSource : TaskCompletionSource, ICancellableTaskCompletionSource + { + + } +} + +#endif \ No newline at end of file diff --git a/src/Assets/Plugins/UniRx/Scripts/InternalUtil/CancellableTaskCompletionSource.cs.meta b/src/Assets/Plugins/UniRx/Scripts/InternalUtil/CancellableTaskCompletionSource.cs.meta new file mode 100644 index 0000000..a856963 --- /dev/null +++ b/src/Assets/Plugins/UniRx/Scripts/InternalUtil/CancellableTaskCompletionSource.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 622c7ba8630c25b4c911cd1612ee0887 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/Assets/Plugins/UniRx/Scripts/InternalUtil/ExceptionExtensions.cs b/src/Assets/Plugins/UniRx/Scripts/InternalUtil/ExceptionExtensions.cs new file mode 100644 index 0000000..39a7a4c --- /dev/null +++ b/src/Assets/Plugins/UniRx/Scripts/InternalUtil/ExceptionExtensions.cs @@ -0,0 +1,15 @@ +namespace UniRx.InternalUtil +{ + using System; + + internal static class ExceptionExtensions + { + public static void Throw(this Exception exception) + { +#if (NET_4_6 || NET_STANDARD_2_0) + System.Runtime.ExceptionServices.ExceptionDispatchInfo.Capture(exception).Throw(); +#endif + throw exception; + } + } +} diff --git a/src/Assets/Plugins/UniRx/Scripts/InternalUtil/ExceptionExtensions.cs.meta b/src/Assets/Plugins/UniRx/Scripts/InternalUtil/ExceptionExtensions.cs.meta new file mode 100644 index 0000000..33c402c --- /dev/null +++ b/src/Assets/Plugins/UniRx/Scripts/InternalUtil/ExceptionExtensions.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 94d5d10805124b34c8b488ebf3f893eb +timeCreated: 1509016318 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/Assets/Plugins/UniRx/Scripts/InternalUtil/ListObserver.cs b/src/Assets/Plugins/UniRx/Scripts/InternalUtil/ListObserver.cs index 6142ba4..5ad1afc 100644 --- a/src/Assets/Plugins/UniRx/Scripts/InternalUtil/ListObserver.cs +++ b/src/Assets/Plugins/UniRx/Scripts/InternalUtil/ListObserver.cs @@ -99,7 +99,7 @@ public void OnCompleted() public void OnError(Exception error) { - throw error; + error.Throw(); } public void OnNext(T value) diff --git a/src/Assets/Plugins/UniRx/Scripts/InternalUtil/PromiseHelper.cs b/src/Assets/Plugins/UniRx/Scripts/InternalUtil/PromiseHelper.cs new file mode 100644 index 0000000..9662f29 --- /dev/null +++ b/src/Assets/Plugins/UniRx/Scripts/InternalUtil/PromiseHelper.cs @@ -0,0 +1,26 @@ +#if CSHARP_7_OR_LATER || (UNITY_2018_3_OR_NEWER && (NET_STANDARD_2_0 || NET_4_6)) +#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member + +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; + +namespace UniRx.InternalUtil +{ + internal static class PromiseHelper + { + internal static void TrySetResultAll(IEnumerable> source, T value) + { + var rentArray = source.ToArray(); // better to use Arraypool. + var array = rentArray; + var len = rentArray.Length; + for (int i = 0; i < len; i++) + { + array[i].TrySetResult(value); + array[i] = null; + } + } + } +} + +#endif \ No newline at end of file diff --git a/src/Assets/Plugins/UniRx/Scripts/InternalUtil/PromiseHelper.cs.meta b/src/Assets/Plugins/UniRx/Scripts/InternalUtil/PromiseHelper.cs.meta new file mode 100644 index 0000000..6d7ba4f --- /dev/null +++ b/src/Assets/Plugins/UniRx/Scripts/InternalUtil/PromiseHelper.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: daa7aa90cece0fe40920a35e79f526dd +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/Assets/Plugins/UniRx/Scripts/InternalUtil/ReflectionAccessor.cs b/src/Assets/Plugins/UniRx/Scripts/InternalUtil/ReflectionAccessor.cs deleted file mode 100644 index 5f46e1a..0000000 --- a/src/Assets/Plugins/UniRx/Scripts/InternalUtil/ReflectionAccessor.cs +++ /dev/null @@ -1,114 +0,0 @@ -// no use - -#if false - -using System; -using System.Collections.Generic; -using System.Linq.Expressions; -using System.Reflection; - -namespace UniRx.InternalUtil -{ - public interface IReflectionAccessor - { - object GetValue(object source); - } - - public static class ReflectionAccessor - { - public static IReflectionAccessor Create(MemberInfo memberInfo) - { - var propInfo = memberInfo as PropertyInfo; - if (propInfo != null) - { - return new PropertyInfoAccessor(propInfo); - } - - var fieldInfo = memberInfo as FieldInfo; - if (fieldInfo != null) - { - return new FieldInfoAccessor(fieldInfo); - } - - throw new ArgumentException("invalid member info:" + memberInfo.GetType()); - } - - public static IReflectionAccessor Create(MemberExpression rootExpression) - { - if (rootExpression == null) throw new ArgumentNullException("rootExpression"); - - var accessor = new RecursiveAccessor(rootExpression); - // minimum optimization - return (accessor.AccessorCount == 1) - ? accessor.GetFirstAccessor() - : accessor; - } - - class PropertyInfoAccessor : IReflectionAccessor - { - readonly MethodInfo methodInfo; - - public PropertyInfoAccessor(PropertyInfo propInfo) - { - methodInfo = propInfo.GetGetMethod(); - } - - public object GetValue(object source) - { - return methodInfo.Invoke(source, null); - } - } - - class FieldInfoAccessor : IReflectionAccessor - { - readonly FieldInfo fieldInfo; - - public FieldInfoAccessor(FieldInfo fieldInfo) - { - this.fieldInfo = fieldInfo; - } - - public object GetValue(object source) - { - return fieldInfo.GetValue(source); - } - } - - class RecursiveAccessor : IReflectionAccessor - { - readonly List accessors; - - public int AccessorCount { get { return accessors.Count; } } - public IReflectionAccessor GetFirstAccessor() - { - return accessors[0]; - } - - public RecursiveAccessor(Expression expression) - { - var reflectionAccessors = new List(); - while (expression is MemberExpression) - { - var memberExpression = (MemberExpression)expression; - reflectionAccessors.Add(ReflectionAccessor.Create(memberExpression.Member)); - expression = memberExpression.Expression; - } - - this.accessors = reflectionAccessors; - } - - public object GetValue(object source) - { - var result = source; - for (int i = accessors.Count - 1; i >= 0; i--) - { - var accessor = accessors[i]; - result = accessor.GetValue(result); - } - return result; - } - } - } -} - -#endif \ No newline at end of file diff --git a/src/Assets/Plugins/UniRx/Scripts/InternalUtil/UnityEqualityComparer.cs b/src/Assets/Plugins/UniRx/Scripts/InternalUtil/UnityEqualityComparer.cs new file mode 100644 index 0000000..98abdf1 --- /dev/null +++ b/src/Assets/Plugins/UniRx/Scripts/InternalUtil/UnityEqualityComparer.cs @@ -0,0 +1,271 @@ +#if CSHARP_7_OR_LATER || (UNITY_2018_3_OR_NEWER && (NET_STANDARD_2_0 || NET_4_6)) +#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member +#endif + +using System; +using System.Collections.Generic; +using UnityEngine; + +namespace UniRx.InternalUtil +{ + internal static class UnityEqualityComparer + { + public static readonly IEqualityComparer Vector2 = new Vector2EqualityComparer(); + public static readonly IEqualityComparer Vector3 = new Vector3EqualityComparer(); + public static readonly IEqualityComparer Vector4 = new Vector4EqualityComparer(); + public static readonly IEqualityComparer Color = new ColorEqualityComparer(); + public static readonly IEqualityComparer Color32 = new Color32EqualityComparer(); + public static readonly IEqualityComparer Rect = new RectEqualityComparer(); + public static readonly IEqualityComparer Bounds = new BoundsEqualityComparer(); + public static readonly IEqualityComparer Quaternion = new QuaternionEqualityComparer(); + + static readonly RuntimeTypeHandle vector2Type = typeof(Vector2).TypeHandle; + static readonly RuntimeTypeHandle vector3Type = typeof(Vector3).TypeHandle; + static readonly RuntimeTypeHandle vector4Type = typeof(Vector4).TypeHandle; + static readonly RuntimeTypeHandle colorType = typeof(Color).TypeHandle; + static readonly RuntimeTypeHandle color32Type = typeof(Color32).TypeHandle; + static readonly RuntimeTypeHandle rectType = typeof(Rect).TypeHandle; + static readonly RuntimeTypeHandle boundsType = typeof(Bounds).TypeHandle; + static readonly RuntimeTypeHandle quaternionType = typeof(Quaternion).TypeHandle; + +#if UNITY_2017_2_OR_NEWER + + public static readonly IEqualityComparer Vector2Int = new Vector2IntEqualityComparer(); + public static readonly IEqualityComparer Vector3Int = new Vector3IntEqualityComparer(); + public static readonly IEqualityComparer RangeInt = new RangeIntEqualityComparer(); + public static readonly IEqualityComparer RectInt = new RectIntEqualityComparer(); + public static readonly IEqualityComparer BoundsInt = new BoundsIntEqualityComparer(); + + static readonly RuntimeTypeHandle vector2IntType = typeof(Vector2Int).TypeHandle; + static readonly RuntimeTypeHandle vector3IntType = typeof(Vector3Int).TypeHandle; + static readonly RuntimeTypeHandle rangeIntType = typeof(RangeInt).TypeHandle; + static readonly RuntimeTypeHandle rectIntType = typeof(RectInt).TypeHandle; + static readonly RuntimeTypeHandle boundsIntType = typeof(BoundsInt).TypeHandle; + +#endif + + static class Cache + { + public static readonly IEqualityComparer Comparer; + + static Cache() + { + var comparer = GetDefaultHelper(typeof(T)); + if (comparer == null) + { + Comparer = EqualityComparer.Default; + } + else + { + Comparer = (IEqualityComparer)comparer; + } + } + } + + public static IEqualityComparer GetDefault() + { + return Cache.Comparer; + } + + static object GetDefaultHelper(Type type) + { + var t = type.TypeHandle; + + if (t.Equals(vector2Type)) return (object)UnityEqualityComparer.Vector2; + if (t.Equals(vector3Type)) return (object)UnityEqualityComparer.Vector3; + if (t.Equals(vector4Type)) return (object)UnityEqualityComparer.Vector4; + if (t.Equals(colorType)) return (object)UnityEqualityComparer.Color; + if (t.Equals(color32Type)) return (object)UnityEqualityComparer.Color32; + if (t.Equals(rectType)) return (object)UnityEqualityComparer.Rect; + if (t.Equals(boundsType)) return (object)UnityEqualityComparer.Bounds; + if (t.Equals(quaternionType)) return (object)UnityEqualityComparer.Quaternion; + +#if UNITY_2017_2_OR_NEWER + + if (t.Equals(vector2IntType)) return (object)UnityEqualityComparer.Vector2Int; + if (t.Equals(vector3IntType)) return (object)UnityEqualityComparer.Vector3Int; + if (t.Equals(rangeIntType)) return (object)UnityEqualityComparer.RangeInt; + if (t.Equals(rectIntType)) return (object)UnityEqualityComparer.RectInt; + if (t.Equals(boundsIntType)) return (object)UnityEqualityComparer.BoundsInt; +#endif + + return null; + } + + sealed class Vector2EqualityComparer : IEqualityComparer + { + public bool Equals(Vector2 self, Vector2 vector) + { + return self.x.Equals(vector.x) && self.y.Equals(vector.y); + } + + public int GetHashCode(Vector2 obj) + { + return obj.x.GetHashCode() ^ obj.y.GetHashCode() << 2; + } + } + + sealed class Vector3EqualityComparer : IEqualityComparer + { + public bool Equals(Vector3 self, Vector3 vector) + { + return self.x.Equals(vector.x) && self.y.Equals(vector.y) && self.z.Equals(vector.z); + } + + public int GetHashCode(Vector3 obj) + { + return obj.x.GetHashCode() ^ obj.y.GetHashCode() << 2 ^ obj.z.GetHashCode() >> 2; + } + } + + sealed class Vector4EqualityComparer : IEqualityComparer + { + public bool Equals(Vector4 self, Vector4 vector) + { + return self.x.Equals(vector.x) && self.y.Equals(vector.y) && self.z.Equals(vector.z) && self.w.Equals(vector.w); + } + + public int GetHashCode(Vector4 obj) + { + return obj.x.GetHashCode() ^ obj.y.GetHashCode() << 2 ^ obj.z.GetHashCode() >> 2 ^ obj.w.GetHashCode() >> 1; + } + } + + sealed class ColorEqualityComparer : IEqualityComparer + { + public bool Equals(Color self, Color other) + { + return self.r.Equals(other.r) && self.g.Equals(other.g) && self.b.Equals(other.b) && self.a.Equals(other.a); + } + + public int GetHashCode(Color obj) + { + return obj.r.GetHashCode() ^ obj.g.GetHashCode() << 2 ^ obj.b.GetHashCode() >> 2 ^ obj.a.GetHashCode() >> 1; + } + } + + sealed class RectEqualityComparer : IEqualityComparer + { + public bool Equals(Rect self, Rect other) + { + return self.x.Equals(other.x) && self.width.Equals(other.width) && self.y.Equals(other.y) && self.height.Equals(other.height); + } + + public int GetHashCode(Rect obj) + { + return obj.x.GetHashCode() ^ obj.width.GetHashCode() << 2 ^ obj.y.GetHashCode() >> 2 ^ obj.height.GetHashCode() >> 1; + } + } + + sealed class BoundsEqualityComparer : IEqualityComparer + { + public bool Equals(Bounds self, Bounds vector) + { + return self.center.Equals(vector.center) && self.extents.Equals(vector.extents); + } + + public int GetHashCode(Bounds obj) + { + return obj.center.GetHashCode() ^ obj.extents.GetHashCode() << 2; + } + } + + sealed class QuaternionEqualityComparer : IEqualityComparer + { + public bool Equals(Quaternion self, Quaternion vector) + { + return self.x.Equals(vector.x) && self.y.Equals(vector.y) && self.z.Equals(vector.z) && self.w.Equals(vector.w); + } + + public int GetHashCode(Quaternion obj) + { + return obj.x.GetHashCode() ^ obj.y.GetHashCode() << 2 ^ obj.z.GetHashCode() >> 2 ^ obj.w.GetHashCode() >> 1; + } + } + + sealed class Color32EqualityComparer : IEqualityComparer + { + public bool Equals(Color32 self, Color32 vector) + { + return self.a.Equals(vector.a) && self.r.Equals(vector.r) && self.g.Equals(vector.g) && self.b.Equals(vector.b); + } + + public int GetHashCode(Color32 obj) + { + return obj.a.GetHashCode() ^ obj.r.GetHashCode() << 2 ^ obj.g.GetHashCode() >> 2 ^ obj.b.GetHashCode() >> 1; + } + } + +#if UNITY_2017_2_OR_NEWER + + sealed class Vector2IntEqualityComparer : IEqualityComparer + { + public bool Equals(Vector2Int self, Vector2Int vector) + { + return self.x.Equals(vector.x) && self.y.Equals(vector.y); + } + + public int GetHashCode(Vector2Int obj) + { + return obj.x.GetHashCode() ^ obj.y.GetHashCode() << 2; + } + } + + sealed class Vector3IntEqualityComparer : IEqualityComparer + { + public static readonly Vector3IntEqualityComparer Default = new Vector3IntEqualityComparer(); + + public bool Equals(Vector3Int self, Vector3Int vector) + { + return self.x.Equals(vector.x) && self.y.Equals(vector.y) && self.z.Equals(vector.z); + } + + public int GetHashCode(Vector3Int obj) + { + return obj.x.GetHashCode() ^ obj.y.GetHashCode() << 2 ^ obj.z.GetHashCode() >> 2; + } + } + + sealed class RangeIntEqualityComparer : IEqualityComparer + { + public bool Equals(RangeInt self, RangeInt vector) + { + return self.start.Equals(vector.start) && self.length.Equals(vector.length); + } + + public int GetHashCode(RangeInt obj) + { + return obj.start.GetHashCode() ^ obj.length.GetHashCode() << 2; + } + } + + sealed class RectIntEqualityComparer : IEqualityComparer + { + public bool Equals(RectInt self, RectInt other) + { + return self.x.Equals(other.x) && self.width.Equals(other.width) && self.y.Equals(other.y) && self.height.Equals(other.height); + } + + public int GetHashCode(RectInt obj) + { + return obj.x.GetHashCode() ^ obj.width.GetHashCode() << 2 ^ obj.y.GetHashCode() >> 2 ^ obj.height.GetHashCode() >> 1; + } + } + + sealed class BoundsIntEqualityComparer : IEqualityComparer + { + public bool Equals(BoundsInt self, BoundsInt vector) + { + return Vector3IntEqualityComparer.Default.Equals(self.position, vector.position) + && Vector3IntEqualityComparer.Default.Equals(self.size, vector.size); + } + + public int GetHashCode(BoundsInt obj) + { + return Vector3IntEqualityComparer.Default.GetHashCode(obj.position) ^ Vector3IntEqualityComparer.Default.GetHashCode(obj.size) << 2; + } + } + +#endif + } +} diff --git a/src/Assets/Plugins/UniRx/Scripts/InternalUtil/UnityEqualityComparer.cs.meta b/src/Assets/Plugins/UniRx/Scripts/InternalUtil/UnityEqualityComparer.cs.meta new file mode 100644 index 0000000..3550ec5 --- /dev/null +++ b/src/Assets/Plugins/UniRx/Scripts/InternalUtil/UnityEqualityComparer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 626a410137515ac45bb59d1ca91d8f3f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/Assets/Plugins/UniRx/Scripts/Notification.cs b/src/Assets/Plugins/UniRx/Scripts/Notification.cs index 8ac00ee..25f8f1a 100644 --- a/src/Assets/Plugins/UniRx/Scripts/Notification.cs +++ b/src/Assets/Plugins/UniRx/Scripts/Notification.cs @@ -9,6 +9,7 @@ using System.Globalization; using System.Collections.Generic; using System; +using UniRx.InternalUtil; #pragma warning disable 0659 #pragma warning disable 0661 @@ -270,7 +271,7 @@ public OnErrorNotification(Exception exception) /// /// Throws the exception. /// - public override T Value { get { throw exception; } } + public override T Value { get { exception.Throw(); throw exception; } } /// /// Returns the exception. diff --git a/src/Assets/Plugins/UniRx/Scripts/Notifiers.meta b/src/Assets/Plugins/UniRx/Scripts/Notifiers.meta index 4bfdcff..0202f53 100644 --- a/src/Assets/Plugins/UniRx/Scripts/Notifiers.meta +++ b/src/Assets/Plugins/UniRx/Scripts/Notifiers.meta @@ -1,8 +1,8 @@ fileFormatVersion: 2 guid: 63388f4f94a67e34590e2167d45e4046 folderAsset: yes -timeCreated: 1485556057 -licenseType: Free +timeCreated: 1455373896 +licenseType: Store DefaultImporter: userData: assetBundleName: diff --git a/src/Assets/Plugins/UniRx/Scripts/Observable.Awaiter.cs b/src/Assets/Plugins/UniRx/Scripts/Observable.Awaiter.cs index 8de8d9f..1040e0a 100644 --- a/src/Assets/Plugins/UniRx/Scripts/Observable.Awaiter.cs +++ b/src/Assets/Plugins/UniRx/Scripts/Observable.Awaiter.cs @@ -1,4 +1,4 @@ -#if (ENABLE_MONO_BLEEDING_EDGE_EDITOR || ENABLE_MONO_BLEEDING_EDGE_STANDALONE) +#if (NET_4_6 || NET_STANDARD_2_0) using System; using System.Collections.Generic; diff --git a/src/Assets/Plugins/UniRx/Scripts/Observable.Creation.cs b/src/Assets/Plugins/UniRx/Scripts/Observable.Creation.cs index 471b1cf..a13b51c 100644 --- a/src/Assets/Plugins/UniRx/Scripts/Observable.Creation.cs +++ b/src/Assets/Plugins/UniRx/Scripts/Observable.Creation.cs @@ -162,6 +162,14 @@ public static IObservable Return(bool value) : (IObservable)ImmutableReturnFalseObservable.Instance; } + /// + /// Return single sequence Immediately, optimized for Int32. + /// + public static IObservable Return(int value) + { + return ImmutableReturnInt32Observable.GetInt32Observable(value); + } + /// /// Same as Observable.Return(Unit.Default); but no allocate memory. /// diff --git a/src/Assets/Plugins/UniRx/Scripts/Observable.Paging.cs b/src/Assets/Plugins/UniRx/Scripts/Observable.Paging.cs index 03b5c3d..36f8e16 100644 --- a/src/Assets/Plugins/UniRx/Scripts/Observable.Paging.cs +++ b/src/Assets/Plugins/UniRx/Scripts/Observable.Paging.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Text; +using UniRx.InternalUtil; using UniRx.Operators; namespace UniRx diff --git a/src/Assets/Plugins/UniRx/Scripts/Observable.cs b/src/Assets/Plugins/UniRx/Scripts/Observable.cs index 3740b03..1f5d10a 100644 --- a/src/Assets/Plugins/UniRx/Scripts/Observable.cs +++ b/src/Assets/Plugins/UniRx/Scripts/Observable.cs @@ -2,6 +2,7 @@ using System.Collections; using System.Collections.Generic; using System.Threading; +using UniRx.InternalUtil; using UniRx.Operators; namespace UniRx diff --git a/src/Assets/Plugins/UniRx/Scripts/Observer.cs b/src/Assets/Plugins/UniRx/Scripts/Observer.cs index a47bf97..47efd51 100644 --- a/src/Assets/Plugins/UniRx/Scripts/Observer.cs +++ b/src/Assets/Plugins/UniRx/Scripts/Observer.cs @@ -1,5 +1,6 @@ using System; using System.Threading; +using UniRx.InternalUtil; namespace UniRx { @@ -492,7 +493,7 @@ public static IDisposable SubscribeWithState3(this internal static class Stubs { public static readonly Action Nop = () => { }; - public static readonly Action Throw = ex => { throw ex; }; + public static readonly Action Throw = ex => { ex.Throw(); }; // marker for CatchIgnore and Catch avoid iOS AOT problem. public static IObservable CatchIgnore(Exception ex) @@ -505,19 +506,19 @@ internal static class Stubs { public static readonly Action Ignore = (T t) => { }; public static readonly Func Identity = (T t) => t; - public static readonly Action Throw = (ex, _) => { throw ex; }; + public static readonly Action Throw = (ex, _) => { ex.Throw(); }; } internal static class Stubs { public static readonly Action Ignore = (x, y) => { }; - public static readonly Action Throw = (ex, _, __) => { throw ex; }; + public static readonly Action Throw = (ex, _, __) => { ex.Throw(); }; } internal static class Stubs { public static readonly Action Ignore = (x, y, z) => { }; - public static readonly Action Throw = (ex, _, __, ___) => { throw ex; }; + public static readonly Action Throw = (ex, _, __, ___) => { ex.Throw(); }; } } \ No newline at end of file diff --git a/src/Assets/Plugins/UniRx/Scripts/Operators.meta b/src/Assets/Plugins/UniRx/Scripts/Operators.meta index ea3541a..4e9bd91 100644 --- a/src/Assets/Plugins/UniRx/Scripts/Operators.meta +++ b/src/Assets/Plugins/UniRx/Scripts/Operators.meta @@ -1,8 +1,8 @@ fileFormatVersion: 2 guid: b37ab723fc6829344bcb6a5991a4e2a1 folderAsset: yes -timeCreated: 1485556057 -licenseType: Free +timeCreated: 1455373896 +licenseType: Store DefaultImporter: userData: assetBundleName: diff --git a/src/Assets/Plugins/UniRx/Scripts/Operators/Catch.cs b/src/Assets/Plugins/UniRx/Scripts/Operators/Catch.cs index f56d021..9790969 100644 --- a/src/Assets/Plugins/UniRx/Scripts/Operators/Catch.cs +++ b/src/Assets/Plugins/UniRx/Scripts/Operators/Catch.cs @@ -24,7 +24,8 @@ protected override IDisposable SubscribeCore(IObserver observer, IDisposable class Catch : OperatorObserverBase { readonly CatchObservable parent; - SerialDisposable serialDisposable; + SingleAssignmentDisposable sourceSubscription; + SingleAssignmentDisposable exceptionSubscription; public Catch(CatchObservable parent, IObserver observer, IDisposable cancel) : base(observer, cancel) @@ -34,10 +35,11 @@ public Catch(CatchObservable parent, IObserver observer, IDisp public IDisposable Run() { - this.serialDisposable = new SerialDisposable(); - this.serialDisposable.Disposable = parent.source.Subscribe(this); + this.sourceSubscription = new SingleAssignmentDisposable(); + this.exceptionSubscription = new SingleAssignmentDisposable(); - return serialDisposable; + this.sourceSubscription.Disposable = parent.source.Subscribe(this); + return StableCompositeDisposable.Create(sourceSubscription, exceptionSubscription); } public override void OnNext(T value) @@ -68,9 +70,7 @@ public override void OnError(Exception error) return; } - var d = new SingleAssignmentDisposable(); - serialDisposable.Disposable = d; - d.Disposable = next.Subscribe(observer); + exceptionSubscription.Disposable = next.Subscribe(observer); } else { diff --git a/src/Assets/Plugins/UniRx/Scripts/Operators/ContinueWith.cs b/src/Assets/Plugins/UniRx/Scripts/Operators/ContinueWith.cs index a8b4f86..ee46b3a 100644 --- a/src/Assets/Plugins/UniRx/Scripts/Operators/ContinueWith.cs +++ b/src/Assets/Plugins/UniRx/Scripts/Operators/ContinueWith.cs @@ -56,9 +56,16 @@ public override void OnCompleted() { if (seenValue) { - var v = parent.selector(lastValue); - // dispose source subscription - serialDisposable.Disposable = v.Subscribe(observer); + try + { + var v = parent.selector(lastValue); + // dispose source subscription + serialDisposable.Disposable = v.Subscribe(observer); + } + catch (Exception error) + { + OnError(error); + } } else { diff --git a/src/Assets/Plugins/UniRx/Scripts/Operators/ObserveOn.cs b/src/Assets/Plugins/UniRx/Scripts/Operators/ObserveOn.cs index b1badf0..b8f02f1 100644 --- a/src/Assets/Plugins/UniRx/Scripts/Operators/ObserveOn.cs +++ b/src/Assets/Plugins/UniRx/Scripts/Operators/ObserveOn.cs @@ -30,8 +30,29 @@ protected override IDisposable SubscribeCore(IObserver observer, IDisposable class ObserveOn : OperatorObserverBase { + class SchedulableAction : IDisposable + { + public Notification data; + public LinkedListNode node; + public IDisposable schedule; + + public void Dispose() + { + if (schedule != null) + schedule.Dispose(); + schedule = null; + + if (node.List != null) + { + node.List.Remove(node); + } + } + + public bool IsScheduled { get { return schedule != null; } } + } + readonly ObserveOnObservable parent; - readonly LinkedList scheduleDisposables = new LinkedList(); + readonly LinkedList actions = new LinkedList(); bool isDisposed; public ObserveOn(ObserveOnObservable parent, IObserver observer, IDisposable cancel) : base(observer, cancel) @@ -47,89 +68,90 @@ public IDisposable Run() return StableCompositeDisposable.Create(sourceDisposable, Disposable.Create(() => { - lock (scheduleDisposables) + lock (actions) { isDisposed = true; - foreach (var item in scheduleDisposables) - { - item.Dispose(); - } - scheduleDisposables.Clear(); + while (actions.Count > 0) + { + // Dispose will both cancel the action (if not already running) + // and remove it from 'actions' + actions.First.Value.Dispose(); + } } })); } public override void OnNext(T value) { - var self = new SingleAssignmentDisposable(); - LinkedListNode node; - lock (scheduleDisposables) - { - if (isDisposed) return; - - node = scheduleDisposables.AddLast(self); - } - self.Disposable = parent.scheduler.Schedule(() => - { - self.Dispose(); - lock (scheduleDisposables) - { - if (node.List != null) - { - node.List.Remove(node); - } - } - base.observer.OnNext(value); - }); + QueueAction(new Notification.OnNextNotification(value)); } public override void OnError(Exception error) { - var self = new SingleAssignmentDisposable(); - LinkedListNode node; - lock (scheduleDisposables) - { - if (isDisposed) return; - - node = scheduleDisposables.AddLast(self); - } - self.Disposable = parent.scheduler.Schedule(() => - { - self.Dispose(); - lock (scheduleDisposables) - { - if (node.List != null) - { - node.List.Remove(node); - } - } - try { observer.OnError(error); } finally { Dispose(); }; - }); + QueueAction(new Notification.OnErrorNotification(error)); } public override void OnCompleted() { - var self = new SingleAssignmentDisposable(); - LinkedListNode node; - lock (scheduleDisposables) + QueueAction(new Notification.OnCompletedNotification()); + } + + private void QueueAction(Notification data) + { + var action = new SchedulableAction { data = data }; + lock (actions) { if (isDisposed) return; - node = scheduleDisposables.AddLast(self); + action.node = actions.AddLast(action); + ProcessNext(); } - self.Disposable = parent.scheduler.Schedule(() => + } + + private void ProcessNext() + { + lock (actions) { - self.Dispose(); - lock (scheduleDisposables) + if (actions.Count == 0 || isDisposed) + return; + + var action = actions.First.Value; + + if (action.IsScheduled) + return; + + action.schedule = parent.scheduler.Schedule(() => { - if (node.List != null) + try { - node.List.Remove(node); + switch (action.data.Kind) + { + case NotificationKind.OnNext: + observer.OnNext(action.data.Value); + break; + case NotificationKind.OnError: + observer.OnError(action.data.Exception); + break; + case NotificationKind.OnCompleted: + observer.OnCompleted(); + break; + } } - } - try { observer.OnCompleted(); } finally { Dispose(); }; - }); + finally + { + lock (actions) + { + action.Dispose(); + } + + if (action.data.Kind == NotificationKind.OnNext) + ProcessNext(); + else + Dispose(); + } + }); + } } } diff --git a/src/Assets/Plugins/UniRx/Scripts/Operators/Return.cs b/src/Assets/Plugins/UniRx/Scripts/Operators/Return.cs index f6f7c32..45167c7 100644 --- a/src/Assets/Plugins/UniRx/Scripts/Operators/Return.cs +++ b/src/Assets/Plugins/UniRx/Scripts/Operators/Return.cs @@ -155,4 +155,51 @@ public IDisposable Subscribe(IObserver observer) return Disposable.Empty; } } + + internal class ImmutableReturnInt32Observable : IObservable, IOptimizedObservable + { + static ImmutableReturnInt32Observable[] Caches = new ImmutableReturnInt32Observable[] + { + new ImmutableReturnInt32Observable(-1), + new ImmutableReturnInt32Observable(0), + new ImmutableReturnInt32Observable(1), + new ImmutableReturnInt32Observable(2), + new ImmutableReturnInt32Observable(3), + new ImmutableReturnInt32Observable(4), + new ImmutableReturnInt32Observable(5), + new ImmutableReturnInt32Observable(6), + new ImmutableReturnInt32Observable(7), + new ImmutableReturnInt32Observable(8), + new ImmutableReturnInt32Observable(9), + }; + + public static IObservable GetInt32Observable(int x) + { + if (-1 <= x && x <= 9) + { + return Caches[x + 1]; + } + + return new ImmediateReturnObservable(x); + } + + readonly int x; + + ImmutableReturnInt32Observable(int x) + { + this.x = x; + } + + public bool IsRequiredSubscribeOnCurrentThread() + { + return false; + } + + public IDisposable Subscribe(IObserver observer) + { + observer.OnNext(x); + observer.OnCompleted(); + return Disposable.Empty; + } + } } diff --git a/src/Assets/Plugins/UniRx/Scripts/Operators/Sample.cs b/src/Assets/Plugins/UniRx/Scripts/Operators/Sample.cs index 23da59b..7c73de7 100644 --- a/src/Assets/Plugins/UniRx/Scripts/Operators/Sample.cs +++ b/src/Assets/Plugins/UniRx/Scripts/Operators/Sample.cs @@ -201,6 +201,18 @@ public SampleTick(Sample parent) public void OnCompleted() { + lock (parent.gate) + { + if (parent.isUpdated) + { + parent.isUpdated = false; + parent.observer.OnNext(parent.latestValue); + } + if (parent.isCompleted) + { + try { parent.observer.OnCompleted(); } finally { parent.Dispose(); } + } + } } public void OnError(Exception error) diff --git a/src/Assets/Plugins/UniRx/Scripts/Operators/TakeUntil.cs b/src/Assets/Plugins/UniRx/Scripts/Operators/TakeUntil.cs index ccaea33..dab95d0 100644 --- a/src/Assets/Plugins/UniRx/Scripts/Operators/TakeUntil.cs +++ b/src/Assets/Plugins/UniRx/Scripts/Operators/TakeUntil.cs @@ -23,7 +23,6 @@ class TakeUntil : OperatorObserverBase { readonly TakeUntilObservable parent; object gate = new object(); - bool open; public TakeUntil(TakeUntilObservable parent, IObserver observer, IDisposable cancel) : base(observer, cancel) { @@ -43,17 +42,10 @@ public IDisposable Run() public override void OnNext(T value) { - if (open) + lock (gate) { observer.OnNext(value); } - else - { - lock (gate) - { - observer.OnNext(value); - } - } } public override void OnError(Exception error) @@ -87,7 +79,15 @@ public void OnNext(TOther value) { lock (sourceObserver.gate) { - try { sourceObserver.observer.OnCompleted(); } finally { sourceObserver.Dispose(); } + try + { + sourceObserver.observer.OnCompleted(); + } + finally + { + sourceObserver.Dispose(); + subscription.Dispose(); + } } } @@ -95,7 +95,15 @@ public void OnError(Exception error) { lock (sourceObserver.gate) { - try { sourceObserver.observer.OnError(error); } finally { sourceObserver.Dispose(); } + try + { + sourceObserver.observer.OnError(error); + } + finally + { + sourceObserver.Dispose(); + subscription.Dispose(); + } } } @@ -103,8 +111,15 @@ public void OnCompleted() { lock (sourceObserver.gate) { - sourceObserver.open = true; - subscription.Dispose(); + try + { + sourceObserver.observer.OnCompleted(); + } + finally + { + sourceObserver.Dispose(); + subscription.Dispose(); + } } } } diff --git a/src/Assets/Plugins/UniRx/Scripts/Operators/Wait.cs b/src/Assets/Plugins/UniRx/Scripts/Operators/Wait.cs index 8942897..abf77f7 100644 --- a/src/Assets/Plugins/UniRx/Scripts/Operators/Wait.cs +++ b/src/Assets/Plugins/UniRx/Scripts/Operators/Wait.cs @@ -1,4 +1,5 @@ using System; +using UniRx.InternalUtil; namespace UniRx.Operators { @@ -36,7 +37,7 @@ public T Run() } } - if (ex != null) throw ex; + if (ex != null) ex.Throw(); if (!seenValue) throw new InvalidOperationException("No Elements."); return value; diff --git a/src/Assets/Plugins/UniRx/Scripts/Schedulers.meta b/src/Assets/Plugins/UniRx/Scripts/Schedulers.meta index 9a93633..01beb91 100644 --- a/src/Assets/Plugins/UniRx/Scripts/Schedulers.meta +++ b/src/Assets/Plugins/UniRx/Scripts/Schedulers.meta @@ -1,8 +1,8 @@ fileFormatVersion: 2 guid: ca4cbb2e99a69854d93ad929ef72117b folderAsset: yes -timeCreated: 1485556057 -licenseType: Free +timeCreated: 1455373896 +licenseType: Store DefaultImporter: userData: assetBundleName: diff --git a/src/Assets/Plugins/UniRx/Scripts/Schedulers/ThreadPoolScheduler.cs b/src/Assets/Plugins/UniRx/Scripts/Schedulers/ThreadPoolScheduler.cs index 188bf39..3a12b0a 100644 --- a/src/Assets/Plugins/UniRx/Scripts/Schedulers/ThreadPoolScheduler.cs +++ b/src/Assets/Plugins/UniRx/Scripts/Schedulers/ThreadPoolScheduler.cs @@ -12,7 +12,7 @@ public static partial class Scheduler { public static readonly IScheduler ThreadPool = new ThreadPoolScheduler(); - class ThreadPoolScheduler : IScheduler, ISchedulerPeriodic, ISchedulerQueueing + class ThreadPoolScheduler : IScheduler, ISchedulerPeriodic { public ThreadPoolScheduler() { diff --git a/src/Assets/Plugins/UniRx/Scripts/Subjects.meta b/src/Assets/Plugins/UniRx/Scripts/Subjects.meta index d7da60f..fca8e76 100644 --- a/src/Assets/Plugins/UniRx/Scripts/Subjects.meta +++ b/src/Assets/Plugins/UniRx/Scripts/Subjects.meta @@ -1,8 +1,8 @@ fileFormatVersion: 2 guid: 660d85cac8b3db241b8e6e333d493d38 folderAsset: yes -timeCreated: 1485556057 -licenseType: Free +timeCreated: 1455373896 +licenseType: Store DefaultImporter: userData: assetBundleName: diff --git a/src/Assets/Plugins/UniRx/Scripts/Subjects/AsyncSubject.cs b/src/Assets/Plugins/UniRx/Scripts/Subjects/AsyncSubject.cs index 9da9b48..98b3086 100644 --- a/src/Assets/Plugins/UniRx/Scripts/Subjects/AsyncSubject.cs +++ b/src/Assets/Plugins/UniRx/Scripts/Subjects/AsyncSubject.cs @@ -2,7 +2,7 @@ using System.Collections.Generic; using UniRx.InternalUtil; -#if (ENABLE_MONO_BLEEDING_EDGE_EDITOR || ENABLE_MONO_BLEEDING_EDGE_STANDALONE) +#if (NET_4_6 || NET_STANDARD_2_0) using System.Runtime.CompilerServices; using System.Threading; #endif @@ -10,7 +10,7 @@ namespace UniRx { public sealed class AsyncSubject : ISubject, IOptimizedObservable, IDisposable -#if (ENABLE_MONO_BLEEDING_EDGE_EDITOR || ENABLE_MONO_BLEEDING_EDGE_STANDALONE) +#if (NET_4_6 || NET_STANDARD_2_0) , INotifyCompletion #endif { @@ -29,7 +29,7 @@ public T Value { ThrowIfDisposed(); if (!isStopped) throw new InvalidOperationException("AsyncSubject is not completed yet"); - if (lastError != null) throw lastError; + if (lastError != null) lastError.Throw(); return lastValue; } } @@ -219,7 +219,7 @@ public void Dispose() } -#if (ENABLE_MONO_BLEEDING_EDGE_EDITOR || ENABLE_MONO_BLEEDING_EDGE_STANDALONE) +#if (NET_4_6 || NET_STANDARD_2_0) /// /// Gets an awaitable object for the current AsyncSubject. @@ -315,7 +315,7 @@ public T GetResult() if (lastError != null) { - throw lastError; + lastError.Throw(); } if (!hasValue) diff --git a/src/Assets/Plugins/UniRx/Scripts/Subjects/BehaviorSubject.cs b/src/Assets/Plugins/UniRx/Scripts/Subjects/BehaviorSubject.cs index a737348..028c783 100644 --- a/src/Assets/Plugins/UniRx/Scripts/Subjects/BehaviorSubject.cs +++ b/src/Assets/Plugins/UniRx/Scripts/Subjects/BehaviorSubject.cs @@ -23,7 +23,7 @@ public T Value get { ThrowIfDisposed(); - if (lastError != null) throw lastError; + if (lastError != null) lastError.Throw(); return lastValue; } } diff --git a/src/Assets/Plugins/UniRx/Scripts/System.meta b/src/Assets/Plugins/UniRx/Scripts/System.meta index 4167c0f..2a9a64f 100644 --- a/src/Assets/Plugins/UniRx/Scripts/System.meta +++ b/src/Assets/Plugins/UniRx/Scripts/System.meta @@ -1,8 +1,8 @@ fileFormatVersion: 2 guid: e38b8fd0fa968d0438280dbb22012b81 folderAsset: yes -timeCreated: 1485556058 -licenseType: Free +timeCreated: 1455373896 +licenseType: Store DefaultImporter: userData: assetBundleName: diff --git a/src/Assets/Plugins/UniRx/Scripts/System/IObservable.cs b/src/Assets/Plugins/UniRx/Scripts/System/IObservable.cs index 166557b..77516f5 100644 --- a/src/Assets/Plugins/UniRx/Scripts/System/IObservable.cs +++ b/src/Assets/Plugins/UniRx/Scripts/System/IObservable.cs @@ -2,7 +2,7 @@ using System; -#if !(NETFX_CORE || ENABLE_MONO_BLEEDING_EDGE_EDITOR || ENABLE_MONO_BLEEDING_EDGE_STANDALONE) +#if !(NETFX_CORE || NET_4_6 || NET_STANDARD_2_0 || UNITY_WSA_10_0) namespace UniRx { diff --git a/src/Assets/Plugins/UniRx/Scripts/System/IObserver.cs b/src/Assets/Plugins/UniRx/Scripts/System/IObserver.cs index bf29ddd..bbc213f 100644 --- a/src/Assets/Plugins/UniRx/Scripts/System/IObserver.cs +++ b/src/Assets/Plugins/UniRx/Scripts/System/IObserver.cs @@ -1,6 +1,6 @@ // defined from .NET Framework 4.0 and NETFX_CORE -#if !(NETFX_CORE || ENABLE_MONO_BLEEDING_EDGE_EDITOR || ENABLE_MONO_BLEEDING_EDGE_STANDALONE) +#if !(NETFX_CORE || NET_4_6 || NET_STANDARD_2_0 || UNITY_WSA_10_0) using System; diff --git a/src/Assets/Plugins/UniRx/Scripts/System/IProgress.cs b/src/Assets/Plugins/UniRx/Scripts/System/IProgress.cs index e12ff41..7764ec7 100644 --- a/src/Assets/Plugins/UniRx/Scripts/System/IProgress.cs +++ b/src/Assets/Plugins/UniRx/Scripts/System/IProgress.cs @@ -1,6 +1,6 @@ // defined from .NET Framework 4.5 and NETFX_CORE -#if !(NETFX_CORE || ENABLE_MONO_BLEEDING_EDGE_EDITOR || ENABLE_MONO_BLEEDING_EDGE_STANDALONE) +#if !(NETFX_CORE || NET_4_6 || NET_STANDARD_2_0 || UNITY_WSA_10_0) using System; diff --git a/src/Assets/Plugins/UniRx/Scripts/System/Tuple.cs b/src/Assets/Plugins/UniRx/Scripts/System/Tuple.cs index d32ec25..47e04e1 100644 --- a/src/Assets/Plugins/UniRx/Scripts/System/Tuple.cs +++ b/src/Assets/Plugins/UniRx/Scripts/System/Tuple.cs @@ -4,7 +4,7 @@ // 2. implements IEquatable // note, we need to create ValueTuple or UniRxTuple... -#if !(NETFX_CORE || ENABLE_MONO_BLEEDING_EDGE_EDITOR || ENABLE_MONO_BLEEDING_EDGE_STANDALONE) +#if !(NETFX_CORE || NET_4_6 || NET_STANDARD_2_0 || UNITY_WSA_10_0) using System; using System.Collections; diff --git a/src/Assets/Plugins/UniRx/Scripts/Tasks.meta b/src/Assets/Plugins/UniRx/Scripts/Tasks.meta index 83bb727..67db7d4 100644 --- a/src/Assets/Plugins/UniRx/Scripts/Tasks.meta +++ b/src/Assets/Plugins/UniRx/Scripts/Tasks.meta @@ -1,8 +1,8 @@ fileFormatVersion: 2 -guid: 54ff4cca8ab626749af33f46685c8432 +guid: f4389552ae1b4f54fb6d931c0a6efd08 folderAsset: yes -timeCreated: 1485556057 -licenseType: Free +timeCreated: 1475139656 +licenseType: Store DefaultImporter: userData: assetBundleName: diff --git a/src/Assets/Plugins/UniRx/Scripts/Tasks/TaskObservableExtensions.cs b/src/Assets/Plugins/UniRx/Scripts/Tasks/TaskObservableExtensions.cs index 66eba51..d5a7970 100644 --- a/src/Assets/Plugins/UniRx/Scripts/Tasks/TaskObservableExtensions.cs +++ b/src/Assets/Plugins/UniRx/Scripts/Tasks/TaskObservableExtensions.cs @@ -1,6 +1,6 @@ // this code is borrowed from RxOfficial(rx.codeplex.com) and modified -#if (ENABLE_MONO_BLEEDING_EDGE_EDITOR || ENABLE_MONO_BLEEDING_EDGE_STANDALONE) +#if (NET_4_6 || NET_STANDARD_2_0) using System; using System.Threading.Tasks; diff --git a/src/Assets/Plugins/UniRx/Scripts/UniRx.asmdef b/src/Assets/Plugins/UniRx/Scripts/UniRx.asmdef new file mode 100644 index 0000000..2339898 --- /dev/null +++ b/src/Assets/Plugins/UniRx/Scripts/UniRx.asmdef @@ -0,0 +1,12 @@ +{ + "name": "UniRx", + "references": [], + "includePlatforms": [], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": true, + "defineConstraints": [], + "versionDefines": [] +} \ No newline at end of file diff --git a/src/Assets/Plugins/UniRx/Scripts/UniRx.asmdef.meta b/src/Assets/Plugins/UniRx/Scripts/UniRx.asmdef.meta new file mode 100644 index 0000000..aaf3bd2 --- /dev/null +++ b/src/Assets/Plugins/UniRx/Scripts/UniRx.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 560b04d1a97f54a4e82edc0cbbb69285 +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge.meta b/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge.meta index f1bb51d..e0e2d7b 100644 --- a/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge.meta +++ b/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge.meta @@ -1,8 +1,8 @@ fileFormatVersion: 2 guid: c6fa31db6d33195438d3a9c49effc512 folderAsset: yes -timeCreated: 1485556057 -licenseType: Free +timeCreated: 1455373896 +licenseType: Store DefaultImporter: userData: assetBundleName: diff --git a/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/AotSafeExtensions.cs b/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/AotSafeExtensions.cs deleted file mode 100644 index a4e372a..0000000 --- a/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/AotSafeExtensions.cs +++ /dev/null @@ -1,21 +0,0 @@ -using System; -using System.Collections; -using System.Collections.Generic; - -namespace UniRx -{ - public static class AotSafeExtensions - { - public static IEnumerable AsSafeEnumerable(this IEnumerable source) - { - var e = ((IEnumerable)source).GetEnumerator(); - using (e as IDisposable) - { - while (e.MoveNext()) - { - yield return (T)e.Current; - } - } - } - } -} \ No newline at end of file diff --git a/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/CancellationToken.cs b/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/CancellationToken.cs index d4bc341..0384ba6 100644 --- a/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/CancellationToken.cs +++ b/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/CancellationToken.cs @@ -1,4 +1,4 @@ -#if !(ENABLE_MONO_BLEEDING_EDGE_EDITOR || ENABLE_MONO_BLEEDING_EDGE_STANDALONE) +#if !(NETFX_CORE || NET_4_6 || NET_STANDARD_2_0 || UNITY_WSA_10_0) using System; diff --git a/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/CoroutineAsyncBridge.cs b/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/CoroutineAsyncBridge.cs index c6a9125..c2d8ee8 100644 --- a/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/CoroutineAsyncBridge.cs +++ b/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/CoroutineAsyncBridge.cs @@ -1,4 +1,4 @@ -#if (ENABLE_MONO_BLEEDING_EDGE_EDITOR || ENABLE_MONO_BLEEDING_EDGE_STANDALONE) +#if (NET_4_6 || NET_STANDARD_2_0) using System; using System.Collections; @@ -86,15 +86,27 @@ public T GetResult() public static class CoroutineAsyncExtensions { - public static CoroutineAsyncBridge GetAwaiter(this WWW www) + public static CoroutineAsyncBridge GetAwaiter(this Coroutine coroutine) { - return CoroutineAsyncBridge.Start(www); + return CoroutineAsyncBridge.Start(coroutine); } - public static CoroutineAsyncBridge GetAwaiter(this Coroutine coroutine) +#if !(CSHARP_7_OR_LATER || (UNITY_2018_3_OR_NEWER && (NET_STANDARD_2_0 || NET_4_6))) + + // should use UniRx.Async in C# 7.0 + +#if UNITY_2018_3_OR_NEWER +#pragma warning disable CS0618 +#endif + public static CoroutineAsyncBridge GetAwaiter(this WWW www) { - return CoroutineAsyncBridge.Start(coroutine); + return CoroutineAsyncBridge.Start(www); } +#if UNITY_2018_3_OR_NEWER +#pragma warning restore CS0618 +#endif + + public static CoroutineAsyncBridge GetAwaiter(this AsyncOperation asyncOperation) { @@ -105,6 +117,8 @@ public static CoroutineAsyncBridge GetAwaiter(this IEnumerator coroutine) { return CoroutineAsyncBridge.Start(coroutine); } + +#endif } } diff --git a/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/Diagnostics.meta b/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/Diagnostics.meta index 8d7ca3d..852204b 100644 --- a/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/Diagnostics.meta +++ b/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/Diagnostics.meta @@ -1,8 +1,8 @@ fileFormatVersion: 2 guid: 125ca82be137b8544a2b65f7150ee2d4 folderAsset: yes -timeCreated: 1485556058 -licenseType: Free +timeCreated: 1455373896 +licenseType: Store DefaultImporter: userData: assetBundleName: diff --git a/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/InspectableReactiveProperty.cs b/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/InspectableReactiveProperty.cs index fdc163f..ac54988 100644 --- a/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/InspectableReactiveProperty.cs +++ b/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/InspectableReactiveProperty.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using UniRx.InternalUtil; using UnityEngine; namespace UniRx diff --git a/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/InspectorDisplayDrawer.cs b/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/InspectorDisplayDrawer.cs index 36ed742..9dd4316 100644 --- a/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/InspectorDisplayDrawer.cs +++ b/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/InspectorDisplayDrawer.cs @@ -146,10 +146,24 @@ public override void OnGUI(Rect position, UnityEditor.SerializedProperty propert object GetValueRecursive(object obj, int index, string[] paths) { var path = paths[index]; - var fieldInfo = obj.GetType().GetField(path, BindingFlags.IgnoreCase | BindingFlags.GetField | BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); + + FieldInfo fldInfo = null; + var type = obj.GetType(); + while (fldInfo == null) + { + // attempt to get information about the field + fldInfo = type.GetField(path, BindingFlags.IgnoreCase | BindingFlags.GetField | BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); + + if (fldInfo != null || + type.BaseType == null || + type.BaseType.IsSubclassOf(typeof(ReactiveProperty<>))) break; + + // if the field information is missing, it may be in the base class + type = type.BaseType; + } // If array, path = Array.data[index] - if (fieldInfo == null && path == "Array") + if (fldInfo == null && path == "Array") { try { @@ -172,12 +186,12 @@ object GetValueRecursive(object obj, int index, string[] paths) throw; } } - else if (fieldInfo == null) + else if (fldInfo == null) { throw new Exception("Can't decode path, please report to UniRx's GitHub issues:" + string.Join(", ", paths)); } - var v = fieldInfo.GetValue(obj); + var v = fldInfo.GetValue(obj); if (index < paths.Length - 1) { return GetValueRecursive(v, ++index, paths); diff --git a/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/LazyTask.cs b/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/LazyTask.cs deleted file mode 100644 index 2b8af84..0000000 --- a/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/LazyTask.cs +++ /dev/null @@ -1,143 +0,0 @@ -// LazyTask is only for before MONO_BLEEDING_EDGE -#if !(ENABLE_MONO_BLEEDING_EDGE_EDITOR || ENABLE_MONO_BLEEDING_EDGE_STANDALONE) - -using System; -using System.Collections; -using System.Collections.Generic; -using System.Linq; // in future, should remove LINQ -using System.Threading; -using UnityEngine; - -namespace UniRx -{ - public abstract class LazyTask - { - public enum TaskStatus - { - WaitingToRun, - Running, - Completed, - Canceled, - Faulted - } - - public TaskStatus Status { get; protected set; } - - protected readonly BooleanDisposable cancellation = new BooleanDisposable(); - - public abstract Coroutine Start(); - - public void Cancel() - { - if (Status == TaskStatus.WaitingToRun || Status == TaskStatus.Running) - { - Status = TaskStatus.Canceled; - cancellation.Dispose(); - } - } - - public static LazyTask FromResult(T value) - { - return LazyTask.FromResult(value); - } - - - public static Coroutine WhenAll(params LazyTask[] tasks) - { - return WhenAll(tasks.AsEnumerable()); - } - - public static Coroutine WhenAll(IEnumerable tasks) - { - var coroutines = tasks.Select(x => x.Start()).ToArray(); - - return MainThreadDispatcher.StartCoroutine(WhenAllCore(coroutines)); - } - - static IEnumerator WhenAllCore(Coroutine[] coroutines) - { - foreach (var item in coroutines) - { - // wait sequential, but all coroutine is already started, it's parallel - yield return item; - } - } - } - - public class LazyTask : LazyTask - { - readonly IObservable source; - - T result; - public T Result - { - get - { - if (Status != TaskStatus.Completed) throw new InvalidOperationException("Task is not completed"); - return result; - } - } - - /// - /// If faulted stock error. If completed or canceld, returns null. - /// - public Exception Exception { get; private set; } - - public LazyTask(IObservable source) - { - this.source = source; - this.Status = TaskStatus.WaitingToRun; - } - - public override Coroutine Start() - { - if (Status != TaskStatus.WaitingToRun) throw new InvalidOperationException("Task already started"); - - Status = TaskStatus.Running; - - var coroutine = source.StartAsCoroutine( - onResult: x => { result = x; Status = TaskStatus.Completed; }, - onError: ex => { Exception = ex; Status = TaskStatus.Faulted; }, - cancel: new CancellationToken(cancellation)); - - return coroutine; - } - - public override string ToString() - { - switch (Status) - { - case TaskStatus.WaitingToRun: - return "Status:WaitingToRun"; - case TaskStatus.Running: - return "Status:Running"; - case TaskStatus.Completed: - return "Status:Completed, Result:" + Result.ToString(); - case TaskStatus.Canceled: - return "Status:Canceled"; - case TaskStatus.Faulted: - return "Status:Faulted, Result:" + Result.ToString(); - default: - return ""; - } - } - - public static LazyTask FromResult(T value) - { - var t = new LazyTask(null); - t.result = value; ; - t.Status = TaskStatus.Completed; - return t; - } - } - - public static class LazyTaskExtensions - { - public static LazyTask ToLazyTask(this IObservable source) - { - return new LazyTask(source); - } - } -} - -#endif \ No newline at end of file diff --git a/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/MainThreadDispatcher.cs b/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/MainThreadDispatcher.cs index 9ee8484..91cc8c4 100644 --- a/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/MainThreadDispatcher.cs +++ b/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/MainThreadDispatcher.cs @@ -117,12 +117,18 @@ void ConsumeEnumerator(IEnumerator routine) } var type = current.GetType(); +#if UNITY_2018_3_OR_NEWER +#pragma warning disable CS0618 +#endif if (type == typeof(WWW)) { var www = (WWW)current; editorQueueWorker.Enqueue(_ => ConsumeEnumerator(UnwrapWaitWWW(www, routine)), null); return; } +#if UNITY_2018_3_OR_NEWER +#pragma warning restore CS0618 +#endif else if (type == typeof(AsyncOperation)) { var asyncOperation = (AsyncOperation)current; @@ -156,6 +162,9 @@ void ConsumeEnumerator(IEnumerator routine) } } +#if UNITY_2018_3_OR_NEWER +#pragma warning disable CS0618 +#endif IEnumerator UnwrapWaitWWW(WWW www, IEnumerator continuation) { while (!www.isDone) @@ -164,6 +173,9 @@ IEnumerator UnwrapWaitWWW(WWW www, IEnumerator continuation) } ConsumeEnumerator(continuation); } +#if UNITY_2018_3_OR_NEWER +#pragma warning restore CS0618 +#endif IEnumerator UnwrapWaitAsyncOperation(AsyncOperation asyncOperation, IEnumerator continuation) { @@ -482,13 +494,6 @@ void Awake() mainThreadToken = new object(); initialized = true; -#if (ENABLE_MONO_BLEEDING_EDGE_EDITOR || ENABLE_MONO_BLEEDING_EDGE_STANDALONE) - if (UniRxSynchronizationContext.AutoInstall) - { - SynchronizationContext.SetSynchronizationContext(new UniRxSynchronizationContext()); - } -#endif - updateMicroCoroutine = new MicroCoroutine(ex => unhandledExceptionCallback(ex)); fixedUpdateMicroCoroutine = new MicroCoroutine(ex => unhandledExceptionCallback(ex)); endOfFrameMicroCoroutine = new MicroCoroutine(ex => unhandledExceptionCallback(ex)); diff --git a/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/Observable.Unity.cs b/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/Observable.Unity.cs index 488914a..9090a6f 100644 --- a/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/Observable.Unity.cs +++ b/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/Observable.Unity.cs @@ -5,6 +5,7 @@ using System; using System.Collections; using System.Collections.Generic; +using UniRx.InternalUtil; using UniRx.Triggers; using UnityEngine; using System.Threading; @@ -30,11 +31,6 @@ public enum MainThreadDispatchType EndOfFrame, GameObjectUpdate, LateUpdate, -#if SupportCustomYieldInstruction - /// [Obsolete]Same as Update - [Obsolete] - AfterUpdate -#endif } public static class FrameCountTypeExtensions @@ -156,7 +152,7 @@ bool IEnumerator.MoveNext() { if (reThrowOnError && HasError) { - throw Error; + Error.Throw(); } return false; @@ -233,7 +229,13 @@ public static partial class Observable { readonly static HashSet YieldInstructionTypes = new HashSet { + #if UNITY_2018_3_OR_NEWER +#pragma warning disable CS0618 +#endif typeof(WWW), + #if UNITY_2018_3_OR_NEWER +#pragma warning restore CS0618 +#endif typeof(WaitForEndOfFrame), typeof(WaitForFixedUpdate), typeof(WaitForSeconds), @@ -555,7 +557,7 @@ static IEnumerator WrapEnumeratorYieldValue(IEnumerator enumerator, IObserver public static IObservable FromCoroutine(Func, IEnumerator> coroutine) { - return FromCoroutine((observer, cancellationToken) => WrapToCancellableEnumerator(coroutine(observer), cancellationToken)); + return FromCoroutine((observer, cancellationToken) => WrapToCancellableEnumerator(coroutine(observer), observer, cancellationToken)); } /// @@ -564,10 +566,10 @@ public static IObservable FromCoroutine(Func, IEnumerator> co /// public static IObservable FromMicroCoroutine(Func, IEnumerator> coroutine, FrameCountType frameCountType = FrameCountType.Update) { - return FromMicroCoroutine((observer, cancellationToken) => WrapToCancellableEnumerator(coroutine(observer), cancellationToken), frameCountType); + return FromMicroCoroutine((observer, cancellationToken) => WrapToCancellableEnumerator(coroutine(observer), observer, cancellationToken), frameCountType); } - static IEnumerator WrapToCancellableEnumerator(IEnumerator enumerator, CancellationToken cancellationToken) + static IEnumerator WrapToCancellableEnumerator(IEnumerator enumerator, IObserver observer, CancellationToken cancellationToken) { var hasNext = default(bool); do @@ -576,12 +578,19 @@ static IEnumerator WrapToCancellableEnumerator(IEnumerator enumerator, Cancellat { hasNext = enumerator.MoveNext(); } - catch + catch (Exception ex) { - var d = enumerator as IDisposable; - if (d != null) + try + { + observer.OnError(ex); + } + finally { - d.Dispose(); + var d = enumerator as IDisposable; + if (d != null) + { + d.Dispose(); + } } yield break; } @@ -986,12 +995,6 @@ public static IObservable ObserveOnMainThread(this IObservable source, return source.SelectMany(_ => MainThreadDispatcher.UpdateAsObservable().Take(1), (x, _) => x); case MainThreadDispatchType.LateUpdate: return source.SelectMany(_ => MainThreadDispatcher.LateUpdateAsObservable().Take(1), (x, _) => x); -#if SupportCustomYieldInstruction -#pragma warning disable 612 // Type or member is obsolete - case MainThreadDispatchType.AfterUpdate: - return source.SelectMany(_ => EveryAfterUpdate().Take(1), (x, _) => x); -#pragma warning restore 612 // Type or member is obsolete -#endif default: throw new ArgumentException("type is invalid"); } @@ -1147,7 +1150,7 @@ static IEnumerable> RepeatInfinite(IObservable source) internal static class Stubs { public static readonly Action Nop = () => { }; - public static readonly Action Throw = ex => { throw ex; }; + public static readonly Action Throw = ex => { ex.Throw(); }; // Stubs.Ignore can't avoid iOS AOT problem. public static void Ignore(T t) diff --git a/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/ObservableMonoBehaviour.cs b/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/ObservableMonoBehaviour.cs deleted file mode 100644 index 4ec5057..0000000 --- a/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/ObservableMonoBehaviour.cs +++ /dev/null @@ -1,885 +0,0 @@ -#if !UNITY_5_5_OR_NEWER - -using System; -using UnityEngine; - -namespace UniRx -{ - /// - /// Note: TypedMonoBehaviour and ObservableMonoBehaviour cause some performance issues. - /// This is legacy interface. - /// I recommend use ObservableTriggers(UniRx.Triggers) instead. - /// More information, see github page. - /// - [Obsolete("ObservableMonoBehaviour is legacy component. use triggers instead")] - public class ObservableMonoBehaviour : TypedMonoBehaviour - { - bool calledAwake = false; - Subject awake; - - /// Awake is called when the script instance is being loaded. - public override void Awake() - { - calledAwake = true; - if (awake != null) { awake.OnNext(Unit.Default); awake.OnCompleted(); } - } - - /// Awake is called when the script instance is being loaded. - public IObservable AwakeAsObservable() - { - if (calledAwake) return Observable.Return(Unit.Default); - return awake ?? (awake = new Subject()); - } - - Subject fixedUpdate; - - /// This function is called every fixed framerate frame, if the MonoBehaviour is enabled. - public override void FixedUpdate() - { - if (fixedUpdate != null) fixedUpdate.OnNext(Unit.Default); - } - - /// This function is called every fixed framerate frame, if the MonoBehaviour is enabled. - public IObservable FixedUpdateAsObservable() - { - return fixedUpdate ?? (fixedUpdate = new Subject()); - } - - Subject lateUpdate; - - /// LateUpdate is called every frame, if the Behaviour is enabled. - public override void LateUpdate() - { - if (lateUpdate != null) lateUpdate.OnNext(Unit.Default); - } - - /// LateUpdate is called every frame, if the Behaviour is enabled. - public IObservable LateUpdateAsObservable() - { - return lateUpdate ?? (lateUpdate = new Subject()); - } - - Subject onAnimatorIK; - - /// Callback for setting up animation IK (inverse kinematics). - public override void OnAnimatorIK(int layerIndex) - { - if (onAnimatorIK != null) onAnimatorIK.OnNext(layerIndex); - } - - /// Callback for setting up animation IK (inverse kinematics). - public IObservable OnAnimatorIKAsObservable() - { - return onAnimatorIK ?? (onAnimatorIK = new Subject()); - } - - Subject onAnimatorMove; - - /// Callback for processing animation movements for modifying root motion. - public override void OnAnimatorMove() - { - if (onAnimatorMove != null) onAnimatorMove.OnNext(Unit.Default); - } - - /// Callback for processing animation movements for modifying root motion. - public IObservable OnAnimatorMoveAsObservable() - { - return onAnimatorMove ?? (onAnimatorMove = new Subject()); - } - - Subject onApplicationFocus; - - /// Sent to all game objects when the player gets or loses focus. - public override void OnApplicationFocus(bool focus) - { - if (onApplicationFocus != null) onApplicationFocus.OnNext(focus); - } - - /// Sent to all game objects when the player gets or loses focus. - public IObservable OnApplicationFocusAsObservable() - { - return onApplicationFocus ?? (onApplicationFocus = new Subject()); - } - - Subject onApplicationPause; - - /// Sent to all game objects when the player pauses. - public override void OnApplicationPause(bool pause) - { - if (onApplicationPause != null) onApplicationPause.OnNext(pause); - } - - /// Sent to all game objects when the player pauses. - public IObservable OnApplicationPauseAsObservable() - { - return onApplicationPause ?? (onApplicationPause = new Subject()); - } - - Subject onApplicationQuit; - - /// Sent to all game objects before the application is quit. - public override void OnApplicationQuit() - { - if (onApplicationQuit != null) onApplicationQuit.OnNext(Unit.Default); - } - - /// Sent to all game objects before the application is quit. - public IObservable OnApplicationQuitAsObservable() - { - return onApplicationQuit ?? (onApplicationQuit = new Subject()); - } - - Subject> onAudioFilterRead; - - /// If OnAudioFilterRead is implemented, Unity will insert a custom filter into the audio DSP chain. - public override void OnAudioFilterRead(float[] data, int channels) - { - if (onAudioFilterRead != null) onAudioFilterRead.OnNext(Tuple.Create(data, channels)); - } - - /// If OnAudioFilterRead is implemented, Unity will insert a custom filter into the audio DSP chain. - public IObservable> OnAudioFilterReadAsObservable() - { - return onAudioFilterRead ?? (onAudioFilterRead = new Subject>()); - } - - Subject onBecameInvisible; - - /// OnBecameInvisible is called when the renderer is no longer visible by any camera. - public override void OnBecameInvisible() - { - if (onBecameInvisible != null) onBecameInvisible.OnNext(Unit.Default); - } - - /// OnBecameInvisible is called when the renderer is no longer visible by any camera. - public IObservable OnBecameInvisibleAsObservable() - { - return onBecameInvisible ?? (onBecameInvisible = new Subject()); - } - - Subject onBecameVisible; - - /// OnBecameVisible is called when the renderer became visible by any camera. - public override void OnBecameVisible() - { - if (onBecameVisible != null) onBecameVisible.OnNext(Unit.Default); - } - - /// OnBecameVisible is called when the renderer became visible by any camera. - public IObservable OnBecameVisibleAsObservable() - { - return onBecameVisible ?? (onBecameVisible = new Subject()); - } - - Subject onCollisionEnter; - - /// OnCollisionEnter is called when this collider/rigidbody has begun touching another rigidbody/collider. - public override void OnCollisionEnter(Collision collision) - { - if (onCollisionEnter != null) onCollisionEnter.OnNext(collision); - } - - /// OnCollisionEnter is called when this collider/rigidbody has begun touching another rigidbody/collider. - public IObservable OnCollisionEnterAsObservable() - { - return onCollisionEnter ?? (onCollisionEnter = new Subject()); - } - - Subject onCollisionEnter2D; - - /// Sent when an incoming collider makes contact with this object's collider (2D physics only). - public override void OnCollisionEnter2D(Collision2D coll) - { - if (onCollisionEnter2D != null) onCollisionEnter2D.OnNext(coll); - } - - /// Sent when an incoming collider makes contact with this object's collider (2D physics only). - public IObservable OnCollisionEnter2DAsObservable() - { - return onCollisionEnter2D ?? (onCollisionEnter2D = new Subject()); - } - - Subject onCollisionExit; - - /// OnCollisionExit is called when this collider/rigidbody has stopped touching another rigidbody/collider. - public override void OnCollisionExit(Collision collisionInfo) - { - if (onCollisionExit != null) onCollisionExit.OnNext(collisionInfo); - } - - /// OnCollisionExit is called when this collider/rigidbody has stopped touching another rigidbody/collider. - public IObservable OnCollisionExitAsObservable() - { - return onCollisionExit ?? (onCollisionExit = new Subject()); - } - - Subject onCollisionExit2D; - - /// Sent when a collider on another object stops touching this object's collider (2D physics only). - public override void OnCollisionExit2D(Collision2D coll) - { - if (onCollisionExit2D != null) onCollisionExit2D.OnNext(coll); - } - - /// Sent when a collider on another object stops touching this object's collider (2D physics only). - public IObservable OnCollisionExit2DAsObservable() - { - return onCollisionExit2D ?? (onCollisionExit2D = new Subject()); - } - - Subject onCollisionStay; - - /// OnCollisionStay is called once per frame for every collider/rigidbody that is touching rigidbody/collider. - public override void OnCollisionStay(Collision collisionInfo) - { - if (onCollisionStay != null) onCollisionStay.OnNext(collisionInfo); - } - - /// OnCollisionStay is called once per frame for every collider/rigidbody that is touching rigidbody/collider. - public IObservable OnCollisionStayAsObservable() - { - return onCollisionStay ?? (onCollisionStay = new Subject()); - } - - Subject onCollisionStay2D; - - /// Sent each frame where a collider on another object is touching this object's collider (2D physics only). - public override void OnCollisionStay2D(Collision2D coll) - { - if (onCollisionStay2D != null) onCollisionStay2D.OnNext(coll); - } - - /// Sent each frame where a collider on another object is touching this object's collider (2D physics only). - public IObservable OnCollisionStay2DAsObservable() - { - return onCollisionStay2D ?? (onCollisionStay2D = new Subject()); - } - - Subject onConnectedToServer; - - /// Called on the client when you have successfully connected to a server. - public override void OnConnectedToServer() - { - if (onConnectedToServer != null) onConnectedToServer.OnNext(Unit.Default); - } - - /// Called on the client when you have successfully connected to a server. - public IObservable OnConnectedToServerAsObservable() - { - return onConnectedToServer ?? (onConnectedToServer = new Subject()); - } - - Subject onControllerColliderHit; - - /// OnControllerColliderHit is called when the controller hits a collider while performing a Move. - public override void OnControllerColliderHit(ControllerColliderHit hit) - { - if (onControllerColliderHit != null) onControllerColliderHit.OnNext(hit); - } - - /// OnControllerColliderHit is called when the controller hits a collider while performing a Move. - public IObservable OnControllerColliderHitAsObservable() - { - return onControllerColliderHit ?? (onControllerColliderHit = new Subject()); - } - - bool calledDestroy = false; - Subject onDestroy; - - /// This function is called when the MonoBehaviour will be destroyed. - public override void OnDestroy() - { - calledDestroy = true; - if (onDestroy != null) { onDestroy.OnNext(Unit.Default); onDestroy.OnCompleted(); } - } - - /// This function is called when the MonoBehaviour will be destroyed. - public IObservable OnDestroyAsObservable() - { - if (this == null) return Observable.Return(Unit.Default); - if (calledDestroy) return Observable.Return(Unit.Default); - return onDestroy ?? (onDestroy = new Subject()); - } - - Subject onDisable; - - /// This function is called when the behaviour becomes disabled () or inactive. - public override void OnDisable() - { - if (onDisable != null) onDisable.OnNext(Unit.Default); - } - - /// This function is called when the behaviour becomes disabled () or inactive. - public IObservable OnDisableAsObservable() - { - return onDisable ?? (onDisable = new Subject()); - } - - Subject onDrawGizmos; - - /// Implement OnDrawGizmos if you want to draw gizmos that are also pickable and always drawn. - public override void OnDrawGizmos() - { - if (onDrawGizmos != null) onDrawGizmos.OnNext(Unit.Default); - } - - /// Implement OnDrawGizmos if you want to draw gizmos that are also pickable and always drawn. - public IObservable OnDrawGizmosAsObservable() - { - return onDrawGizmos ?? (onDrawGizmos = new Subject()); - } - - Subject onDrawGizmosSelected; - - /// Implement this OnDrawGizmosSelected if you want to draw gizmos only if the object is selected. - public override void OnDrawGizmosSelected() - { - if (onDrawGizmosSelected != null) onDrawGizmosSelected.OnNext(Unit.Default); - } - - /// Implement this OnDrawGizmosSelected if you want to draw gizmos only if the object is selected. - public IObservable OnDrawGizmosSelectedAsObservable() - { - return onDrawGizmosSelected ?? (onDrawGizmosSelected = new Subject()); - } - - Subject onEnable; - - /// This function is called when the object becomes enabled and active. - public override void OnEnable() - { - if (onEnable != null) onEnable.OnNext(Unit.Default); - } - - /// This function is called when the object becomes enabled and active. - public IObservable OnEnableAsObservable() - { - return onEnable ?? (onEnable = new Subject()); - } - -#if FALSE // OnGUI called multiple time per frame update and it cause performance issue, If you want to need OnGUI, copy & paste this code on your MonoBehaviour - - Subject onGUI; - - /// OnGUI is called for rendering and handling GUI events. - public override void OnGUI() - { - if (onGUI != null) onGUI.OnNext(Unit.Default); - } - - /// OnGUI is called for rendering and handling GUI events. - public IObservable OnGUIAsObservable() - { - return onGUI ?? (onGUI = new Subject()); - } - -#endif - - Subject onJointBreak; - - /// Called when a joint attached to the same game object broke. - public override void OnJointBreak(float breakForce) - { - if (onJointBreak != null) onJointBreak.OnNext(breakForce); - } - - /// Called when a joint attached to the same game object broke. - public IObservable OnJointBreakAsObservable() - { - return onJointBreak ?? (onJointBreak = new Subject()); - } - -#if !(UNITY_IPHONE || UNITY_ANDROID || UNITY_METRO) - - Subject onMouseDown; - - /// OnMouseDown is called when the user has pressed the mouse button while over the GUIElement or Collider. - public override void OnMouseDown() - { - if (onMouseDown != null) onMouseDown.OnNext(Unit.Default); - } - - /// OnMouseDown is called when the user has pressed the mouse button while over the GUIElement or Collider. - public IObservable OnMouseDownAsObservable() - { - return onMouseDown ?? (onMouseDown = new Subject()); - } - - Subject onMouseDrag; - - /// OnMouseDrag is called when the user has clicked on a GUIElement or Collider and is still holding down the mouse. - public override void OnMouseDrag() - { - if (onMouseDrag != null) onMouseDrag.OnNext(Unit.Default); - } - - /// OnMouseDrag is called when the user has clicked on a GUIElement or Collider and is still holding down the mouse. - public IObservable OnMouseDragAsObservable() - { - return onMouseDrag ?? (onMouseDrag = new Subject()); - } - - Subject onMouseEnter; - - /// OnMouseEnter is called when the mouse entered the GUIElement or Collider. - public override void OnMouseEnter() - { - if (onMouseEnter != null) onMouseEnter.OnNext(Unit.Default); - } - - /// OnMouseEnter is called when the mouse entered the GUIElement or Collider. - public IObservable OnMouseEnterAsObservable() - { - return onMouseEnter ?? (onMouseEnter = new Subject()); - } - - Subject onMouseExit; - - /// OnMouseExit is called when the mouse is not any longer over the GUIElement or Collider. - public override void OnMouseExit() - { - if (onMouseExit != null) onMouseExit.OnNext(Unit.Default); - } - - /// OnMouseExit is called when the mouse is not any longer over the GUIElement or Collider. - public IObservable OnMouseExitAsObservable() - { - return onMouseExit ?? (onMouseExit = new Subject()); - } - - Subject onMouseOver; - - /// OnMouseOver is called every frame while the mouse is over the GUIElement or Collider. - public override void OnMouseOver() - { - if (onMouseOver != null) onMouseOver.OnNext(Unit.Default); - } - - /// OnMouseOver is called every frame while the mouse is over the GUIElement or Collider. - public IObservable OnMouseOverAsObservable() - { - return onMouseOver ?? (onMouseOver = new Subject()); - } - - Subject onMouseUp; - - /// OnMouseUp is called when the user has released the mouse button. - public override void OnMouseUp() - { - if (onMouseUp != null) onMouseUp.OnNext(Unit.Default); - } - - /// OnMouseUp is called when the user has released the mouse button. - public IObservable OnMouseUpAsObservable() - { - return onMouseUp ?? (onMouseUp = new Subject()); - } - - Subject onMouseUpAsButton; - - /// OnMouseUpAsButton is only called when the mouse is released over the same GUIElement or Collider as it was pressed. - public override void OnMouseUpAsButton() - { - if (onMouseUpAsButton != null) onMouseUpAsButton.OnNext(Unit.Default); - } - - /// OnMouseUpAsButton is only called when the mouse is released over the same GUIElement or Collider as it was pressed. - public IObservable OnMouseUpAsButtonAsObservable() - { - return onMouseUpAsButton ?? (onMouseUpAsButton = new Subject()); - } - -#endif - - Subject onParticleCollision; - - /// OnParticleCollision is called when a particle hits a collider. - public override void OnParticleCollision(GameObject other) - { - if (onParticleCollision != null) onParticleCollision.OnNext(other); - } - - /// OnParticleCollision is called when a particle hits a collider. - public IObservable OnParticleCollisionAsObservable() - { - return onParticleCollision ?? (onParticleCollision = new Subject()); - } - - Subject onPostRender; - - /// OnPostRender is called after a camera finished rendering the scene. - public override void OnPostRender() - { - if (onPostRender != null) onPostRender.OnNext(Unit.Default); - } - - /// OnPostRender is called after a camera finished rendering the scene. - public IObservable OnPostRenderAsObservable() - { - return onPostRender ?? (onPostRender = new Subject()); - } - - Subject onPreCull; - - /// OnPreCull is called before a camera culls the scene. - public override void OnPreCull() - { - if (onPreCull != null) onPreCull.OnNext(Unit.Default); - } - - /// OnPreCull is called before a camera culls the scene. - public IObservable OnPreCullAsObservable() - { - return onPreCull ?? (onPreCull = new Subject()); - } - - Subject onPreRender; - - /// OnPreRender is called before a camera starts rendering the scene. - public override void OnPreRender() - { - if (onPreRender != null) onPreRender.OnNext(Unit.Default); - } - - /// OnPreRender is called before a camera starts rendering the scene. - public IObservable OnPreRenderAsObservable() - { - return onPreRender ?? (onPreRender = new Subject()); - } - - Subject> onRenderImage; - - /// OnRenderImage is called after all rendering is complete to render image. - public override void OnRenderImage(RenderTexture src, RenderTexture dest) - { - if (onRenderImage != null) onRenderImage.OnNext(Tuple.Create(src, dest)); - } - - /// OnRenderImage is called after all rendering is complete to render image. - public IObservable> OnRenderImageAsObservable() - { - return onRenderImage ?? (onRenderImage = new Subject>()); - } - - Subject onRenderObject; - - /// OnRenderObject is called after camera has rendered the scene. - public override void OnRenderObject() - { - if (onRenderObject != null) onRenderObject.OnNext(Unit.Default); - } - - /// OnRenderObject is called after camera has rendered the scene. - public IObservable OnRenderObjectAsObservable() - { - return onRenderObject ?? (onRenderObject = new Subject()); - } - - Subject onServerInitialized; - - /// Called on the server whenever a Network.InitializeServer was invoked and has completed. - public override void OnServerInitialized() - { - if (onServerInitialized != null) onServerInitialized.OnNext(Unit.Default); - } - - /// Called on the server whenever a Network.InitializeServer was invoked and has completed. - public IObservable OnServerInitializedAsObservable() - { - return onServerInitialized ?? (onServerInitialized = new Subject()); - } - - Subject onTriggerEnter; - - /// OnTriggerEnter is called when the Collider other enters the trigger. - public override void OnTriggerEnter(Collider other) - { - if (onTriggerEnter != null) onTriggerEnter.OnNext(other); - } - - /// OnTriggerEnter is called when the Collider other enters the trigger. - public IObservable OnTriggerEnterAsObservable() - { - return onTriggerEnter ?? (onTriggerEnter = new Subject()); - } - - Subject onTriggerEnter2D; - - /// Sent when another object enters a trigger collider attached to this object (2D physics only). - public override void OnTriggerEnter2D(Collider2D other) - { - if (onTriggerEnter2D != null) onTriggerEnter2D.OnNext(other); - } - - /// Sent when another object enters a trigger collider attached to this object (2D physics only). - public IObservable OnTriggerEnter2DAsObservable() - { - return onTriggerEnter2D ?? (onTriggerEnter2D = new Subject()); - } - - Subject onTriggerExit; - - /// OnTriggerExit is called when the Collider other has stopped touching the trigger. - public override void OnTriggerExit(Collider other) - { - if (onTriggerExit != null) onTriggerExit.OnNext(other); - } - - /// OnTriggerExit is called when the Collider other has stopped touching the trigger. - public IObservable OnTriggerExitAsObservable() - { - return onTriggerExit ?? (onTriggerExit = new Subject()); - } - - Subject onTriggerExit2D; - - /// Sent when another object leaves a trigger collider attached to this object (2D physics only). - public override void OnTriggerExit2D(Collider2D other) - { - if (onTriggerExit2D != null) onTriggerExit2D.OnNext(other); - } - - /// Sent when another object leaves a trigger collider attached to this object (2D physics only). - public IObservable OnTriggerExit2DAsObservable() - { - return onTriggerExit2D ?? (onTriggerExit2D = new Subject()); - } - - Subject onTriggerStay; - - /// OnTriggerStay is called once per frame for every Collider other that is touching the trigger. - public override void OnTriggerStay(Collider other) - { - if (onTriggerStay != null) onTriggerStay.OnNext(other); - } - - /// OnTriggerStay is called once per frame for every Collider other that is touching the trigger. - public IObservable OnTriggerStayAsObservable() - { - return onTriggerStay ?? (onTriggerStay = new Subject()); - } - - Subject onTriggerStay2D; - - /// Sent each frame where another object is within a trigger collider attached to this object (2D physics only). - public override void OnTriggerStay2D(Collider2D other) - { - if (onTriggerStay2D != null) onTriggerStay2D.OnNext(other); - } - - /// Sent each frame where another object is within a trigger collider attached to this object (2D physics only). - public IObservable OnTriggerStay2DAsObservable() - { - return onTriggerStay2D ?? (onTriggerStay2D = new Subject()); - } - - Subject onValidate; - - /// This function is called when the script is loaded or a value is changed in the inspector (Called in the editor only). - public override void OnValidate() - { - if (onValidate != null) onValidate.OnNext(Unit.Default); - } - - /// This function is called when the script is loaded or a value is changed in the inspector (Called in the editor only). - public IObservable OnValidateAsObservable() - { - return onValidate ?? (onValidate = new Subject()); - } - - Subject onWillRenderObject; - - /// OnWillRenderObject is called once for each camera if the object is visible. - public override void OnWillRenderObject() - { - if (onWillRenderObject != null) onWillRenderObject.OnNext(Unit.Default); - } - - /// OnWillRenderObject is called once for each camera if the object is visible. - public IObservable OnWillRenderObjectAsObservable() - { - return onWillRenderObject ?? (onWillRenderObject = new Subject()); - } - - Subject reset; - - /// Reset to default values. - public override void Reset() - { - if (reset != null) reset.OnNext(Unit.Default); - } - - /// Reset to default values. - public IObservable ResetAsObservable() - { - return reset ?? (reset = new Subject()); - } - - bool calledStart = false; - Subject start; - - /// Start is called on the frame when a script is enabled just before any of the Update methods is called the first time. - public override void Start() - { - calledStart = true; - if (start != null) { start.OnNext(Unit.Default); start.OnCompleted(); } - } - - /// Start is called on the frame when a script is enabled just before any of the Update methods is called the first time. - public IObservable StartAsObservable() - { - if (calledStart) return Observable.Return(Unit.Default); - return start ?? (start = new Subject()); - } - - Subject update; - - /// Update is called every frame, if the MonoBehaviour is enabled. - public override void Update() - { - if (update != null) update.OnNext(Unit.Default); - } - - /// Update is called every frame, if the MonoBehaviour is enabled. - public IObservable UpdateAsObservable() - { - return update ?? (update = new Subject()); - } - -#if !(UNITY_METRO || UNITY_WP8 || UNITY_NACL_CHROME || UNITY_WEBGL) - - Subject onDisconnectedFromServer; - - /// Called on the client when the connection was lost or you disconnected from the server. - public override void OnDisconnectedFromServer(NetworkDisconnection info) - { - if (onDisconnectedFromServer != null) onDisconnectedFromServer.OnNext(info); - } - - /// Called on the client when the connection was lost or you disconnected from the server. - public IObservable OnDisconnectedFromServerAsObservable() - { - return onDisconnectedFromServer ?? (onDisconnectedFromServer = new Subject()); - } - - Subject onFailedToConnect; - - /// Called on the client when a connection attempt fails for some reason. - public override void OnFailedToConnect(NetworkConnectionError error) - { - if (onFailedToConnect != null) onFailedToConnect.OnNext(error); - } - - /// Called on the client when a connection attempt fails for some reason. - public IObservable OnFailedToConnectAsObservable() - { - return onFailedToConnect ?? (onFailedToConnect = new Subject()); - } - - Subject onFailedToConnectToMasterServer; - - /// Called on clients or servers when there is a problem connecting to the MasterServer. - public override void OnFailedToConnectToMasterServer(NetworkConnectionError info) - { - if (onFailedToConnectToMasterServer != null) onFailedToConnectToMasterServer.OnNext(info); - } - - /// Called on clients or servers when there is a problem connecting to the MasterServer. - public IObservable OnFailedToConnectToMasterServerAsObservable() - { - return onFailedToConnectToMasterServer ?? (onFailedToConnectToMasterServer = new Subject()); - } - - Subject onMasterServerEvent; - - /// Called on clients or servers when reporting events from the MasterServer. - public override void OnMasterServerEvent(MasterServerEvent msEvent) - { - if (onMasterServerEvent != null) onMasterServerEvent.OnNext(msEvent); - } - - /// Called on clients or servers when reporting events from the MasterServer. - public IObservable OnMasterServerEventAsObservable() - { - return onMasterServerEvent ?? (onMasterServerEvent = new Subject()); - } - - Subject onNetworkInstantiate; - - /// Called on objects which have been network instantiated with Network.Instantiate. - public override void OnNetworkInstantiate(NetworkMessageInfo info) - { - if (onNetworkInstantiate != null) onNetworkInstantiate.OnNext(info); - } - - /// Called on objects which have been network instantiated with Network.Instantiate. - public IObservable OnNetworkInstantiateAsObservable() - { - return onNetworkInstantiate ?? (onNetworkInstantiate = new Subject()); - } - - Subject onPlayerConnected; - - /// Called on the server whenever a new player has successfully connected. - public override void OnPlayerConnected(NetworkPlayer player) - { - if (onPlayerConnected != null) onPlayerConnected.OnNext(player); - } - - /// Called on the server whenever a new player has successfully connected. - public IObservable OnPlayerConnectedAsObservable() - { - return onPlayerConnected ?? (onPlayerConnected = new Subject()); - } - - Subject onPlayerDisconnected; - - /// Called on the server whenever a player disconnected from the server. - public override void OnPlayerDisconnected(NetworkPlayer player) - { - if (onPlayerDisconnected != null) onPlayerDisconnected.OnNext(player); - } - - /// Called on the server whenever a player disconnected from the server. - public IObservable OnPlayerDisconnectedAsObservable() - { - return onPlayerDisconnected ?? (onPlayerDisconnected = new Subject()); - } - - Subject> onSerializeNetworkView; - - /// Used to customize synchronization of variables in a script watched by a network view. - public override void OnSerializeNetworkView(BitStream stream, NetworkMessageInfo info) - { - if (onSerializeNetworkView != null) onSerializeNetworkView.OnNext(Tuple.Create(stream, info)); - } - - /// Used to customize synchronization of variables in a script watched by a network view. - public IObservable> OnSerializeNetworkViewAsObservable() - { - return onSerializeNetworkView ?? (onSerializeNetworkView = new Subject>()); - } - -#endif - } -} - -#endif - -// above code is generated from template - -/* -var template = @"Subject {0}; - -/// {1} -public override void {2}() -{{ - if ({0} != null) {0}.OnNext(Unit.Default); -}} - -/// {1} -public IObservable {2}AsObservable() -{{ - return {0} ?? ({0} = new Subject()); -}}"; -*/ diff --git a/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/ObservableWWW.cs b/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/ObservableWWW.cs index 8ad9fc3..e1bc7d7 100644 --- a/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/ObservableWWW.cs +++ b/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/ObservableWWW.cs @@ -6,6 +6,10 @@ using ObservableUnity = UniRx.Observable; #endif +#if UNITY_2018_3_OR_NEWER +#pragma warning disable CS0618 +#endif + namespace UniRx { using System.Threading; @@ -21,6 +25,9 @@ namespace UniRx using HashEntry = System.Collections.Generic.KeyValuePair; #endif +#if UNITY_2018_3_OR_NEWER + [Obsolete("Use UnityWebRequest, a fully featured replacement which is more efficient and has additional features")] +#endif public static partial class ObservableWWW { public static IObservable Get(string url, Hash headers = null, IProgress progress = null) @@ -428,4 +435,8 @@ public override string ToString() } } } -} \ No newline at end of file +} + +#if UNITY_2018_3_OR_NEWER +#pragma warning restore CS0618 +#endif \ No newline at end of file diff --git a/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/ObserveExtensions.cs b/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/ObserveExtensions.cs index 6bc9d09..a272623 100644 --- a/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/ObserveExtensions.cs +++ b/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/ObserveExtensions.cs @@ -2,6 +2,7 @@ using System.Collections; using System.Collections.Generic; using System.Threading; +using UniRx.InternalUtil; using UniRx.Triggers; #if !UniRxLibrary diff --git a/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/Operators.meta b/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/Operators.meta index 48fece7..d7a89eb 100644 --- a/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/Operators.meta +++ b/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/Operators.meta @@ -1,8 +1,8 @@ fileFormatVersion: 2 guid: 4d126dc4a05228e418759d57f7661329 folderAsset: yes -timeCreated: 1485556058 -licenseType: Free +timeCreated: 1455373896 +licenseType: Store DefaultImporter: userData: assetBundleName: diff --git a/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/Operators/FromCoroutine.cs b/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/Operators/FromCoroutine.cs index ecd162a..39515f2 100644 --- a/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/Operators/FromCoroutine.cs +++ b/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/Operators/FromCoroutine.cs @@ -18,7 +18,7 @@ protected override IDisposable SubscribeCore(IObserver observer, IDisposable { var fromCoroutineObserver = new FromCoroutine(observer, cancel); -#if (ENABLE_MONO_BLEEDING_EDGE_EDITOR || ENABLE_MONO_BLEEDING_EDGE_STANDALONE) +#if (NETFX_CORE || NET_4_6 || NET_STANDARD_2_0 || UNITY_WSA_10_0) var moreCancel = new CancellationDisposable(); var token = moreCancel.Token; #else @@ -80,7 +80,7 @@ protected override IDisposable SubscribeCore(IObserver observer, IDisposable { var microCoroutineObserver = new FromMicroCoroutine(observer, cancel); -#if (ENABLE_MONO_BLEEDING_EDGE_EDITOR || ENABLE_MONO_BLEEDING_EDGE_STANDALONE) +#if (NETFX_CORE || NET_4_6 || NET_STANDARD_2_0 || UNITY_WSA_10_0) var moreCancel = new CancellationDisposable(); var token = moreCancel.Token; #else diff --git a/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/PresenterBase.cs b/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/PresenterBase.cs deleted file mode 100644 index 9116151..0000000 --- a/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/PresenterBase.cs +++ /dev/null @@ -1,234 +0,0 @@ -using System; -using UnityEngine; - -/* -PresenterBase works enough, but too complex. -You can use simple Initialize method and call parent to child, it works for most scenario. -So I don't recommend using PresenterBase, sorry. -*/ - -namespace UniRx -{ - // InEditor : Construct Children Dependency - // Awake : Construct Parent Dependency - // Start(Capture phase) : Parent to Child, pass argument - // Start(Bubbling phase) : Child to Parent, initialize(like constructor) - - /// - /// [Obsolete]Infrastructure interface for PresenterBase`T - /// - public interface IPresenter - { - IPresenter Parent { get; } - GameObject gameObject { get; } - void RegisterParent(IPresenter parent); - void InitializeCore(); - void StartCapturePhase(); - void Awake(); - void ForceInitialize(object argument); - } - - /// - /// [Obsolete]PresenterBase can control dependency of presenter's hierarchy. - /// - public abstract class PresenterBase : PresenterBase - { - protected sealed override void BeforeInitialize(Unit argument) - { - BeforeInitialize(); - } - - /// - /// Same as Start but called before children initialized, it's chance for propagate argument to children. - /// - protected abstract void BeforeInitialize(); - - protected override void Initialize(Unit argument) - { - Initialize(); - } - - /// - /// Force Start BeforeInitialize/Initialize. If you create presenter dynamically, maybe useful. - /// - public void ForceInitialize() - { - ForceInitialize(Unit.Default); - } - - /// - /// Same as Start but called after all children are initialized. - /// - protected abstract void Initialize(); - } - - /// - /// [Obsolete]PresenterBase can control dependency of presenter's hierarchy. - /// - public abstract class PresenterBase : MonoBehaviour, IPresenter - { - protected static readonly IPresenter[] EmptyChildren = new IPresenter[0]; - - int childrenCount = 0; - int currentCalledCount = 0; - bool isAwaken = false; - bool isInitialized = false; - bool isStartedCapturePhase = false; - Subject initializeSubject = null; - IPresenter[] children = null; // set from awake - - IPresenter parent = null; - T argument = default(T); - - public IPresenter Parent - { - get - { - return parent; - } - } - - /// - /// Observable sequence called after initialize completed. - /// - public IObservable InitializeAsObservable() - { - if (isInitialized) return Observable.Return(Unit.Default); - return initializeSubject ?? (initializeSubject = new Subject()); - } - - /// - /// Propagate(Set) argument. - /// - public void PropagateArgument(T argument) - { - this.argument = argument; - } - - /// - /// Dependency on hierarchy of this presenter. If Children is empty, you can return this.EmptyChildren. - /// - protected abstract IPresenter[] Children { get; } - - /// - /// Same as Start but called before children initialized, it's chance for propagate argument to children. - /// - protected abstract void BeforeInitialize(T argument); - - /// - /// Same as Start but called after all children are initialized. - /// - protected abstract void Initialize(T argument); - - /// - /// Force Start BeforeInitialize/Initialize. If you create presenter dynamically, maybe useful. - /// - public virtual void ForceInitialize(T argument) - { - Awake(); - PropagateArgument(argument); - Start(); - } - - void IPresenter.ForceInitialize(object argument) - { - ForceInitialize((T)argument); - } - - void IPresenter.Awake() - { - if (isAwaken) return; - isAwaken = true; - - children = Children; - childrenCount = children.Length; - - for (int i = 0; i < children.Length; i++) - { - var child = children[i]; - child.RegisterParent(this); - child.Awake(); // call Awake directly - } - OnAwake(); - } - - /// Infrastructure method called by UnityEngine. If you needs override Awake, override OnAwake. - protected void Awake() - { - (this as IPresenter).Awake(); - } - - /// An alternative of Awake. - protected virtual void OnAwake() - { - } - - /// Infrastructure method called by UnityEngine. don't call directly, don't override, don't hide! - protected void Start() - { - if (isStartedCapturePhase) return; - var root = parent; - - // Search root object - if (root == null) - { - root = this; - } - else - { - while (root.Parent != null) - { - root = root.Parent; - } - } - - root.StartCapturePhase(); - } - - void IPresenter.StartCapturePhase() - { - isStartedCapturePhase = true; - BeforeInitialize(argument); - - for (int i = 0; i < children.Length; i++) - { - var child = children[i]; - child.StartCapturePhase(); - } - - // Start Bubbling phase - if (children.Length == 0) - { - Initialize(argument); - isInitialized = true; - if (initializeSubject != null) { initializeSubject.OnNext(Unit.Default); initializeSubject.OnCompleted(); } - if (parent != null) - { - parent.InitializeCore(); - } - } - } - - void IPresenter.RegisterParent(IPresenter parent) - { - if (this.parent != null) throw new InvalidOperationException("PresenterBase can't register multiple parent. Name:" + this.name); - - this.parent = parent; - } - - void IPresenter.InitializeCore() - { - currentCalledCount += 1; - if (childrenCount == currentCalledCount) - { - Initialize(argument); - isInitialized = true; - if (initializeSubject != null) { initializeSubject.OnNext(Unit.Default); initializeSubject.OnCompleted(); } - if (parent != null) - { - parent.InitializeCore(); - } - } - } - } -} \ No newline at end of file diff --git a/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/ReactiveCollection.cs b/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/ReactiveCollection.cs index 2273dde..12471d0 100644 --- a/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/ReactiveCollection.cs +++ b/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/ReactiveCollection.cs @@ -308,6 +308,7 @@ protected virtual void Dispose(bool disposing) DisposeSubject(ref collectionMove); DisposeSubject(ref collectionRemove); DisposeSubject(ref collectionReplace); + DisposeSubject(ref countChanged); } disposedValue = true; @@ -329,4 +330,4 @@ public static ReactiveCollection ToReactiveCollection(this IEnumerable return new ReactiveCollection(source); } } -} \ No newline at end of file +} diff --git a/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/ReactiveCommand.cs b/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/ReactiveCommand.cs index 20df0ea..18471bf 100644 --- a/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/ReactiveCommand.cs +++ b/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/ReactiveCommand.cs @@ -1,5 +1,11 @@ using System; +using System.Collections.Generic; +using System.Threading; +#if CSHARP_7_OR_LATER || (UNITY_2018_3_OR_NEWER && (NET_STANDARD_2_0 || NET_4_6)) +using System.Threading.Tasks; +using UniRx.InternalUtil; +#endif namespace UniRx { public interface IReactiveCommand : IObservable @@ -198,7 +204,7 @@ public AsyncReactiveCommand() public AsyncReactiveCommand(IObservable canExecuteSource) { this.canExecuteSource = new ReactiveProperty(true); - this.canExecute = canExecute.CombineLatest(canExecuteSource, (x, y) => x && y).ToReactiveProperty(); + this.canExecute = this.canExecuteSource.CombineLatest(canExecuteSource, (x, y) => x && y).ToReactiveProperty(); } /// @@ -267,6 +273,16 @@ public IDisposable Subscribe(Func> asyncAction) return new Subscription(this, asyncAction); } + /// + /// Stop all subscription and lock CanExecute is false. + /// + public void Dispose() + { + if (IsDisposed) return; + + IsDisposed = true; + asyncActions = UniRx.InternalUtil.ImmutableList>>.Empty; + } class Subscription : IDisposable { readonly AsyncReactiveCommand parent; @@ -306,15 +322,49 @@ public static ReactiveCommand ToReactiveCommand(this IObservable can return new ReactiveCommand(canExecuteSource, initialValue); } +#if CSHARP_7_OR_LATER || (UNITY_2018_3_OR_NEWER && (NET_STANDARD_2_0 || NET_4_6)) + + static readonly Action Callback = CancelCallback; + + static void CancelCallback(object state) + { + var tuple = (Tuple)state; + tuple.Item2.Dispose(); + tuple.Item1.TrySetCanceled(); + } + + public static Task WaitUntilExecuteAsync(this IReactiveCommand source, CancellationToken cancellationToken = default(CancellationToken)) + { + var tcs = new CancellableTaskCompletionSource(); + + var disposable = new SingleAssignmentDisposable(); + disposable.Disposable = source.Subscribe(x => + { + disposable.Dispose(); // finish subscription. + tcs.TrySetResult(x); + }, ex => tcs.TrySetException(ex), () => tcs.TrySetCanceled()); + + cancellationToken.Register(Callback, Tuple.Create(tcs, disposable.Disposable), false); + + return tcs.Task; + } + + public static System.Runtime.CompilerServices.TaskAwaiter GetAwaiter(this IReactiveCommand command) + { + return command.WaitUntilExecuteAsync(CancellationToken.None).GetAwaiter(); + } + +#endif + #if !UniRxLibrary // for uGUI(from 4.6) #if !(UNITY_4_0 || UNITY_4_1 || UNITY_4_2 || UNITY_4_3 || UNITY_4_4 || UNITY_4_5) /// - /// Bind RaectiveCommand to button's interactable and onClick. + /// Bind ReactiveCommand to button's interactable and onClick. /// - public static IDisposable BindTo(this ReactiveCommand command, UnityEngine.UI.Button button) + public static IDisposable BindTo(this IReactiveCommand command, UnityEngine.UI.Button button) { var d1 = command.CanExecute.SubscribeToInteractable(button); var d2 = button.OnClickAsObservable().SubscribeWithState(command, (x, c) => c.Execute(x)); @@ -322,9 +372,9 @@ public static IDisposable BindTo(this ReactiveCommand command, UnityEngine } /// - /// Bind RaectiveCommand to button's interactable and onClick and register onClick action to command. + /// Bind ReactiveCommand to button's interactable and onClick and register onClick action to command. /// - public static IDisposable BindToOnClick(this ReactiveCommand command, UnityEngine.UI.Button button, Action onClick) + public static IDisposable BindToOnClick(this IReactiveCommand command, UnityEngine.UI.Button button, Action onClick) { var d1 = command.CanExecute.SubscribeToInteractable(button); var d2 = button.OnClickAsObservable().SubscribeWithState(command, (x, c) => c.Execute(x)); @@ -358,6 +408,35 @@ public static AsyncReactiveCommand ToAsyncReactiveCommand(this IReactivePr return new AsyncReactiveCommand(sharedCanExecuteSource); } +#if CSHARP_7_OR_LATER || (UNITY_2018_3_OR_NEWER && (NET_STANDARD_2_0 || NET_4_6)) + + static readonly Action Callback = CancelCallback; + + static void CancelCallback(object state) + { + var tuple = (Tuple)state; + tuple.Item2.Dispose(); + tuple.Item1.TrySetCanceled(); + } + + public static Task WaitUntilExecuteAsync(this IAsyncReactiveCommand source, CancellationToken cancellationToken = default(CancellationToken)) + { + var tcs = new CancellableTaskCompletionSource(); + + var subscription = source.Subscribe(x => { tcs.TrySetResult(x); return Observable.ReturnUnit(); }); + cancellationToken.Register(Callback, Tuple.Create(tcs, subscription), false); + + return tcs.Task; + } + + public static System.Runtime.CompilerServices.TaskAwaiter GetAwaiter(this IAsyncReactiveCommand command) + { + return command.WaitUntilExecuteAsync(CancellationToken.None).GetAwaiter(); + } + +#endif + + #if !UniRxLibrary // for uGUI(from 4.6) @@ -366,18 +445,18 @@ public static AsyncReactiveCommand ToAsyncReactiveCommand(this IReactivePr /// /// Bind AsyncRaectiveCommand to button's interactable and onClick. /// - public static IDisposable BindTo(this AsyncReactiveCommand command, UnityEngine.UI.Button button) + public static IDisposable BindTo(this IAsyncReactiveCommand command, UnityEngine.UI.Button button) { var d1 = command.CanExecute.SubscribeToInteractable(button); var d2 = button.OnClickAsObservable().SubscribeWithState(command, (x, c) => c.Execute(x)); - + return StableCompositeDisposable.Create(d1, d2); } /// /// Bind AsyncRaectiveCommand to button's interactable and onClick and register async action to command. /// - public static IDisposable BindToOnClick(this AsyncReactiveCommand command, UnityEngine.UI.Button button, Func> asyncOnClick) + public static IDisposable BindToOnClick(this IAsyncReactiveCommand command, UnityEngine.UI.Button button, Func> asyncOnClick) { var d1 = command.CanExecute.SubscribeToInteractable(button); var d2 = button.OnClickAsObservable().SubscribeWithState(command, (x, c) => c.Execute(x)); diff --git a/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/ReactiveDictionary.cs b/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/ReactiveDictionary.cs index 21f7d64..4b928e3 100644 --- a/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/ReactiveDictionary.cs +++ b/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/ReactiveDictionary.cs @@ -100,7 +100,7 @@ public interface IReadOnlyReactiveDictionary : IEnumerable> ObserveAdd(); - IObservable ObserveCountChanged(); + IObservable ObserveCountChanged(bool notifyCurrentCount = false); IObservable> ObserveRemove(); IObservable> ObserveReplace(); IObservable ObserveReset(); @@ -290,10 +290,19 @@ public void Dispose() [NonSerialized] Subject countChanged = null; - public IObservable ObserveCountChanged() + public IObservable ObserveCountChanged(bool notifyCurrentCount = false) { if (isDisposed) return Observable.Empty(); - return countChanged ?? (countChanged = new Subject()); + + var subject = countChanged ?? (countChanged = new Subject()); + if (notifyCurrentCount) + { + return subject.StartWith(() => this.Count); + } + else + { + return subject; + } } [NonSerialized] diff --git a/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/ReactiveProperty.cs b/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/ReactiveProperty.cs index 554efa2..d67a81e 100644 --- a/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/ReactiveProperty.cs +++ b/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/ReactiveProperty.cs @@ -1,8 +1,17 @@ -using System; +#if CSHARP_7_OR_LATER || (UNITY_2018_3_OR_NEWER && (NET_STANDARD_2_0 || NET_4_6)) +#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member +#endif + +using System; using System.Collections.Generic; +using System.Threading; +using UniRx.InternalUtil; #if !UniRxLibrary using UnityEngine; #endif +#if CSHARP_7_OR_LATER || (UNITY_2018_3_OR_NEWER && (NET_STANDARD_2_0 || NET_4_6)) +using System.Threading.Tasks; +#endif namespace UniRx { @@ -17,11 +26,56 @@ public interface IReactiveProperty : IReadOnlyReactiveProperty new T Value { get; set; } } + internal interface IObserverLinkedList + { + void UnsubscribeNode(ObserverNode node); + } + + internal sealed class ObserverNode : IObserver, IDisposable + { + readonly IObserver observer; + IObserverLinkedList list; + + public ObserverNode Previous { get; internal set; } + public ObserverNode Next { get; internal set; } + + public ObserverNode(IObserverLinkedList list, IObserver observer) + { + this.list = list; + this.observer = observer; + } + + public void OnNext(T value) + { + observer.OnNext(value); + } + + public void OnError(Exception error) + { + observer.OnError(error); + } + + public void OnCompleted() + { + observer.OnCompleted(); + } + + public void Dispose() + { + var sourceList = Interlocked.Exchange(ref list, null); + if (sourceList != null) + { + sourceList.UnsubscribeNode(this); + sourceList = null; + } + } + } + /// /// Lightweight property broker. /// [Serializable] - public class ReactiveProperty : IReactiveProperty, IDisposable, IOptimizedObservable + public class ReactiveProperty : IReactiveProperty, IDisposable, IOptimizedObservable, IObserverLinkedList { #if !UniRxLibrary static readonly IEqualityComparer defaultEqualityComparer = UnityEqualityComparer.GetDefault(); @@ -29,25 +83,19 @@ public class ReactiveProperty : IReactiveProperty, IDisposable, IOptimized static readonly IEqualityComparer defaultEqualityComparer = EqualityComparer.Default; #endif - [NonSerialized] - bool canPublishValueOnSubscribe = false; - - [NonSerialized] - bool isDisposed = false; - #if !UniRxLibrary [SerializeField] #endif T value = default(T); [NonSerialized] - Subject publisher = null; + ObserverNode root; [NonSerialized] - IDisposable sourceConnection = null; + ObserverNode last; [NonSerialized] - Exception lastException = null; + bool isDisposed = false; protected virtual IEqualityComparer EqualityComparer { @@ -65,69 +113,45 @@ public T Value } set { - if (!canPublishValueOnSubscribe) - { - canPublishValueOnSubscribe = true; - SetValue(value); - - if (isDisposed) return; // don't notify but set value - var p = publisher; - if (p != null) - { - p.OnNext(this.value); - } - return; - } - if (!EqualityComparer.Equals(this.value, value)) { SetValue(value); + if (isDisposed) + return; - if (isDisposed) return; - var p = publisher; - if (p != null) - { - p.OnNext(this.value); - } + RaiseOnNext(ref value); } } } + // always true, allows empty constructor 'can' publish value on subscribe. + // because sometimes value is deserialized from UnityEngine. public bool HasValue { get { - return canPublishValueOnSubscribe; + return true; } } public ReactiveProperty() : this(default(T)) { - // default constructor 'can' publish value on subscribe. - // because sometimes value is deserialized from UnityEngine. } public ReactiveProperty(T initialValue) { SetValue(initialValue); - canPublishValueOnSubscribe = true; } - public ReactiveProperty(IObservable source) + void RaiseOnNext(ref T value) { - // initialized from source's ReactiveProperty `doesn't` publish value on subscribe. - // because there ReactiveProeprty is `Future/Task/Promise`. - - canPublishValueOnSubscribe = false; - sourceConnection = source.Subscribe(new ReactivePropertyObserver(this)); - } - - public ReactiveProperty(IObservable source, T initialValue) - { - canPublishValueOnSubscribe = false; - Value = initialValue; // Value set canPublishValueOnSubcribe = true - sourceConnection = source.Subscribe(new ReactivePropertyObserver(this)); + var node = root; + while (node != null) + { + node.OnNext(value); + node = node.Next; + } } protected virtual void SetValue(T value) @@ -138,51 +162,56 @@ protected virtual void SetValue(T value) public void SetValueAndForceNotify(T value) { SetValue(value); + if (isDisposed) + return; - if (isDisposed) return; - - var p = publisher; - if (p != null) - { - p.OnNext(this.value); - } + RaiseOnNext(ref value); } public IDisposable Subscribe(IObserver observer) { - if (lastException != null) + if (isDisposed) { - observer.OnError(lastException); + observer.OnCompleted(); return Disposable.Empty; } - if (isDisposed) + // raise latest value on subscribe + observer.OnNext(value); + + // subscribe node, node as subscription. + var next = new ObserverNode(this, observer); + if (root == null) { - observer.OnCompleted(); - return Disposable.Empty; + root = last = next; + } + else + { + last.Next = next; + next.Previous = last; + last = next; } + return next; + } - if (publisher == null) + void IObserverLinkedList.UnsubscribeNode(ObserverNode node) + { + if (node == root) + { + root = node.Next; + } + if (node == last) { - // Interlocked.CompareExchange is bit slower, guarantee threasafety is overkill. - // System.Threading.Interlocked.CompareExchange(ref publisher, new Subject(), null); - publisher = new Subject(); + last = node.Previous; } - var p = publisher; - if (p != null) + if (node.Previous != null) { - var subscription = p.Subscribe(observer); - if (canPublishValueOnSubscribe) - { - observer.OnNext(value); // raise latest value on subscribe - } - return subscription; + node.Previous.Next = node.Next; } - else + if (node.Next != null) { - observer.OnCompleted(); - return Disposable.Empty; + node.Next.Previous = node.Previous; } } @@ -194,29 +223,16 @@ public void Dispose() protected virtual void Dispose(bool disposing) { - if (!isDisposed) + if (isDisposed) return; + + var node = root; + root = last = null; + isDisposed = true; + + while (node != null) { - isDisposed = true; - var sc = sourceConnection; - if (sc != null) - { - sc.Dispose(); - sourceConnection = null; - } - var p = publisher; - if (p != null) - { - // when dispose, notify OnCompleted - try - { - p.OnCompleted(); - } - finally - { - p.Dispose(); - publisher = null; - } - } + node.OnCompleted(); + node = node.Next; } } @@ -229,56 +245,12 @@ public bool IsRequiredSubscribeOnCurrentThread() { return false; } - - class ReactivePropertyObserver : IObserver - { - readonly ReactiveProperty parent; - int isStopped = 0; - - public ReactivePropertyObserver(ReactiveProperty parent) - { - this.parent = parent; - } - - public void OnNext(T value) - { - parent.Value = value; - } - - public void OnError(Exception error) - { - if (System.Threading.Interlocked.Increment(ref isStopped) == 1) - { - parent.lastException = error; - var p = parent.publisher; - if (p != null) - { - p.OnError(error); - } - parent.Dispose(); // complete subscription - } - } - - public void OnCompleted() - { - if (System.Threading.Interlocked.Increment(ref isStopped) == 1) - { - // source was completed but can publish from .Value yet. - var sc = parent.sourceConnection; - parent.sourceConnection = null; - if (sc != null) - { - sc.Dispose(); - } - } - } - } } /// /// Lightweight property broker. /// - public class ReadOnlyReactiveProperty : IReadOnlyReactiveProperty, IDisposable, IOptimizedObservable + public class ReadOnlyReactiveProperty : IReadOnlyReactiveProperty, IDisposable, IOptimizedObservable, IObserverLinkedList, IObserver { #if !UniRxLibrary static readonly IEqualityComparer defaultEqualityComparer = UnityEqualityComparer.GetDefault(); @@ -287,26 +259,22 @@ public class ReadOnlyReactiveProperty : IReadOnlyReactiveProperty, IDispos #endif readonly bool distinctUntilChanged = true; - bool canPublishValueOnSubscribe = false; - bool isDisposed = false; + bool isSourceCompleted = false; + T latestValue = default(T); Exception lastException = null; - - T value = default(T); - - Subject publisher = null; - IDisposable sourceConnection = null; - bool isSourceCompleted = false; + ObserverNode root; + ObserverNode last; public T Value { get { - return value; + return latestValue; } } @@ -328,28 +296,28 @@ protected virtual IEqualityComparer EqualityComparer public ReadOnlyReactiveProperty(IObservable source) { - this.sourceConnection = source.Subscribe(new ReadOnlyReactivePropertyObserver(this)); + this.sourceConnection = source.Subscribe(this); } public ReadOnlyReactiveProperty(IObservable source, bool distinctUntilChanged) { this.distinctUntilChanged = distinctUntilChanged; - this.sourceConnection = source.Subscribe(new ReadOnlyReactivePropertyObserver(this)); + this.sourceConnection = source.Subscribe(this); } public ReadOnlyReactiveProperty(IObservable source, T initialValue) { - this.value = initialValue; + this.latestValue = initialValue; this.canPublishValueOnSubscribe = true; - this.sourceConnection = source.Subscribe(new ReadOnlyReactivePropertyObserver(this)); + this.sourceConnection = source.Subscribe(this); } public ReadOnlyReactiveProperty(IObservable source, T initialValue, bool distinctUntilChanged) { this.distinctUntilChanged = distinctUntilChanged; - this.value = initialValue; + this.latestValue = initialValue; this.canPublishValueOnSubscribe = true; - this.sourceConnection = source.Subscribe(new ReadOnlyReactivePropertyObserver(this)); + this.sourceConnection = source.Subscribe(this); } public IDisposable Subscribe(IObserver observer) @@ -360,17 +328,11 @@ public IDisposable Subscribe(IObserver observer) return Disposable.Empty; } - if (isDisposed) - { - observer.OnCompleted(); - return Disposable.Empty; - } - if (isSourceCompleted) { if (canPublishValueOnSubscribe) { - observer.OnNext(value); + observer.OnNext(latestValue); observer.OnCompleted(); return Disposable.Empty; } @@ -381,29 +343,31 @@ public IDisposable Subscribe(IObserver observer) } } + if (isDisposed) + { + observer.OnCompleted(); + return Disposable.Empty; + } - if (publisher == null) + if (canPublishValueOnSubscribe) { - // Interlocked.CompareExchange is bit slower, guarantee threasafety is overkill. - // System.Threading.Interlocked.CompareExchange(ref publisher, new Subject(), null); - publisher = new Subject(); + observer.OnNext(latestValue); } - var p = publisher; - if (p != null) + // subscribe node, node as subscription. + var next = new ObserverNode(this, observer); + if (root == null) { - var subscription = p.Subscribe(observer); - if (canPublishValueOnSubscribe) - { - observer.OnNext(value); // raise latest value on subscribe - } - return subscription; + root = last = next; } else { - observer.OnCompleted(); - return Disposable.Empty; + last.Next = next; + next.Previous = last; + last = next; } + + return next; } public void Dispose() @@ -414,121 +378,96 @@ public void Dispose() protected virtual void Dispose(bool disposing) { - if (!isDisposed) - { - isDisposed = true; - var sc = sourceConnection; - if (sc != null) - { - sc.Dispose(); - sourceConnection = null; - } + if (isDisposed) return; + sourceConnection.Dispose(); - var p = publisher; - if (p != null) - { - // when dispose, notify OnCompleted - try - { - p.OnCompleted(); - } - finally - { - p.Dispose(); - publisher = null; - } - } + var node = root; + root = last = null; + isDisposed = true; + + while (node != null) + { + node.OnCompleted(); + node = node.Next; } } - public override string ToString() + void IObserverLinkedList.UnsubscribeNode(ObserverNode node) { - return (value == null) ? "(null)" : value.ToString(); - } + if (node == root) + { + root = node.Next; + } + if (node == last) + { + last = node.Previous; + } - public bool IsRequiredSubscribeOnCurrentThread() - { - return false; + if (node.Previous != null) + { + node.Previous.Next = node.Next; + } + if (node.Next != null) + { + node.Next.Previous = node.Previous; + } } - class ReadOnlyReactivePropertyObserver : IObserver + void IObserver.OnNext(T value) { - readonly ReadOnlyReactiveProperty parent; - int isStopped = 0; - - public ReadOnlyReactivePropertyObserver(ReadOnlyReactiveProperty parent) - { - this.parent = parent; - } + if (isDisposed) return; - public void OnNext(T value) + if (canPublishValueOnSubscribe) { - if (parent.distinctUntilChanged && parent.canPublishValueOnSubscribe) + if (distinctUntilChanged && EqualityComparer.Equals(this.latestValue, value)) { - if (!parent.EqualityComparer.Equals(parent.value, value)) - { - parent.value = value; - var p = parent.publisher; - if (p != null) - { - p.OnNext(value); - } - } - } - else - { - parent.value = value; - parent.canPublishValueOnSubscribe = true; - - var p = parent.publisher; - if (p != null) - { - p.OnNext(value); - } + return; } } - public void OnError(Exception error) + canPublishValueOnSubscribe = true; + + // SetValue + this.latestValue = value; + + // call source.OnNext + var node = root; + while (node != null) { - if (System.Threading.Interlocked.Increment(ref isStopped) == 1) - { - parent.lastException = error; - var p = parent.publisher; - if (p != null) - { - p.OnError(error); - } - parent.Dispose(); // complete subscription - } + node.OnNext(value); + node = node.Next; } + } - public void OnCompleted() - { - if (System.Threading.Interlocked.Increment(ref isStopped) == 1) - { - parent.isSourceCompleted = true; - var sc = parent.sourceConnection; - parent.sourceConnection = null; - if (sc != null) - { - sc.Dispose(); - } + void IObserver.OnError(Exception error) + { + lastException = error; - var p = parent.publisher; - parent.publisher = null; - if (p != null) - { - try - { - p.OnCompleted(); - } - finally - { - p.Dispose(); - } - } - } + // call source.OnError + var node = root; + while (node != null) + { + node.OnError(error); + node = node.Next; } + + root = last = null; + } + + void IObserver.OnCompleted() + { + isSourceCompleted = true; + root = last = null; + } + + public override string ToString() + { + return (latestValue == null) ? "(null)" : latestValue.ToString(); + } + + public bool IsRequiredSubscribeOnCurrentThread() + { + return false; } } @@ -537,14 +476,14 @@ public void OnCompleted() /// public static class ReactivePropertyExtensions { - public static ReactiveProperty ToReactiveProperty(this IObservable source) + public static IReadOnlyReactiveProperty ToReactiveProperty(this IObservable source) { - return new ReactiveProperty(source); + return new ReadOnlyReactiveProperty(source); } - public static ReactiveProperty ToReactiveProperty(this IObservable source, T initialValue) + public static IReadOnlyReactiveProperty ToReactiveProperty(this IObservable source, T initialValue) { - return new ReactiveProperty(source, initialValue); + return new ReadOnlyReactiveProperty(source, initialValue); } public static ReadOnlyReactiveProperty ToReadOnlyReactiveProperty(this IObservable source) @@ -552,6 +491,61 @@ public static ReadOnlyReactiveProperty ToReadOnlyReactiveProperty(this IOb return new ReadOnlyReactiveProperty(source); } +#if CSHARP_7_OR_LATER || (UNITY_2018_3_OR_NEWER && (NET_STANDARD_2_0 || NET_4_6)) + + static readonly Action Callback = CancelCallback; + + static void CancelCallback(object state) + { + var tuple = (Tuple)state; + tuple.Item2.Dispose(); + tuple.Item1.TrySetCanceled(); + } + + public static Task WaitUntilValueChangedAsync(this IReadOnlyReactiveProperty source, CancellationToken cancellationToken = default(CancellationToken)) + { + var tcs = new CancellableTaskCompletionSource(); + + var disposable = new SingleAssignmentDisposable(); + if (source.HasValue) + { + // Skip first value + var isFirstValue = true; + disposable.Disposable = source.Subscribe(x => + { + if (isFirstValue) + { + isFirstValue = false; + return; + } + else + { + disposable.Dispose(); // finish subscription. + tcs.TrySetResult(x); + } + }, ex => tcs.TrySetException(ex), () => tcs.TrySetCanceled()); + } + else + { + disposable.Disposable = source.Subscribe(x => + { + disposable.Dispose(); // finish subscription. + tcs.TrySetResult(x); + }, ex => tcs.TrySetException(ex), () => tcs.TrySetCanceled()); + } + + cancellationToken.Register(Callback, Tuple.Create(tcs, disposable.Disposable), false); + + return tcs.Task; + } + + public static System.Runtime.CompilerServices.TaskAwaiter GetAwaiter(this IReadOnlyReactiveProperty source) + { + return source.WaitUntilValueChangedAsync(CancellationToken.None).GetAwaiter(); + } + +#endif + /// /// Create ReadOnlyReactiveProperty with distinctUntilChanged: false. /// @@ -589,7 +583,8 @@ public static IObservable CombineLatestValuesAreAllTrue(this IEnumerable CombineLatestValuesAreAllFalse(this IEnumerable< { foreach (var item in xs) { - if (item == true) return false; + if (item == true) + return false; } return true; }); diff --git a/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/ScenePlaybackDetector.cs b/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/ScenePlaybackDetector.cs index 0ec6992..ba1b4ab 100644 --- a/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/ScenePlaybackDetector.cs +++ b/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/ScenePlaybackDetector.cs @@ -52,7 +52,11 @@ public static void OnDidReloadScripts() // InitializeOnLoad ensures that this constructor is called when the Unity Editor is started. static ScenePlaybackDetector() { +#if UNITY_2017_2_OR_NEWER + EditorApplication.playModeStateChanged += e => +#else EditorApplication.playmodeStateChanged += () => +#endif { // Before scene start: isPlayingOrWillChangePlaymode = false; isPlaying = false // Pressed Playback button: isPlayingOrWillChangePlaymode = true; isPlaying = false diff --git a/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/Toolkit.meta b/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/Toolkit.meta index cacfc2c..029446b 100644 --- a/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/Toolkit.meta +++ b/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/Toolkit.meta @@ -1,8 +1,8 @@ fileFormatVersion: 2 -guid: a3e7b9d4c2221d74abe90ae85d420888 +guid: 726595c7d6d85824887a77691e3ca50a folderAsset: yes -timeCreated: 1485556058 -licenseType: Free +timeCreated: 1468655394 +licenseType: Store DefaultImporter: userData: assetBundleName: diff --git a/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/Toolkit/ObjectPool.cs b/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/Toolkit/ObjectPool.cs index 25f489f..52e91bc 100644 --- a/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/Toolkit/ObjectPool.cs +++ b/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/Toolkit/ObjectPool.cs @@ -13,7 +13,7 @@ namespace UniRx.Toolkit public abstract class ObjectPool : IDisposable where T : UnityEngine.Component { - bool disposedValue = false; + bool isDisposed = false; Queue q; /// @@ -77,7 +77,7 @@ public int Count /// public T Rent() { - if (disposedValue) throw new ObjectDisposedException("ObjectPool was already disposed."); + if (isDisposed) throw new ObjectDisposedException("ObjectPool was already disposed."); if (q == null) q = new Queue(); var instance = (q.Count > 0) @@ -93,7 +93,7 @@ public T Rent() /// public void Return(T instance) { - if (disposedValue) throw new ObjectDisposedException("ObjectPool was already disposed."); + if (isDisposed) throw new ObjectDisposedException("ObjectPool was already disposed."); if (instance == null) throw new ArgumentNullException("instance"); if (q == null) q = new Queue(); @@ -161,7 +161,7 @@ public void Shrink(float instanceCountRatio, int minSize, bool callOnBeforeRent public IDisposable StartShrinkTimer(TimeSpan checkInterval, float instanceCountRatio, int minSize, bool callOnBeforeRent = false) { return Observable.Interval(checkInterval) - .TakeWhile(_ => disposedValue) + .TakeWhile(_ => !isDisposed) .Subscribe(_ => { Shrink(instanceCountRatio, minSize, callOnBeforeRent); @@ -213,14 +213,14 @@ IEnumerator PreloadCore(int preloadCount, int threshold, IObserver observe protected virtual void Dispose(bool disposing) { - if (!disposedValue) + if (!isDisposed) { if (disposing) { Clear(false); } - disposedValue = true; + isDisposed = true; } } @@ -238,7 +238,7 @@ public void Dispose() public abstract class AsyncObjectPool : IDisposable where T : UnityEngine.Component { - bool disposedValue = false; + bool isDisposed = false; Queue q; /// @@ -302,7 +302,7 @@ public int Count /// public IObservable RentAsync() { - if (disposedValue) throw new ObjectDisposedException("ObjectPool was already disposed."); + if (isDisposed) throw new ObjectDisposedException("ObjectPool was already disposed."); if (q == null) q = new Queue(); if (q.Count > 0) @@ -323,7 +323,7 @@ public IObservable RentAsync() /// public void Return(T instance) { - if (disposedValue) throw new ObjectDisposedException("ObjectPool was already disposed."); + if (isDisposed) throw new ObjectDisposedException("ObjectPool was already disposed."); if (instance == null) throw new ArgumentNullException("instance"); if (q == null) q = new Queue(); @@ -374,7 +374,7 @@ public void Shrink(float instanceCountRatio, int minSize, bool callOnBeforeRent public IDisposable StartShrinkTimer(TimeSpan checkInterval, float instanceCountRatio, int minSize, bool callOnBeforeRent = false) { return Observable.Interval(checkInterval) - .TakeWhile(_ => disposedValue) + .TakeWhile(_ => !isDisposed) .Subscribe(_ => { Shrink(instanceCountRatio, minSize, callOnBeforeRent); @@ -451,14 +451,14 @@ IEnumerator PreloadCore(int preloadCount, int threshold, IObserver observe protected virtual void Dispose(bool disposing) { - if (!disposedValue) + if (!isDisposed) { if (disposing) { Clear(false); } - disposedValue = true; + isDisposed = true; } } diff --git a/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/Triggers.meta b/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/Triggers.meta index e0942e4..6565449 100644 --- a/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/Triggers.meta +++ b/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/Triggers.meta @@ -1,8 +1,8 @@ fileFormatVersion: 2 guid: 5380144628ecdc74ab6778f80d103d51 folderAsset: yes -timeCreated: 1485556058 -licenseType: Free +timeCreated: 1455373896 +licenseType: Store DefaultImporter: userData: assetBundleName: diff --git a/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/Triggers/ObservableJointTrigger.cs b/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/Triggers/ObservableJointTrigger.cs new file mode 100644 index 0000000..8e4c39f --- /dev/null +++ b/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/Triggers/ObservableJointTrigger.cs @@ -0,0 +1,47 @@ +using System; // require keep for Windows Universal App +using UnityEngine; + +namespace UniRx.Triggers +{ + [DisallowMultipleComponent] + public class ObservableJointTrigger : ObservableTriggerBase + { + Subject onJointBreak; + + void OnJointBreak(float breakForce) + { + if (onJointBreak != null) onJointBreak.OnNext(breakForce); + } + + public IObservable OnJointBreakAsObservable() + { + return onJointBreak ?? (onJointBreak = new Subject()); + } + + + Subject onJointBreak2D; + + void OnJointBreak2D(Joint2D brokenJoint) + { + if (onJointBreak2D != null) onJointBreak2D.OnNext(brokenJoint); + } + + public IObservable OnJointBreak2DAsObservable() + { + return onJointBreak2D ?? (onJointBreak2D = new Subject()); + } + + + protected override void RaiseOnCompletedOnDestroy() + { + if (onJointBreak != null) + { + onJointBreak.OnCompleted(); + } + if (onJointBreak2D != null) + { + onJointBreak2D.OnCompleted(); + } + } + } +} \ No newline at end of file diff --git a/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/Triggers/ObservableJointTrigger.cs.meta b/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/Triggers/ObservableJointTrigger.cs.meta new file mode 100644 index 0000000..ed27131 --- /dev/null +++ b/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/Triggers/ObservableJointTrigger.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 79b758631951cbc42b40ea87072e1ab3 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/Triggers/ObservableRectTransformTrigger.cs b/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/Triggers/ObservableRectTransformTrigger.cs index 2e42ed6..063015c 100644 --- a/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/Triggers/ObservableRectTransformTrigger.cs +++ b/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/Triggers/ObservableRectTransformTrigger.cs @@ -12,7 +12,7 @@ public class ObservableRectTransformTrigger : ObservableTriggerBase Subject onRectTransformDimensionsChange; // Callback that is sent if an associated RectTransform has it's dimensions changed - public void OnRectTransformDimensionsChange() + void OnRectTransformDimensionsChange() { if (onRectTransformDimensionsChange != null) onRectTransformDimensionsChange.OnNext(Unit.Default); } @@ -26,7 +26,7 @@ public IObservable OnRectTransformDimensionsChangeAsObservable() Subject onRectTransformRemoved; // Callback that is sent if an associated RectTransform is removed - public void OnRectTransformRemoved() + void OnRectTransformRemoved() { if (onRectTransformRemoved != null) onRectTransformRemoved.OnNext(Unit.Default); } diff --git a/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/TypedMonoBehaviour.cs b/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/TypedMonoBehaviour.cs deleted file mode 100644 index 39bc254..0000000 --- a/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/TypedMonoBehaviour.cs +++ /dev/null @@ -1,205 +0,0 @@ -#if !UNITY_5_5_OR_NEWER - -using UnityEngine; - -namespace UniRx -{ - /// - /// Note: TypedMonoBehaviour and ObservableMonoBehaviour cause some performance issues. - /// This is legacy interface. - /// I recommend use ObservableTriggers(UniRx.Triggers) instead. - /// More information, see github page. - /// - [System.Obsolete("TypedMonoBehaviour is legacy component. use triggers instead")] - public class TypedMonoBehaviour : MonoBehaviour - { - /// Awake is called when the script instance is being loaded. - public virtual void Awake() { } - - /// This function is called every fixed framerate frame, if the MonoBehaviour is enabled. - public virtual void FixedUpdate() { } - - /// LateUpdate is called every frame, if the Behaviour is enabled. - public virtual void LateUpdate() { } - - /// Callback for setting up animation IK (inverse kinematics). - public virtual void OnAnimatorIK(int layerIndex) { } - - /// Callback for processing animation movements for modifying root motion. - public virtual void OnAnimatorMove() { } - - /// Sent to all game objects when the player gets or loses focus. - public virtual void OnApplicationFocus(bool focus) { } - - /// Sent to all game objects when the player pauses. - public virtual void OnApplicationPause(bool pause) { } - - /// Sent to all game objects before the application is quit. - public virtual void OnApplicationQuit() { } - - /// If OnAudioFilterRead is implemented, Unity will insert a custom filter into the audio DSP chain. - public virtual void OnAudioFilterRead(float[] data, int channels) { } - - /// OnBecameInvisible is called when the renderer is no longer visible by any camera. - public virtual void OnBecameInvisible() { } - - /// OnBecameVisible is called when the renderer became visible by any camera. - public virtual void OnBecameVisible() { } - - /// OnCollisionEnter is called when this collider/rigidbody has begun touching another rigidbody/collider. - public virtual void OnCollisionEnter(Collision collision) { } - - /// Sent when an incoming collider makes contact with this object's collider (2D physics only). - public virtual void OnCollisionEnter2D(Collision2D coll) { } - - /// OnCollisionExit is called when this collider/rigidbody has stopped touching another rigidbody/collider. - public virtual void OnCollisionExit(Collision collisionInfo) { } - - /// Sent when a collider on another object stops touching this object's collider (2D physics only). - public virtual void OnCollisionExit2D(Collision2D coll) { } - - /// OnCollisionStay is called once per frame for every collider/rigidbody that is touching rigidbody/collider. - public virtual void OnCollisionStay(Collision collisionInfo) { } - - /// Sent each frame where a collider on another object is touching this object's collider (2D physics only). - public virtual void OnCollisionStay2D(Collision2D coll) { } - - /// Called on the client when you have successfully connected to a server. - public virtual void OnConnectedToServer() { } - - /// OnControllerColliderHit is called when the controller hits a collider while performing a Move. - public virtual void OnControllerColliderHit(ControllerColliderHit hit) { } - - /// This function is called when the MonoBehaviour will be destroyed. - public virtual void OnDestroy() { } - - /// This function is called when the behaviour becomes disabled () or inactive. - public virtual void OnDisable() { } - - /// Implement OnDrawGizmos if you want to draw gizmos that are also pickable and always drawn. - public virtual void OnDrawGizmos() { } - - /// Implement this OnDrawGizmosSelected if you want to draw gizmos only if the object is selected. - public virtual void OnDrawGizmosSelected() { } - - /// This function is called when the object becomes enabled and active. - public virtual void OnEnable() { } - -#if FALSE // OnGUI called multiple time per frame update and it cause performance issue, If you want to need OnGUI, copy & paste this code on your MonoBehaviour - - /// OnGUI is called for rendering and handling GUI events. - public virtual void OnGUI() { } - -#endif - - /// Called when a joint attached to the same game object broke. - public virtual void OnJointBreak(float breakForce) { } - -#if !(UNITY_IPHONE || UNITY_ANDROID || UNITY_METRO) - - /// OnMouseDown is called when the user has pressed the mouse button while over the GUIElement or Collider. - public virtual void OnMouseDown() { } - - /// OnMouseDrag is called when the user has clicked on a GUIElement or Collider and is still holding down the mouse. - public virtual void OnMouseDrag() { } - - /// OnMouseEnter is called when the mouse entered the GUIElement or Collider. - public virtual void OnMouseEnter() { } - - /// OnMouseExit is called when the mouse is not any longer over the GUIElement or Collider. - public virtual void OnMouseExit() { } - - /// OnMouseOver is called every frame while the mouse is over the GUIElement or Collider. - public virtual void OnMouseOver() { } - - /// OnMouseUp is called when the user has released the mouse button. - public virtual void OnMouseUp() { } - - /// OnMouseUpAsButton is only called when the mouse is released over the same GUIElement or Collider as it was pressed. - public virtual void OnMouseUpAsButton() { } - -#endif - - /// OnParticleCollision is called when a particle hits a collider. - public virtual void OnParticleCollision(GameObject other) { } - - /// OnPostRender is called after a camera finished rendering the scene. - public virtual void OnPostRender() { } - - /// OnPreCull is called before a camera culls the scene. - public virtual void OnPreCull() { } - - /// OnPreRender is called before a camera starts rendering the scene. - public virtual void OnPreRender() { } - - /// OnRenderImage is called after all rendering is complete to render image. - public virtual void OnRenderImage(RenderTexture src, RenderTexture dest) { } - - /// OnRenderObject is called after camera has rendered the scene. - public virtual void OnRenderObject() { } - - /// Called on the server whenever a Network. InitializeServer was invoked and has completed. - public virtual void OnServerInitialized() { } - - /// OnTriggerEnter is called when the Collider other enters the trigger. - public virtual void OnTriggerEnter(Collider other) { } - - /// Sent when another object enters a trigger collider attached to this object (2D physics only). - public virtual void OnTriggerEnter2D(Collider2D other) { } - - /// OnTriggerExit is called when the Collider other has stopped touching the trigger. - public virtual void OnTriggerExit(Collider other) { } - - /// Sent when another object leaves a trigger collider attached to this object (2D physics only). - public virtual void OnTriggerExit2D(Collider2D other) { } - - /// OnTriggerStay is called once per frame for every Collider other that is touching the trigger. - public virtual void OnTriggerStay(Collider other) { } - - /// Sent each frame where another object is within a trigger collider attached to this object (2D physics only). - public virtual void OnTriggerStay2D(Collider2D other) { } - - /// This function is called when the script is loaded or a value is changed in the inspector (Called in the editor only). - public virtual void OnValidate() { } - - /// OnWillRenderObject is called once for each camera if the object is visible. - public virtual void OnWillRenderObject() { } - - /// Reset to default values. - public virtual void Reset() { } - - /// Start is called on the frame when a script is enabled just before any of the Update methods is called the first time. - public virtual void Start() { } - - /// Update is called every frame, if the MonoBehaviour is enabled. - public virtual void Update() { } - -#if !(UNITY_METRO || UNITY_WP8 || UNITY_NACL_CHROME || UNITY_WEBGL) - /// Called on the client when the connection was lost or you disconnected from the server. - public virtual void OnDisconnectedFromServer(NetworkDisconnection info) { } - - /// Called on the client when a connection attempt fails for some reason. - public virtual void OnFailedToConnect(NetworkConnectionError error) { } - - /// Called on clients or servers when there is a problem connecting to the MasterServer. - public virtual void OnFailedToConnectToMasterServer(NetworkConnectionError info) { } - - /// Called on clients or servers when reporting events from the MasterServer. - public virtual void OnMasterServerEvent(MasterServerEvent msEvent) { } - - /// Called on objects which have been network instantiated with Network Instantiate. - public virtual void OnNetworkInstantiate(NetworkMessageInfo info) { } - - /// Called on the server whenever a new player has successfully connected. - public virtual void OnPlayerConnected(NetworkPlayer player) { } - - /// Called on the server whenever a player disconnected from the server. - public virtual void OnPlayerDisconnected(NetworkPlayer player) { } - - /// Used to customize synchronization of variables in a script watched by a network view. - public virtual void OnSerializeNetworkView(BitStream stream, NetworkMessageInfo info) { } -#endif - } -} - -#endif \ No newline at end of file diff --git a/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/UniRxSynchronizationContext.cs b/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/UniRxSynchronizationContext.cs deleted file mode 100644 index ecdc489..0000000 --- a/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/UniRxSynchronizationContext.cs +++ /dev/null @@ -1,57 +0,0 @@ -#if (ENABLE_MONO_BLEEDING_EDGE_EDITOR || ENABLE_MONO_BLEEDING_EDGE_STANDALONE) - -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading; -using System.Threading.Tasks; - -namespace UniRx -{ - public class UniRxSynchronizationContext : SynchronizationContext - { - static bool autoInstall = true; - public static bool AutoInstall { get { return autoInstall; } set { autoInstall = value; } } - - public override void Post(SendOrPostCallback d, object state) - { - // If is in mainthread, call direct. - if (MainThreadDispatcher.IsInMainThread) - { - d(state); - } - else - { - MainThreadDispatcher.Post(x => - { - var pair = (Pair)x; - pair.Callback(pair.State); - }, new Pair(d, state)); - } - } - - public override void Send(SendOrPostCallback d, object state) - { - MainThreadDispatcher.Send(x => - { - var pair = (Pair)x; - pair.Callback(pair.State); - }, new Pair(d, state)); - } - - struct Pair - { - public readonly SendOrPostCallback Callback; - public readonly object State; - - public Pair(SendOrPostCallback callback, object state) - { - this.Callback = callback; - this.State = state; - } - } - } -} - -#endif \ No newline at end of file diff --git a/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/UniRxSynchronizationContext.cs.meta b/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/UniRxSynchronizationContext.cs.meta deleted file mode 100644 index ea7a744..0000000 --- a/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/UniRxSynchronizationContext.cs.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: 4b54aaefaddf9b245a688f382be22b6c -timeCreated: 1475139656 -licenseType: Store -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/UnityEqualityComparer.cs b/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/UnityEqualityComparer.cs deleted file mode 100644 index f6b981f..0000000 --- a/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/UnityEqualityComparer.cs +++ /dev/null @@ -1,136 +0,0 @@ -using System; -using System.Collections.Generic; -using UnityEngine; - -namespace UniRx -{ - public static class UnityEqualityComparer - { - public static readonly IEqualityComparer Vector2 = new Vector2EqualityComparer(); - public static readonly IEqualityComparer Vector3 = new Vector3EqualityComparer(); - public static readonly IEqualityComparer Vector4 = new Vector4EqualityComparer(); - public static readonly IEqualityComparer Color = new ColorEqualityComparer(); - public static readonly IEqualityComparer Rect = new RectEqualityComparer(); - public static readonly IEqualityComparer Bounds = new BoundsEqualityComparer(); - public static readonly IEqualityComparer Quaternion = new QuaternionEqualityComparer(); - - static readonly RuntimeTypeHandle vector2Type = typeof(Vector2).TypeHandle; - static readonly RuntimeTypeHandle vector3Type = typeof(Vector3).TypeHandle; - static readonly RuntimeTypeHandle vector4Type = typeof(Vector4).TypeHandle; - static readonly RuntimeTypeHandle colorType = typeof(Color).TypeHandle; - static readonly RuntimeTypeHandle rectType = typeof(Rect).TypeHandle; - static readonly RuntimeTypeHandle boundsType = typeof(Bounds).TypeHandle; - static readonly RuntimeTypeHandle quaternionType = typeof(Quaternion).TypeHandle; - - static class RuntimeTypeHandlerCache - { - public static readonly RuntimeTypeHandle TypeHandle = typeof(T).TypeHandle; - } - - public static IEqualityComparer GetDefault() - { - var t = RuntimeTypeHandlerCache.TypeHandle; - - if (t.Equals(vector2Type)) return (IEqualityComparer)UnityEqualityComparer.Vector2; - if (t.Equals(vector3Type)) return (IEqualityComparer)UnityEqualityComparer.Vector3; - if (t.Equals(vector4Type)) return (IEqualityComparer)UnityEqualityComparer.Vector4; - if (t.Equals(colorType)) return (IEqualityComparer)UnityEqualityComparer.Color; - if (t.Equals(rectType)) return (IEqualityComparer)UnityEqualityComparer.Rect; - if (t.Equals(boundsType)) return (IEqualityComparer)UnityEqualityComparer.Bounds; - if (t.Equals(quaternionType)) return (IEqualityComparer)UnityEqualityComparer.Quaternion; - - return EqualityComparer.Default; - } - - class Vector2EqualityComparer : IEqualityComparer - { - public bool Equals(Vector2 self, Vector2 vector) - { - return self.x.Equals(vector.x) && self.y.Equals(vector.y); - } - - public int GetHashCode(Vector2 obj) - { - return obj.x.GetHashCode() ^ obj.y.GetHashCode() << 2; - } - } - - class Vector3EqualityComparer : IEqualityComparer - { - public bool Equals(Vector3 self, Vector3 vector) - { - return self.x.Equals(vector.x) && self.y.Equals(vector.y) && self.z.Equals(vector.z); - } - - public int GetHashCode(Vector3 obj) - { - return obj.x.GetHashCode() ^ obj.y.GetHashCode() << 2 ^ obj.z.GetHashCode() >> 2; - } - } - - class Vector4EqualityComparer : IEqualityComparer - { - public bool Equals(Vector4 self, Vector4 vector) - { - return self.x.Equals(vector.x) && self.y.Equals(vector.y) && self.z.Equals(vector.z) && self.w.Equals(vector.w); - } - - public int GetHashCode(Vector4 obj) - { - return obj.x.GetHashCode() ^ obj.y.GetHashCode() << 2 ^ obj.z.GetHashCode() >> 2 ^ obj.w.GetHashCode() >> 1; - } - } - - class ColorEqualityComparer : IEqualityComparer - { - public bool Equals(Color self, Color other) - { - return self.r.Equals(other.r) && self.g.Equals(other.g) && self.b.Equals(other.b) && self.a.Equals(other.a); - } - - public int GetHashCode(Color obj) - { - return obj.r.GetHashCode() ^ obj.g.GetHashCode() << 2 ^ obj.b.GetHashCode() >> 2 ^ obj.a.GetHashCode() >> 1; - } - } - - class RectEqualityComparer : IEqualityComparer - { - public bool Equals(Rect self, Rect other) - { - return self.x.Equals(other.x) && self.width.Equals(other.width) && self.y.Equals(other.y) && self.height.Equals(other.height); - } - - public int GetHashCode(Rect obj) - { - return obj.x.GetHashCode() ^ obj.width.GetHashCode() << 2 ^ obj.y.GetHashCode() >> 2 ^ obj.height.GetHashCode() >> 1; - } - } - - class BoundsEqualityComparer : IEqualityComparer - { - public bool Equals(Bounds self, Bounds vector) - { - return self.center.Equals(vector.center) && self.extents.Equals(vector.extents); - } - - public int GetHashCode(Bounds obj) - { - return obj.center.GetHashCode() ^ obj.extents.GetHashCode() << 2; - } - } - - class QuaternionEqualityComparer : IEqualityComparer - { - public bool Equals(Quaternion self, Quaternion vector) - { - return self.x.Equals(vector.x) && self.y.Equals(vector.y) && self.z.Equals(vector.z) && self.w.Equals(vector.w); - } - - public int GetHashCode(Quaternion obj) - { - return obj.x.GetHashCode() ^ obj.y.GetHashCode() << 2 ^ obj.z.GetHashCode() >> 2 ^ obj.w.GetHashCode() >> 1; - } - } - } -} \ No newline at end of file diff --git a/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/UnityUIComponentExtensions.cs b/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/UnityUIComponentExtensions.cs index cd3bd75..8a02cb1 100644 --- a/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/UnityUIComponentExtensions.cs +++ b/src/Assets/Plugins/UniRx/Scripts/UnityEngineBridge/UnityUIComponentExtensions.cs @@ -82,24 +82,17 @@ public static IObservable OnEndEditAsObservable(this InputField inputFie return inputField.onEndEdit.AsObservable(); } +#if (UNITY_4_6 || UNITY_4_7 || UNITY_5_0 || UNITY_5_1 || UNITY_5_2) /// Observe onValueChange with current `text` value on subscribe. -#if !(UNITY_4_6 || UNITY_4_7 || UNITY_5_0 || UNITY_5_1 || UNITY_5_2) - [Obsolete("onValueChange has been renamed to onValueChanged")] -#endif public static IObservable OnValueChangeAsObservable(this InputField inputField) { return Observable.CreateWithState(inputField, (i, observer) => { observer.OnNext(i.text); -#if (UNITY_4_6 || UNITY_4_7 || UNITY_5_0 || UNITY_5_1 || UNITY_5_2) return i.onValueChange.AsObservable().Subscribe(observer); -#else - return i.onValueChanged.AsObservable().Subscribe(observer); -#endif }); } - -#if !(UNITY_4_6 || UNITY_4_7 || UNITY_5_0 || UNITY_5_1 || UNITY_5_2) +#else /// Observe onValueChanged with current `text` value on subscribe. public static IObservable OnValueChangedAsObservable(this InputField inputField) { @@ -109,6 +102,20 @@ public static IObservable OnValueChangedAsObservable(this InputField inp return i.onValueChanged.AsObservable().Subscribe(observer); }); } +#endif + +#if UNITY_5_3_OR_NEWER + + /// Observe onValueChanged with current `value` on subscribe. + public static IObservable OnValueChangedAsObservable(this Dropdown dropdown) + { + return Observable.CreateWithState(dropdown, (d, observer) => + { + observer.OnNext(d.value); + return d.onValueChanged.AsObservable().Subscribe(observer); + }); + } + #endif } } diff --git a/src/Assets/Plugins/UniRx/Scripts/UnityWinRTBridge.meta b/src/Assets/Plugins/UniRx/Scripts/UnityWinRTBridge.meta index a75ad47..33c919c 100644 --- a/src/Assets/Plugins/UniRx/Scripts/UnityWinRTBridge.meta +++ b/src/Assets/Plugins/UniRx/Scripts/UnityWinRTBridge.meta @@ -1,8 +1,8 @@ fileFormatVersion: 2 guid: 2c03c70869bcd0240b96959097acc29d folderAsset: yes -timeCreated: 1485556057 -licenseType: Free +timeCreated: 1455373896 +licenseType: Store DefaultImporter: userData: assetBundleName: diff --git a/src/Packages/manifest.json b/src/Packages/manifest.json index 526aca6..591c5ee 100644 --- a/src/Packages/manifest.json +++ b/src/Packages/manifest.json @@ -1,4 +1,51 @@ { - "dependencies": { - } + "dependencies": { + "com.unity.2d.sprite": "1.0.0", + "com.unity.2d.tilemap": "1.0.0", + "com.unity.ads": "2.0.8", + "com.unity.analytics": "3.3.2", + "com.unity.collab-proxy": "1.2.16", + "com.unity.ext.nunit": "1.0.0", + "com.unity.ide.rider": "1.1.0", + "com.unity.ide.vscode": "1.1.0", + "com.unity.multiplayer-hlapi": "1.0.2", + "com.unity.package-manager-ui": "2.2.0", + "com.unity.purchasing": "2.0.6", + "com.unity.test-framework": "1.0.13", + "com.unity.textmeshpro": "2.0.1", + "com.unity.timeline": "1.1.0", + "com.unity.ugui": "1.0.0", + "com.unity.xr.legacyinputhelpers": "2.0.2", + "com.unity.modules.ai": "1.0.0", + "com.unity.modules.androidjni": "1.0.0", + "com.unity.modules.animation": "1.0.0", + "com.unity.modules.assetbundle": "1.0.0", + "com.unity.modules.audio": "1.0.0", + "com.unity.modules.cloth": "1.0.0", + "com.unity.modules.director": "1.0.0", + "com.unity.modules.imageconversion": "1.0.0", + "com.unity.modules.imgui": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0", + "com.unity.modules.particlesystem": "1.0.0", + "com.unity.modules.physics": "1.0.0", + "com.unity.modules.physics2d": "1.0.0", + "com.unity.modules.screencapture": "1.0.0", + "com.unity.modules.terrain": "1.0.0", + "com.unity.modules.terrainphysics": "1.0.0", + "com.unity.modules.tilemap": "1.0.0", + "com.unity.modules.ui": "1.0.0", + "com.unity.modules.uielements": "1.0.0", + "com.unity.modules.umbra": "1.0.0", + "com.unity.modules.unityanalytics": "1.0.0", + "com.unity.modules.unitywebrequest": "1.0.0", + "com.unity.modules.unitywebrequestassetbundle": "1.0.0", + "com.unity.modules.unitywebrequestaudio": "1.0.0", + "com.unity.modules.unitywebrequesttexture": "1.0.0", + "com.unity.modules.unitywebrequestwww": "1.0.0", + "com.unity.modules.vehicles": "1.0.0", + "com.unity.modules.video": "1.0.0", + "com.unity.modules.vr": "1.0.0", + "com.unity.modules.wind": "1.0.0", + "com.unity.modules.xr": "1.0.0" + } } diff --git a/src/ProjectSettings/ProjectSettings.asset b/src/ProjectSettings/ProjectSettings.asset index 4a0da005610191426394b43e988bb3216e8e78b3..5077d7f8ad469f8b071cdb428fcd73896a028f4e 100644 GIT binary patch literal 67060 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 q%q|ShIi$b;u$hO_us#5 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 + + + latest + <_TargetFrameworkDirectories>non_empty_path_generated_by_unity.rider.package + <_FullFrameworkReferenceAssemblyPaths>non_empty_path_generated_by_unity.rider.package + true + + + Debug + AnyCPU + 10.0.20506 + 2.0 + + {1F9BDA43-B049-83B8-3CC8-5D02217EDB7D} + Library + Properties + UniRx.Examples + v4.7.1 + 512 + . + + + true + full + false + Temp\bin\Debug\ + DEBUG;TRACE;UNITY_2019_2_3;UNITY_2019_2;UNITY_2019;UNITY_5_3_OR_NEWER;UNITY_5_4_OR_NEWER;UNITY_5_5_OR_NEWER;UNITY_5_6_OR_NEWER;UNITY_2017_1_OR_NEWER;UNITY_2017_2_OR_NEWER;UNITY_2017_3_OR_NEWER;UNITY_2017_4_OR_NEWER;UNITY_2018_1_OR_NEWER;UNITY_2018_2_OR_NEWER;UNITY_2018_3_OR_NEWER;UNITY_2018_4_OR_NEWER;UNITY_2019_1_OR_NEWER;UNITY_2019_2_OR_NEWER;PLATFORM_ARCH_64;UNITY_64;UNITY_INCLUDE_TESTS;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_TEXTURE_STREAMING;ENABLE_UNET;ENABLE_LZMA;ENABLE_UNITYEVENTS;ENABLE_WEBCAM;ENABLE_WWW;ENABLE_CLOUD_SERVICES_COLLAB;ENABLE_CLOUD_SERVICES_COLLAB_SOFTLOCKS;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_SERVICES_USE_WEBREQUEST;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_HUB_LICENSE;ENABLE_WEBSOCKET_CLIENT;ENABLE_DIRECTOR_AUDIO;ENABLE_DIRECTOR_TEXTURE;ENABLE_MANAGED_JOBS;ENABLE_MANAGED_TRANSFORM_JOBS;ENABLE_MANAGED_ANIMATION_JOBS;ENABLE_MANAGED_AUDIO_JOBS;INCLUDE_DYNAMIC_GI;ENABLE_MONO_BDWGC;ENABLE_SCRIPTING_GC_WBARRIERS;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;ENABLE_VIDEO;PLATFORM_STANDALONE_WIN;PLATFORM_STANDALONE;UNITY_STANDALONE_WIN;UNITY_STANDALONE;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_UNITYWEBREQUEST;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_PURCHASING;ENABLE_CLOUD_SERVICES_CRASH_REPORTING;ENABLE_OUT_OF_PROCESS_CRASH_HANDLER;ENABLE_EVENT_QUEUE;ENABLE_CLUSTER_SYNC;ENABLE_CLUSTERINPUT;ENABLE_VR;ENABLE_AR;ENABLE_WEBSOCKET_HOST;ENABLE_MONO;NET_STANDARD_2_0;ENABLE_PROFILER;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN;ENABLE_UNITY_COLLECTIONS_CHECKS;ENABLE_BURST_AOT;UNITY_TEAM_LICENSE;ENABLE_CUSTOM_RENDER_TEXTURE;ENABLE_DIRECTOR;ENABLE_LOCALIZATION;ENABLE_SPRITES;ENABLE_TERRAIN;ENABLE_TILEMAP;ENABLE_TIMELINE;CSHARP_7_OR_LATER;CSHARP_7_3_OR_NEWER + prompt + 4 + 0169 + False + + + pdbonly + true + Temp\bin\Release\ + prompt + 4 + 0169 + False + + + true + true + false + false + false + + + + C:\Program Files\Unity\Hub\Editor\2019.2.3f1\Editor\Data\Managed/UnityEngine/UnityEngine.dll + + + C:\Program Files\Unity\Hub\Editor\2019.2.3f1\Editor\Data\Managed/UnityEditor.dll + + + + + + + + + + + + + + + + + + E:/Code/open-source/bindingsrx/src/Library/ScriptAssemblies/UnityEngine.TestRunner.dll + + + E:/Code/open-source/bindingsrx/src/Library/ScriptAssemblies/UnityEditor.TestRunner.dll + + + E:/Code/open-source/bindingsrx/src/Library/ScriptAssemblies/UnityEditor.UI.dll + + + E:/Code/open-source/bindingsrx/src/Library/ScriptAssemblies/Unity.2D.Tilemap.Editor.dll + + + E:/Code/open-source/bindingsrx/src/Library/ScriptAssemblies/UnityEngine.UI.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.AIModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.ARModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.AccessibilityModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.AndroidJNIModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.AnimationModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.AssetBundleModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.AudioModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.ClothModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.ClusterInputModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.ClusterRendererModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.CoreModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.CrashReportingModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.DSPGraphModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.DirectorModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.FileSystemHttpModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.GameCenterModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.GridModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.HotReloadModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.IMGUIModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.ImageConversionModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.InputModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.InputLegacyModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.JSONSerializeModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.LocalizationModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.ParticleSystemModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.PerformanceReportingModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.PhysicsModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.Physics2DModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.ProfilerModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.ScreenCaptureModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.SharedInternalsModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.SpriteMaskModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.SpriteShapeModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.StreamingModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.SubstanceModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.TLSModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.TerrainModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.TerrainPhysicsModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.TextCoreModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.TextRenderingModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.TilemapModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.UIModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.UIElementsModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.UNETModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.UmbraModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityAnalyticsModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityConnectModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityTestProtocolModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestAssetBundleModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestAudioModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestTextureModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestWWWModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.VFXModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.VRModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.VehiclesModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.VideoModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.WindModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.XRModule.dll + + + E:/Code/open-source/bindingsrx/src/Library/PackageCache/com.unity.ext.nunit@1.0.0/net35/unity-custom/nunit.framework.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/ref/2.0.0/netstandard.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/Microsoft.Win32.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.AppContext.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Collections.Concurrent.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Collections.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Collections.NonGeneric.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Collections.Specialized.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.ComponentModel.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.ComponentModel.EventBasedAsync.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.ComponentModel.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.ComponentModel.TypeConverter.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Console.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Data.Common.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Diagnostics.Contracts.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Diagnostics.Debug.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Diagnostics.FileVersionInfo.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Diagnostics.Process.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Diagnostics.StackTrace.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Diagnostics.TextWriterTraceListener.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Diagnostics.Tools.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Diagnostics.TraceSource.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Diagnostics.Tracing.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Drawing.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Dynamic.Runtime.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Globalization.Calendars.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Globalization.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Globalization.Extensions.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.IO.Compression.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.IO.Compression.ZipFile.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.IO.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.IO.FileSystem.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.IO.FileSystem.DriveInfo.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.IO.FileSystem.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.IO.FileSystem.Watcher.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.IO.IsolatedStorage.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.IO.MemoryMappedFiles.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.IO.Pipes.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.IO.UnmanagedMemoryStream.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Linq.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Linq.Expressions.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Linq.Parallel.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Linq.Queryable.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Net.Http.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Net.NameResolution.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Net.NetworkInformation.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Net.Ping.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Net.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Net.Requests.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Net.Security.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Net.Sockets.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Net.WebHeaderCollection.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Net.WebSockets.Client.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Net.WebSockets.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.ObjectModel.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Reflection.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Reflection.Extensions.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Reflection.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Resources.Reader.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Resources.ResourceManager.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Resources.Writer.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Runtime.CompilerServices.VisualC.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Runtime.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Runtime.Extensions.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Runtime.Handles.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Runtime.InteropServices.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Runtime.InteropServices.RuntimeInformation.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Runtime.Numerics.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Runtime.Serialization.Formatters.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Runtime.Serialization.Json.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Runtime.Serialization.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Runtime.Serialization.Xml.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Security.Claims.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Security.Cryptography.Algorithms.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Security.Cryptography.Csp.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Security.Cryptography.Encoding.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Security.Cryptography.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Security.Cryptography.X509Certificates.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Security.Principal.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Security.SecureString.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Text.Encoding.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Text.Encoding.Extensions.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Text.RegularExpressions.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Threading.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Threading.Overlapped.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Threading.Tasks.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Threading.Tasks.Parallel.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Threading.Thread.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Threading.ThreadPool.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Threading.Timer.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.ValueTuple.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Xml.ReaderWriter.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Xml.XDocument.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Xml.XmlDocument.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Xml.XmlSerializer.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Xml.XPath.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Xml.XPath.XDocument.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/Extensions/2.0.0/System.Numerics.Vectors.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/Extensions/2.0.0/System.Runtime.InteropServices.WindowsRuntime.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netfx/mscorlib.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netfx/System.ComponentModel.Composition.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netfx/System.Core.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netfx/System.Data.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netfx/System.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netfx/System.Drawing.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netfx/System.IO.Compression.FileSystem.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netfx/System.Net.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netfx/System.Numerics.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netfx/System.Runtime.Serialization.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netfx/System.ServiceModel.Web.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netfx/System.Transactions.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netfx/System.Web.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netfx/System.Windows.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netfx/System.Xml.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netfx/System.Xml.Linq.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netfx/System.Xml.Serialization.dll + + + + + {EB5BB4EA-F22B-E8E9-3D41-C3930B798F7C} + UniRx + + + + + diff --git a/src/UniRx.csproj b/src/UniRx.csproj new file mode 100644 index 0000000..87aae8a --- /dev/null +++ b/src/UniRx.csproj @@ -0,0 +1,853 @@ + + + + latest + <_TargetFrameworkDirectories>non_empty_path_generated_by_unity.rider.package + <_FullFrameworkReferenceAssemblyPaths>non_empty_path_generated_by_unity.rider.package + true + + + Debug + AnyCPU + 10.0.20506 + 2.0 + + {EB5BB4EA-F22B-E8E9-3D41-C3930B798F7C} + Library + Properties + UniRx + v4.7.1 + 512 + . + + + true + full + false + Temp\bin\Debug\ + DEBUG;TRACE;UNITY_2019_2_3;UNITY_2019_2;UNITY_2019;UNITY_5_3_OR_NEWER;UNITY_5_4_OR_NEWER;UNITY_5_5_OR_NEWER;UNITY_5_6_OR_NEWER;UNITY_2017_1_OR_NEWER;UNITY_2017_2_OR_NEWER;UNITY_2017_3_OR_NEWER;UNITY_2017_4_OR_NEWER;UNITY_2018_1_OR_NEWER;UNITY_2018_2_OR_NEWER;UNITY_2018_3_OR_NEWER;UNITY_2018_4_OR_NEWER;UNITY_2019_1_OR_NEWER;UNITY_2019_2_OR_NEWER;PLATFORM_ARCH_64;UNITY_64;UNITY_INCLUDE_TESTS;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_TEXTURE_STREAMING;ENABLE_UNET;ENABLE_LZMA;ENABLE_UNITYEVENTS;ENABLE_WEBCAM;ENABLE_WWW;ENABLE_CLOUD_SERVICES_COLLAB;ENABLE_CLOUD_SERVICES_COLLAB_SOFTLOCKS;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_SERVICES_USE_WEBREQUEST;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_HUB_LICENSE;ENABLE_WEBSOCKET_CLIENT;ENABLE_DIRECTOR_AUDIO;ENABLE_DIRECTOR_TEXTURE;ENABLE_MANAGED_JOBS;ENABLE_MANAGED_TRANSFORM_JOBS;ENABLE_MANAGED_ANIMATION_JOBS;ENABLE_MANAGED_AUDIO_JOBS;INCLUDE_DYNAMIC_GI;ENABLE_MONO_BDWGC;ENABLE_SCRIPTING_GC_WBARRIERS;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;ENABLE_VIDEO;PLATFORM_STANDALONE_WIN;PLATFORM_STANDALONE;UNITY_STANDALONE_WIN;UNITY_STANDALONE;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_UNITYWEBREQUEST;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_PURCHASING;ENABLE_CLOUD_SERVICES_CRASH_REPORTING;ENABLE_OUT_OF_PROCESS_CRASH_HANDLER;ENABLE_EVENT_QUEUE;ENABLE_CLUSTER_SYNC;ENABLE_CLUSTERINPUT;ENABLE_VR;ENABLE_AR;ENABLE_WEBSOCKET_HOST;ENABLE_MONO;NET_STANDARD_2_0;ENABLE_PROFILER;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN;ENABLE_UNITY_COLLECTIONS_CHECKS;ENABLE_BURST_AOT;UNITY_TEAM_LICENSE;ENABLE_CUSTOM_RENDER_TEXTURE;ENABLE_DIRECTOR;ENABLE_LOCALIZATION;ENABLE_SPRITES;ENABLE_TERRAIN;ENABLE_TILEMAP;ENABLE_TIMELINE;CSHARP_7_OR_LATER;CSHARP_7_3_OR_NEWER + prompt + 4 + 0169 + False + + + pdbonly + true + Temp\bin\Release\ + prompt + 4 + 0169 + False + + + true + true + false + false + false + + + + C:\Program Files\Unity\Hub\Editor\2019.2.3f1\Editor\Data\Managed/UnityEngine/UnityEngine.dll + + + C:\Program Files\Unity\Hub\Editor\2019.2.3f1\Editor\Data\Managed/UnityEditor.dll + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + E:/Code/open-source/bindingsrx/src/Library/ScriptAssemblies/UnityEditor.UI.dll + + + E:/Code/open-source/bindingsrx/src/Library/ScriptAssemblies/Unity.2D.Tilemap.Editor.dll + + + E:/Code/open-source/bindingsrx/src/Library/ScriptAssemblies/UnityEngine.UI.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.AIModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.ARModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.AccessibilityModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.AndroidJNIModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.AnimationModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.AssetBundleModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.AudioModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.ClothModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.ClusterInputModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.ClusterRendererModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.CoreModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.CrashReportingModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.DSPGraphModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.DirectorModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.FileSystemHttpModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.GameCenterModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.GridModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.HotReloadModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.IMGUIModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.ImageConversionModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.InputModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.InputLegacyModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.JSONSerializeModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.LocalizationModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.ParticleSystemModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.PerformanceReportingModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.PhysicsModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.Physics2DModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.ProfilerModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.ScreenCaptureModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.SharedInternalsModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.SpriteMaskModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.SpriteShapeModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.StreamingModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.SubstanceModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.TLSModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.TerrainModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.TerrainPhysicsModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.TextCoreModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.TextRenderingModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.TilemapModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.UIModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.UIElementsModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.UNETModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.UmbraModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityAnalyticsModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityConnectModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityTestProtocolModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestAssetBundleModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestAudioModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestTextureModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.UnityWebRequestWWWModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.VFXModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.VRModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.VehiclesModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.VideoModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.WindModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEngine/UnityEngine.XRModule.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/UnityExtensions/Unity/UnityVR/Editor/UnityEditor.VR.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/Managed/UnityEditor.Graphs.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/PlaybackEngines/WindowsStandaloneSupport/UnityEditor.WindowsStandalone.Extensions.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/PlaybackEngines/AndroidPlayer/UnityEditor.Android.Extensions.dll + + + E:/Code/open-source/bindingsrx/src/Library/PackageCache/com.unity.ads@2.0.8/Editor/UnityEditor.Advertisements.dll + + + E:/Code/open-source/bindingsrx/src/Library/PackageCache/com.unity.analytics@3.3.2/Unity.Analytics.Editor.dll + + + E:/Code/open-source/bindingsrx/src/Library/PackageCache/com.unity.analytics@3.3.2/Unity.Analytics.StandardEvents.dll + + + E:/Code/open-source/bindingsrx/src/Library/PackageCache/com.unity.analytics@3.3.2/Unity.Analytics.Tracker.dll + + + E:/Code/open-source/bindingsrx/src/Library/PackageCache/com.unity.purchasing@2.0.6/Editor/UnityEditor.Purchasing.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/ref/2.0.0/netstandard.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/Microsoft.Win32.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.AppContext.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Collections.Concurrent.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Collections.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Collections.NonGeneric.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Collections.Specialized.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.ComponentModel.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.ComponentModel.EventBasedAsync.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.ComponentModel.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.ComponentModel.TypeConverter.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Console.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Data.Common.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Diagnostics.Contracts.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Diagnostics.Debug.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Diagnostics.FileVersionInfo.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Diagnostics.Process.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Diagnostics.StackTrace.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Diagnostics.TextWriterTraceListener.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Diagnostics.Tools.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Diagnostics.TraceSource.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Diagnostics.Tracing.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Drawing.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Dynamic.Runtime.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Globalization.Calendars.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Globalization.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Globalization.Extensions.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.IO.Compression.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.IO.Compression.ZipFile.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.IO.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.IO.FileSystem.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.IO.FileSystem.DriveInfo.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.IO.FileSystem.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.IO.FileSystem.Watcher.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.IO.IsolatedStorage.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.IO.MemoryMappedFiles.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.IO.Pipes.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.IO.UnmanagedMemoryStream.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Linq.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Linq.Expressions.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Linq.Parallel.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Linq.Queryable.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Net.Http.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Net.NameResolution.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Net.NetworkInformation.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Net.Ping.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Net.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Net.Requests.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Net.Security.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Net.Sockets.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Net.WebHeaderCollection.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Net.WebSockets.Client.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Net.WebSockets.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.ObjectModel.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Reflection.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Reflection.Extensions.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Reflection.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Resources.Reader.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Resources.ResourceManager.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Resources.Writer.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Runtime.CompilerServices.VisualC.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Runtime.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Runtime.Extensions.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Runtime.Handles.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Runtime.InteropServices.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Runtime.InteropServices.RuntimeInformation.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Runtime.Numerics.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Runtime.Serialization.Formatters.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Runtime.Serialization.Json.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Runtime.Serialization.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Runtime.Serialization.Xml.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Security.Claims.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Security.Cryptography.Algorithms.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Security.Cryptography.Csp.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Security.Cryptography.Encoding.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Security.Cryptography.Primitives.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Security.Cryptography.X509Certificates.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Security.Principal.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Security.SecureString.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Text.Encoding.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Text.Encoding.Extensions.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Text.RegularExpressions.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Threading.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Threading.Overlapped.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Threading.Tasks.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Threading.Tasks.Parallel.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Threading.Thread.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Threading.ThreadPool.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Threading.Timer.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.ValueTuple.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Xml.ReaderWriter.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Xml.XDocument.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Xml.XmlDocument.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Xml.XmlSerializer.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Xml.XPath.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netstandard/System.Xml.XPath.XDocument.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/Extensions/2.0.0/System.Numerics.Vectors.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/Extensions/2.0.0/System.Runtime.InteropServices.WindowsRuntime.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netfx/mscorlib.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netfx/System.ComponentModel.Composition.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netfx/System.Core.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netfx/System.Data.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netfx/System.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netfx/System.Drawing.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netfx/System.IO.Compression.FileSystem.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netfx/System.Net.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netfx/System.Numerics.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netfx/System.Runtime.Serialization.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netfx/System.ServiceModel.Web.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netfx/System.Transactions.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netfx/System.Web.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netfx/System.Windows.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netfx/System.Xml.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netfx/System.Xml.Linq.dll + + + C:/Program Files/Unity/Hub/Editor/2019.2.3f1/Editor/Data/NetStandard/compat/2.0.0/shims/netfx/System.Xml.Serialization.dll + + + + + diff --git a/src/src.sln b/src/src.sln index d6bb459..eef91f4 100644 --- a/src/src.sln +++ b/src/src.sln @@ -1,11 +1,15 @@  -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "src", "Assembly-CSharp-firstpass.csproj", "{E53CDB40-1DF9-8A61-5878-81243AFDF805}" +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UniRx", "UniRx.csproj", "{EB5BB4EA-F22B-E8E9-3D41-C3930B798F7C}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "src", "Assembly-CSharp.csproj", "{4CFFDA30-0E63-039E-0DCA-DAC117CE2649}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Assembly-CSharp", "Assembly-CSharp.csproj", "{4CFFDA30-0E63-039E-0DCA-DAC117CE2649}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "src", "Assembly-CSharp-Editor.csproj", "{0F82C266-B129-FC86-404A-370C3030009B}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UniRx.Examples", "UniRx.Examples.csproj", "{1F9BDA43-B049-83B8-3CC8-5D02217EDB7D}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Assembly-CSharp-firstpass", "Assembly-CSharp-firstpass.csproj", "{E53CDB40-1DF9-8A61-5878-81243AFDF805}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Assembly-CSharp-Editor", "Assembly-CSharp-Editor.csproj", "{0F82C266-B129-FC86-404A-370C3030009B}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -13,14 +17,22 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {E53CDB40-1DF9-8A61-5878-81243AFDF805}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E53CDB40-1DF9-8A61-5878-81243AFDF805}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E53CDB40-1DF9-8A61-5878-81243AFDF805}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E53CDB40-1DF9-8A61-5878-81243AFDF805}.Release|Any CPU.Build.0 = Release|Any CPU + {EB5BB4EA-F22B-E8E9-3D41-C3930B798F7C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EB5BB4EA-F22B-E8E9-3D41-C3930B798F7C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EB5BB4EA-F22B-E8E9-3D41-C3930B798F7C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EB5BB4EA-F22B-E8E9-3D41-C3930B798F7C}.Release|Any CPU.Build.0 = Release|Any CPU {4CFFDA30-0E63-039E-0DCA-DAC117CE2649}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {4CFFDA30-0E63-039E-0DCA-DAC117CE2649}.Debug|Any CPU.Build.0 = Debug|Any CPU {4CFFDA30-0E63-039E-0DCA-DAC117CE2649}.Release|Any CPU.ActiveCfg = Release|Any CPU {4CFFDA30-0E63-039E-0DCA-DAC117CE2649}.Release|Any CPU.Build.0 = Release|Any CPU + {1F9BDA43-B049-83B8-3CC8-5D02217EDB7D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1F9BDA43-B049-83B8-3CC8-5D02217EDB7D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1F9BDA43-B049-83B8-3CC8-5D02217EDB7D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1F9BDA43-B049-83B8-3CC8-5D02217EDB7D}.Release|Any CPU.Build.0 = Release|Any CPU + {E53CDB40-1DF9-8A61-5878-81243AFDF805}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E53CDB40-1DF9-8A61-5878-81243AFDF805}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E53CDB40-1DF9-8A61-5878-81243AFDF805}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E53CDB40-1DF9-8A61-5878-81243AFDF805}.Release|Any CPU.Build.0 = Release|Any CPU {0F82C266-B129-FC86-404A-370C3030009B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {0F82C266-B129-FC86-404A-370C3030009B}.Debug|Any CPU.Build.0 = Debug|Any CPU {0F82C266-B129-FC86-404A-370C3030009B}.Release|Any CPU.ActiveCfg = Release|Any CPU