├── .editorconfig ├── .github └── workflows │ └── publish-upm-package.yml ├── .gitignore ├── .npmrc ├── Assets ├── .npmignore ├── CHANGELOG.md ├── CHANGELOG.md.meta ├── Documentation~ │ └── index.md ├── Editor.meta ├── Editor │ ├── AssetReferences.asset │ ├── AssetReferences.asset.meta │ ├── Scripts.meta │ ├── Scripts │ │ ├── AssetReferences.cs │ │ ├── AssetReferences.cs.meta │ │ ├── ConnectorInfo.cs │ │ ├── ConnectorInfo.cs.meta │ │ ├── EdgeConnectorListener.cs │ │ ├── EdgeConnectorListener.cs.meta │ │ ├── FlowEdge.cs │ │ ├── FlowEdge.cs.meta │ │ ├── FlowEditorWindow.cs │ │ ├── FlowEditorWindow.cs.meta │ │ ├── FlowGraphView.cs │ │ ├── FlowGraphView.cs.meta │ │ ├── FlowGridBackground.cs │ │ ├── FlowGridBackground.cs.meta │ │ ├── FlowMessageCollectPort.cs │ │ ├── FlowMessageCollectPort.cs.meta │ │ ├── FlowMessageComposePort.cs │ │ ├── FlowMessageComposePort.cs.meta │ │ ├── FlowNode.cs │ │ ├── FlowNode.cs.meta │ │ ├── FlowPort.cs │ │ ├── FlowPort.cs.meta │ │ ├── FlowVisualElement.cs │ │ ├── FlowVisualElement.cs.meta │ │ ├── IRemovableElement.cs │ │ ├── IRemovableElement.cs.meta │ │ ├── LayerIndex.cs │ │ ├── LayerIndex.cs.meta │ │ ├── MessageConnectorListener.cs │ │ ├── MessageConnectorListener.cs.meta │ │ ├── SearchWindowProvider.cs │ │ └── SearchWindowProvider.cs.meta │ ├── StyleSheets.meta │ ├── StyleSheets │ │ ├── FlowGraphView.uss │ │ ├── FlowGraphView.uss.meta │ │ ├── FlowNode.uss │ │ ├── FlowNode.uss.meta │ │ ├── FlowVisualElement.uss │ │ └── FlowVisualElement.uss.meta │ ├── UniFlow.Editor.asmdef │ └── UniFlow.Editor.asmdef.meta ├── Installers.meta ├── Installers │ ├── UniFlowInstaller.asset │ └── UniFlowInstaller.asset.meta ├── LICENSE.txt ├── LICENSE.txt.meta ├── README.md ├── README.md.meta ├── Sandbox.meta ├── Sandbox │ ├── Prefabs.meta │ ├── Prefabs │ │ ├── Prefab.prefab │ │ └── Prefab.prefab.meta │ ├── Scenes.meta │ └── Scenes │ │ ├── Test.unity │ │ └── Test.unity.meta ├── Scripts.meta ├── Scripts │ ├── Connector.meta │ ├── Connector │ │ ├── Calculator.meta │ │ ├── Calculator │ │ │ ├── BoolCalculator.cs │ │ │ ├── BoolCalculator.cs.meta │ │ │ ├── CalculatorBase.cs │ │ │ ├── CalculatorBase.cs.meta │ │ │ ├── FloatExpression.cs │ │ │ ├── FloatExpression.cs.meta │ │ │ ├── IntCalculator.cs │ │ │ ├── IntCalculator.cs.meta │ │ │ ├── StringExpression.cs │ │ │ └── StringExpression.cs.meta │ │ ├── Complex.meta │ │ ├── Complex │ │ │ ├── GaugeImageRenderer.cs │ │ │ ├── GaugeImageRenderer.cs.meta │ │ │ ├── MusicDuckingController.cs │ │ │ ├── MusicDuckingController.cs.meta │ │ │ ├── MusicPitchController.cs │ │ │ ├── MusicPitchController.cs.meta │ │ │ ├── MusicPlayer.cs │ │ │ ├── MusicPlayer.cs.meta │ │ │ ├── NumberImageRenderer.cs │ │ │ ├── NumberImageRenderer.cs.meta │ │ │ ├── ProgressiveTimer.cs │ │ │ └── ProgressiveTimer.cs.meta │ │ ├── Controller.meta │ │ ├── Controller │ │ │ ├── ActivationController.cs │ │ │ ├── ActivationController.cs.meta │ │ │ ├── AnimatorTrigger.cs │ │ │ ├── AnimatorTrigger.cs.meta │ │ │ ├── AudioController.cs │ │ │ ├── AudioController.cs.meta │ │ │ ├── DestroyInstance.cs │ │ │ ├── DestroyInstance.cs.meta │ │ │ ├── DontDestroyOnLoad.cs │ │ │ ├── DontDestroyOnLoad.cs.meta │ │ │ ├── EventHandlingController.cs │ │ │ ├── EventHandlingController.cs.meta │ │ │ ├── InstantiateGameObject.cs │ │ │ ├── InstantiateGameObject.cs.meta │ │ │ ├── InstantiateGameObjectWithInjectionBase.cs │ │ │ ├── InstantiateGameObjectWithInjectionBase.cs.meta │ │ │ ├── LoadScene.cs │ │ │ ├── LoadScene.cs.meta │ │ │ ├── LoadSceneBase.cs │ │ │ ├── LoadSceneBase.cs.meta │ │ │ ├── LoadSceneEnumBase.cs │ │ │ ├── LoadSceneEnumBase.cs.meta │ │ │ ├── MoveParentTransform.cs │ │ │ ├── MoveParentTransform.cs.meta │ │ │ ├── PlayableController.cs │ │ │ ├── PlayableController.cs.meta │ │ │ ├── RaycastTargetController.cs │ │ │ ├── RaycastTargetController.cs.meta │ │ │ ├── RaycasterController.cs │ │ │ ├── RaycasterController.cs.meta │ │ │ ├── SimpleAnimationController.cs │ │ │ ├── SimpleAnimationController.cs.meta │ │ │ ├── TimeScaleController.cs │ │ │ ├── TimeScaleController.cs.meta │ │ │ ├── TransformSiblingController.cs │ │ │ ├── TransformSiblingController.cs.meta │ │ │ ├── UnloadScene.cs │ │ │ ├── UnloadScene.cs.meta │ │ │ ├── UnloadSceneBase.cs │ │ │ ├── UnloadSceneBase.cs.meta │ │ │ ├── UnloadSceneEnumBase.cs │ │ │ └── UnloadSceneEnumBase.cs.meta │ │ ├── Event.meta │ │ ├── Event │ │ │ ├── AnimationEvent.cs │ │ │ ├── AnimationEvent.cs.meta │ │ │ ├── AudioEvent.cs │ │ │ ├── AudioEvent.cs.meta │ │ │ ├── CameraEvent.cs │ │ │ ├── CameraEvent.cs.meta │ │ │ ├── KeyEvent.cs │ │ │ ├── KeyEvent.cs.meta │ │ │ ├── LifecycleEvent.cs │ │ │ ├── LifecycleEvent.cs.meta │ │ │ ├── LoadSceneEvent.cs │ │ │ ├── LoadSceneEvent.cs.meta │ │ │ ├── MouseEvent.cs │ │ │ ├── MouseEvent.cs.meta │ │ │ ├── ParticleEvent.cs │ │ │ ├── ParticleEvent.cs.meta │ │ │ ├── PhysicsCollision2DEvent.cs │ │ │ ├── PhysicsCollision2DEvent.cs.meta │ │ │ ├── PhysicsCollisionEvent.cs │ │ │ ├── PhysicsCollisionEvent.cs.meta │ │ │ ├── PhysicsTrigger2DEvent.cs │ │ │ ├── PhysicsTrigger2DEvent.cs.meta │ │ │ ├── PhysicsTriggerEvent.cs │ │ │ ├── PhysicsTriggerEvent.cs.meta │ │ │ ├── RectTransformEvent.cs │ │ │ ├── RectTransformEvent.cs.meta │ │ │ ├── SimpleAnimationEvent.cs │ │ │ ├── SimpleAnimationEvent.cs.meta │ │ │ ├── TimelineEvent.cs │ │ │ ├── TimelineEvent.cs.meta │ │ │ ├── TimelineSignal.cs │ │ │ ├── TimelineSignal.cs.meta │ │ │ ├── TransformEvent.cs │ │ │ ├── TransformEvent.cs.meta │ │ │ ├── UIBehaviourEventTrigger.cs │ │ │ ├── UIBehaviourEventTrigger.cs.meta │ │ │ ├── UnloadSceneEvent.cs │ │ │ └── UnloadSceneEvent.cs.meta │ │ ├── Expression.meta │ │ ├── Expression │ │ │ ├── And.cs │ │ │ ├── And.cs.meta │ │ │ ├── Not.cs │ │ │ ├── Not.cs.meta │ │ │ ├── Or.cs │ │ │ ├── Or.cs.meta │ │ │ ├── Xor.cs │ │ │ └── Xor.cs.meta │ │ ├── Logic.meta │ │ ├── Logic │ │ │ ├── Counter.cs │ │ │ ├── Counter.cs.meta │ │ │ ├── Empty.cs │ │ │ ├── Empty.cs.meta │ │ │ ├── Interval.cs │ │ │ ├── Interval.cs.meta │ │ │ ├── IntervalFrame.cs │ │ │ ├── IntervalFrame.cs.meta │ │ │ ├── RandomFloat.cs │ │ │ ├── RandomFloat.cs.meta │ │ │ ├── RandomInt.cs │ │ │ ├── RandomInt.cs.meta │ │ │ ├── Timer.cs │ │ │ ├── Timer.cs.meta │ │ │ ├── TimerFrame.cs │ │ │ └── TimerFrame.cs.meta │ │ ├── Misc.meta │ │ ├── Misc │ │ │ ├── Receive.cs │ │ │ ├── Receive.cs.meta │ │ │ ├── Toss.cs │ │ │ └── Toss.cs.meta │ │ ├── SignalPublisher.meta │ │ ├── SignalPublisher │ │ │ ├── HandleEventSignalPublisher.cs │ │ │ ├── HandleEventSignalPublisher.cs.meta │ │ │ ├── MusicControlSignalPublisher.cs │ │ │ ├── MusicControlSignalPublisher.cs.meta │ │ │ ├── MusicDuckingSignalPublisher.cs │ │ │ ├── MusicDuckingSignalPublisher.cs.meta │ │ │ ├── MusicPitchSignalPublisher.cs │ │ │ ├── MusicPitchSignalPublisher.cs.meta │ │ │ ├── StringSignalPublisher.cs │ │ │ └── StringSignalPublisher.cs.meta │ │ ├── SignalPublisherBase.cs │ │ ├── SignalPublisherBase.cs.meta │ │ ├── SignalReceiver.meta │ │ ├── SignalReceiver │ │ │ ├── HandleEventSignalReceiver.cs │ │ │ ├── HandleEventSignalReceiver.cs.meta │ │ │ ├── MusicControlSignalReceiver.cs │ │ │ ├── MusicControlSignalReceiver.cs.meta │ │ │ ├── MusicDuckingSignalReceiver.cs │ │ │ ├── MusicDuckingSignalReceiver.cs.meta │ │ │ ├── MusicPitchSignalReceiver.cs │ │ │ ├── MusicPitchSignalReceiver.cs.meta │ │ │ ├── StringSignalReceiver.cs │ │ │ └── StringSignalReceiver.cs.meta │ │ ├── SignalReceiverBase.cs │ │ ├── SignalReceiverBase.cs.meta │ │ ├── ValueComparer.meta │ │ ├── ValueComparer │ │ │ ├── BoolComparer.cs │ │ │ ├── BoolComparer.cs.meta │ │ │ ├── ComparerBase.cs │ │ │ ├── ComparerBase.cs.meta │ │ │ ├── EnumComparerBase.cs │ │ │ ├── EnumComparerBase.cs.meta │ │ │ ├── FloatComparer.cs │ │ │ ├── FloatComparer.cs.meta │ │ │ ├── IntComparer.cs │ │ │ ├── IntComparer.cs.meta │ │ │ ├── ObjectComparer.cs │ │ │ ├── ObjectComparer.cs.meta │ │ │ ├── RuntimePlatformComparer.cs │ │ │ ├── RuntimePlatformComparer.cs.meta │ │ │ ├── StringComparer.cs │ │ │ └── StringComparer.cs.meta │ │ ├── ValueInjector.meta │ │ ├── ValueInjector │ │ │ ├── ImageInjector.cs │ │ │ ├── ImageInjector.cs.meta │ │ │ ├── InjectorBase.cs │ │ │ ├── InjectorBase.cs.meta │ │ │ ├── RawImageInjector.cs │ │ │ ├── RawImageInjector.cs.meta │ │ │ ├── RectTransformInjector.cs │ │ │ ├── RectTransformInjector.cs.meta │ │ │ ├── Timeline.meta │ │ │ ├── Timeline │ │ │ │ ├── AnimationTrackInjector.cs │ │ │ │ ├── AnimationTrackInjector.cs.meta │ │ │ │ ├── AudioTrackInjector.cs │ │ │ │ ├── AudioTrackInjector.cs.meta │ │ │ │ ├── ControlTrackInjector.cs │ │ │ │ └── ControlTrackInjector.cs.meta │ │ │ ├── TimelineInjectorBase.cs │ │ │ ├── TimelineInjectorBase.cs.meta │ │ │ ├── TransformInjector.cs │ │ │ └── TransformInjector.cs.meta │ │ ├── ValueProvider.meta │ │ ├── ValueProvider │ │ │ ├── BoolProvider.cs │ │ │ ├── BoolProvider.cs.meta │ │ │ ├── ByteProvider.cs │ │ │ ├── ByteProvider.cs.meta │ │ │ ├── Color32Provider.cs │ │ │ ├── Color32Provider.cs.meta │ │ │ ├── ColorProvider.cs │ │ │ ├── ColorProvider.cs.meta │ │ │ ├── CurrentRuntimePlatformProvider.cs │ │ │ ├── CurrentRuntimePlatformProvider.cs.meta │ │ │ ├── EnumListProviderBase.cs │ │ │ ├── EnumListProviderBase.cs.meta │ │ │ ├── FloatProvider.cs │ │ │ ├── FloatProvider.cs.meta │ │ │ ├── GameObjectProvider.cs │ │ │ ├── GameObjectProvider.cs.meta │ │ │ ├── IntProvider.cs │ │ │ ├── IntProvider.cs.meta │ │ │ ├── ListProviderBase.cs │ │ │ ├── ListProviderBase.cs.meta │ │ │ ├── ObjectProvider.cs │ │ │ ├── ObjectProvider.cs.meta │ │ │ ├── ProviderBase.cs │ │ │ ├── ProviderBase.cs.meta │ │ │ ├── QuaternionProvider.cs │ │ │ ├── QuaternionProvider.cs.meta │ │ │ ├── ScriptableObjectProvider.cs │ │ │ ├── ScriptableObjectProvider.cs.meta │ │ │ ├── SelectorBase.cs │ │ │ ├── SelectorBase.cs.meta │ │ │ ├── StringProvider.cs │ │ │ ├── StringProvider.cs.meta │ │ │ ├── Vector2IntProvider.cs │ │ │ ├── Vector2IntProvider.cs.meta │ │ │ ├── Vector2Provider.cs │ │ │ ├── Vector2Provider.cs.meta │ │ │ ├── Vector3IntProvider.cs │ │ │ ├── Vector3IntProvider.cs.meta │ │ │ ├── Vector3Provider.cs │ │ │ ├── Vector3Provider.cs.meta │ │ │ ├── Vector4Provider.cs │ │ │ └── Vector4Provider.cs.meta │ │ ├── ValueSelector.meta │ │ └── ValueSelector │ │ │ ├── AnimationClipListSelector.cs │ │ │ ├── AnimationClipListSelector.cs.meta │ │ │ ├── AudioClipListSelector.cs │ │ │ ├── AudioClipListSelector.cs.meta │ │ │ ├── ComponentListSelector.cs │ │ │ ├── ComponentListSelector.cs.meta │ │ │ ├── GameObjectListSelector.cs │ │ │ ├── GameObjectListSelector.cs.meta │ │ │ ├── ObjectListSelector.cs │ │ │ ├── ObjectListSelector.cs.meta │ │ │ ├── TimelineAssetListSelector.cs │ │ │ ├── TimelineAssetListSelector.cs.meta │ │ │ ├── TransformListSelector.cs │ │ │ └── TransformListSelector.cs.meta │ ├── ConnectorBase.cs │ ├── ConnectorBase.cs.meta │ ├── ConnectorType.cs │ ├── ConnectorType.cs.meta │ ├── Extensions.cs │ ├── Extensions.cs.meta │ ├── IConnector.cs │ ├── IConnector.cs.meta │ ├── IInjectable.cs │ ├── IInjectable.cs.meta │ ├── IMessageCollectable.cs │ ├── IMessageCollectable.cs.meta │ ├── IMessageComposable.cs │ ├── IMessageComposable.cs.meta │ ├── IObservableReceiver.cs │ ├── IObservableReceiver.cs.meta │ ├── IReceiver.cs │ ├── IReceiver.cs.meta │ ├── ISignal.cs │ ├── ISignal.cs.meta │ ├── IValueCollector.cs │ ├── IValueCollector.cs.meta │ ├── InjectId.cs │ ├── InjectId.cs.meta │ ├── Installer.meta │ ├── Installer │ │ ├── SceneNamePrefixInstaller.cs │ │ ├── SceneNamePrefixInstaller.cs.meta │ │ ├── UniFlowInstaller.cs │ │ └── UniFlowInstaller.cs.meta │ ├── Logger.cs │ ├── Logger.cs.meta │ ├── Message.cs │ ├── Message.cs.meta │ ├── MessageAnnotation.cs │ ├── MessageAnnotation.cs.meta │ ├── Receiver.meta │ ├── Receiver │ │ ├── EmptyReceiver.cs │ │ ├── EmptyReceiver.cs.meta │ │ ├── LoggerReceiver.cs │ │ ├── LoggerReceiver.cs.meta │ │ ├── ObservableReceiver.cs │ │ ├── ObservableReceiver.cs.meta │ │ ├── ObservableReceiverBase.cs │ │ └── ObservableReceiverBase.cs.meta │ ├── ReceiverBase.cs │ ├── ReceiverBase.cs.meta │ ├── Signal.meta │ ├── Signal │ │ ├── EnumSignalBase.cs │ │ ├── EnumSignalBase.cs.meta │ │ ├── HandleEventSignal.cs │ │ ├── HandleEventSignal.cs.meta │ │ ├── MusicControlSignal.cs │ │ ├── MusicControlSignal.cs.meta │ │ ├── MusicDuckingSignal.cs │ │ ├── MusicDuckingSignal.cs.meta │ │ ├── MusicPitchSignal.cs │ │ ├── MusicPitchSignal.cs.meta │ │ ├── ScriptableObjectSignal.cs │ │ ├── ScriptableObjectSignal.cs.meta │ │ ├── SignalBase.cs │ │ ├── SignalBase.cs.meta │ │ ├── StringSignal.cs │ │ └── StringSignal.cs.meta │ ├── SystemTypeExtensions.cs │ ├── SystemTypeExtensions.cs.meta │ ├── TimelineSignal.meta │ ├── TimelineSignal │ │ ├── Begin.cs │ │ ├── Begin.cs.meta │ │ ├── End.cs │ │ ├── End.cs.meta │ │ ├── SignalAssetBase.cs │ │ └── SignalAssetBase.cs.meta │ ├── Utility.meta │ ├── Utility │ │ ├── ObservableFactory.cs │ │ ├── ObservableFactory.cs.meta │ │ ├── SignalHandler.cs │ │ └── SignalHandler.cs.meta │ ├── ValueCollectorBase.cs │ ├── ValueCollectorBase.cs.meta │ ├── ValueCollectors.cs │ └── ValueCollectors.cs.meta ├── Tests.meta ├── Tests │ ├── Runtime.meta │ └── Runtime │ │ ├── Animations.meta │ │ ├── Animations │ │ ├── All.meta │ │ ├── All │ │ │ ├── Animator.controller │ │ │ ├── Animator.controller.meta │ │ │ ├── TestForAnimator.anim │ │ │ ├── TestForAnimator.anim.meta │ │ │ ├── TestForPlayableDirector.anim │ │ │ └── TestForPlayableDirector.anim.meta │ │ ├── AnimationEvent.meta │ │ ├── AnimationEvent │ │ │ ├── Animator.controller │ │ │ ├── Animator.controller.meta │ │ │ ├── Test.anim │ │ │ └── Test.anim.meta │ │ ├── AnimatorTrigger.meta │ │ ├── AnimatorTrigger │ │ │ ├── Animator.controller │ │ │ ├── Animator.controller.meta │ │ │ ├── Test.anim │ │ │ └── Test.anim.meta │ │ ├── PlayableController.meta │ │ ├── PlayableController │ │ │ ├── Test.anim │ │ │ └── Test.anim.meta │ │ ├── SimpleAnimationController.meta │ │ ├── SimpleAnimationController │ │ │ ├── Test.anim │ │ │ └── Test.anim.meta │ │ ├── SimpleAnimationEvent.meta │ │ ├── SimpleAnimationEvent │ │ │ ├── Test.anim │ │ │ └── Test.anim.meta │ │ ├── TimelineSignals.meta │ │ └── TimelineSignals │ │ │ ├── Test.anim │ │ │ └── Test.anim.meta │ │ ├── Materials.meta │ │ ├── Materials │ │ ├── All.mat │ │ ├── All.mat.meta │ │ ├── AnimationEvent.mat │ │ ├── AnimationEvent.mat.meta │ │ ├── AnimatorTrigger.mat │ │ └── AnimatorTrigger.mat.meta │ │ ├── Scenes.meta │ │ ├── Scenes │ │ ├── Basic.meta │ │ └── Basic │ │ │ ├── All.unity │ │ │ ├── All.unity.meta │ │ │ ├── AnimationEvent.unity │ │ │ ├── AnimationEvent.unity.meta │ │ │ ├── AnimatorTrigger.unity │ │ │ ├── AnimatorTrigger.unity.meta │ │ │ ├── AudioController.unity │ │ │ ├── AudioController.unity.meta │ │ │ ├── AudioEvent.unity │ │ │ ├── AudioEvent.unity.meta │ │ │ ├── CameraEvent.unity │ │ │ ├── CameraEvent.unity.meta │ │ │ ├── Interval.unity │ │ │ ├── Interval.unity.meta │ │ │ ├── LifecycleEvent.unity │ │ │ ├── LifecycleEvent.unity.meta │ │ │ ├── PlayableController.unity │ │ │ ├── PlayableController.unity.meta │ │ │ ├── SimpleAnimationController.unity │ │ │ ├── SimpleAnimationController.unity.meta │ │ │ ├── SimpleAnimationEvent.unity │ │ │ ├── SimpleAnimationEvent.unity.meta │ │ │ ├── TimelineSignal.unity │ │ │ ├── TimelineSignal.unity.meta │ │ │ ├── Timer.unity │ │ │ ├── Timer.unity.meta │ │ │ ├── UIBehaviourEventTrigger.unity │ │ │ └── UIBehaviourEventTrigger.unity.meta │ │ ├── Scripts.meta │ │ ├── Scripts │ │ ├── AllTest.cs │ │ ├── AllTest.cs.meta │ │ ├── AnimationEventTest.cs │ │ ├── AnimationEventTest.cs.meta │ │ ├── AnimatorTriggerTest.cs │ │ ├── AnimatorTriggerTest.cs.meta │ │ ├── AudioControllerTest.cs │ │ ├── AudioControllerTest.cs.meta │ │ ├── AudioEventTest.cs │ │ ├── AudioEventTest.cs.meta │ │ ├── CameraEventTest.cs │ │ ├── CameraEventTest.cs.meta │ │ ├── IntervalTest.cs │ │ ├── IntervalTest.cs.meta │ │ ├── LifecycleEventTest.cs │ │ ├── LifecycleEventTest.cs.meta │ │ ├── PlayableControllerTest.cs │ │ ├── PlayableControllerTest.cs.meta │ │ ├── SimpleAnimationControllerTest.cs │ │ ├── SimpleAnimationControllerTest.cs.meta │ │ ├── SimpleAnimationEventTest.cs │ │ ├── SimpleAnimationEventTest.cs.meta │ │ ├── TestReceiver.cs │ │ ├── TestReceiver.cs.meta │ │ ├── TimelineSignalTest.cs │ │ ├── TimelineSignalTest.cs.meta │ │ ├── TimerTest.cs │ │ ├── TimerTest.cs.meta │ │ ├── UIBehaviourEventTest.cs │ │ ├── UIBehaviourEventTest.cs.meta │ │ ├── UniFlowTestBase.cs │ │ └── UniFlowTestBase.cs.meta │ │ ├── Signals.meta │ │ ├── Signals │ │ ├── PlayableController.signal │ │ ├── PlayableController.signal.meta │ │ ├── TimelineSignal.signal │ │ └── TimelineSignal.signal.meta │ │ ├── Sounds.meta │ │ ├── Sounds │ │ ├── TimeReport.mp3 │ │ └── TimeReport.mp3.meta │ │ ├── Timelines.meta │ │ ├── Timelines │ │ ├── All.playable │ │ ├── All.playable.meta │ │ ├── PlayableController.playable │ │ ├── PlayableController.playable.meta │ │ ├── TimelineSignal.playable │ │ └── TimelineSignal.playable.meta │ │ ├── UniFlow.Tests.Runtime.asmdef │ │ └── UniFlow.Tests.Runtime.asmdef.meta ├── UniFlow.asmdef ├── UniFlow.asmdef.meta ├── package.json └── package.json.meta ├── CHANGELOG.md ├── LICENSE.txt ├── Packages ├── manifest.json └── packages-lock.json ├── ProjectSettings ├── AudioManager.asset ├── ClusterInputManager.asset ├── DynamicsManager.asset ├── EditorBuildSettings.asset ├── EditorSettings.asset ├── GraphicsSettings.asset ├── InputManager.asset ├── NavMeshAreas.asset ├── PackageManagerSettings.asset ├── Physics2DSettings.asset ├── PresetManager.asset ├── ProjectSettings.asset ├── ProjectVersion.txt ├── QualitySettings.asset ├── TagManager.asset ├── TimeManager.asset ├── UnityConnectSettings.asset ├── VFXManager.asset ├── VersionControlSettings.asset └── XRSettings.asset ├── README.md ├── UIElements.xsd ├── UnityEditor.Experimental.UIElements.GraphView.xsd ├── UnityEditor.Experimental.UIElements.xsd ├── UnityEditor.PackageManager.UI.xsd ├── UnityEngine.Experimental.UIElements.xsd └── UserSettings └── EditorUserSettings.asset /.editorconfig: -------------------------------------------------------------------------------- 1 | # editorconfig.org 2 | 3 | # top-most EditorConfig file 4 | root = true 5 | 6 | # Default settings: 7 | # A newline ending every file 8 | # Use 4 spaces as indentation 9 | [*] 10 | insert_final_newline = true 11 | indent_style = space 12 | 13 | # Unity scripts 14 | [Assets/**/*.cs] 15 | charset = utf-8 16 | end_of_line = lf 17 | indent_size = 4 18 | -------------------------------------------------------------------------------- /.github/workflows/publish-upm-package.yml: -------------------------------------------------------------------------------- 1 | name: Publish UPM Package 2 | 3 | on: 4 | release: 5 | types: [published] 6 | 7 | jobs: 8 | publish: 9 | 10 | runs-on: ubuntu-latest 11 | 12 | steps: 13 | - uses: actions/checkout@v2 14 | - uses: monry/actions-upm-publish@v1 15 | with: 16 | npm_registry_url: ${{ secrets.NPM_REGISTRY_URL }} 17 | npm_auth_token: ${{ secrets.NPM_AUTH_TOKEN }} 18 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # This .gitignore file should be placed at the root of your Unity project directory 2 | # 3 | # Get latest from https://github.com/github/gitignore/blob/master/Unity.gitignore 4 | # 5 | /[Ll]ibrary/ 6 | /[Tt]emp/ 7 | /[Oo]bj/ 8 | /[Bb]uild/ 9 | /[Bb]uilds/ 10 | /[Ll]ogs/ 11 | /[Mm]emoryCaptures/ 12 | 13 | # Uncomment this line if you wish to ignore the asset store tools plugin 14 | # /[Aa]ssets/AssetStoreTools* 15 | 16 | # TextMesh Pro files 17 | [Aa]ssets/TextMesh*Pro/ 18 | 19 | # Autogenerated Jetbrains Rider plugin 20 | [Aa]ssets/Plugins/Editor/JetBrains* 21 | 22 | # Visual Studio cache directory 23 | .vs/ 24 | 25 | # Gradle cache directory 26 | .gradle/ 27 | 28 | # Autogenerated VS/MD/Consulo solution and project files 29 | ExportedObj/ 30 | .consulo/ 31 | *.csproj 32 | *.unityproj 33 | *.sln 34 | *.suo 35 | *.tmp 36 | *.user 37 | *.userprefs 38 | *.pidb 39 | *.booproj 40 | *.svd 41 | *.pdb 42 | *.mdb 43 | *.opendb 44 | *.VC.db 45 | 46 | # Unity3D generated meta files 47 | *.pidb.meta 48 | *.pdb.meta 49 | *.mdb.meta 50 | 51 | # Unity3D generated file on crash reports 52 | sysinfo.txt 53 | 54 | # Builds 55 | *.apk 56 | *.unitypackage 57 | 58 | # Crashlytics generated file 59 | crashlytics-build.properties 60 | 61 | # PlayMode Test generated file 62 | Assets/InitTestScene*.unity 63 | Assets/InitTestScene*.unity.meta 64 | -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | registry=https://upm-packages.dev 2 | -------------------------------------------------------------------------------- /Assets/.npmignore: -------------------------------------------------------------------------------- 1 | .npmignore 2 | yarn-debug.log* 3 | yarn-error.log* 4 | Plugins/ 5 | Plugins.meta 6 | 7 | -------------------------------------------------------------------------------- /Assets/CHANGELOG.md.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bd5103c1d8c6742deb55501d376bc302 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Editor.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 07aa457ae04af4b98bce42409533883b 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Editor/AssetReferences.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: 862eccc6c6b74070a43ca9ba61c41d8d, type: 3} 13 | m_Name: AssetReferences 14 | m_EditorClassIdentifier: 15 | flowVisualElement: {fileID: 7433441132597879392, guid: e5cd5853b6b74e9eab84a4e05492245e, 16 | type: 3} 17 | flowGraphView: {fileID: 7433441132597879392, guid: 2d1bfda56f80479a9954af9e73517286, 18 | type: 3} 19 | flowNode: {fileID: 7433441132597879392, guid: 9966dde7671f4ac2b46777545308ca19, 20 | type: 3} 21 | -------------------------------------------------------------------------------- /Assets/Editor/AssetReferences.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 605e150d339d14b64b0f12478f2b60c6 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Editor/Scripts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a288908b1da674ce6bab525764a9a873 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Editor/Scripts/AssetReferences.cs: -------------------------------------------------------------------------------- 1 | using System.Linq; 2 | using UnityEditor; 3 | using UnityEngine; 4 | using UnityEngine.UIElements; 5 | 6 | namespace UniFlow.Editor 7 | { 8 | [CreateAssetMenu(menuName = "UniFlow/Editor AssetReferences", fileName = "AssetReferences.asset")] 9 | public class AssetReferences : ScriptableObject 10 | { 11 | [SerializeField] private StyleSheet flowVisualElement = default; 12 | [SerializeField] private StyleSheet flowGraphView = default; 13 | [SerializeField] private StyleSheet flowNode = default; 14 | 15 | public StyleSheet FlowVisualElement => flowVisualElement; 16 | public StyleSheet FlowGraphView => flowGraphView; 17 | public StyleSheet FlowNode => flowNode; 18 | 19 | private static AssetReferences instance = default; 20 | public static AssetReferences Instance => instance ? instance : instance = Load(); 21 | 22 | public static void Reload() 23 | { 24 | instance = Load(); 25 | } 26 | 27 | private static AssetReferences Load() 28 | { 29 | return AssetDatabase 30 | .FindAssets("t:UniFlow.Editor.AssetReferences") 31 | .Select(AssetDatabase.GUIDToAssetPath) 32 | .Select(AssetDatabase.LoadAssetAtPath) 33 | .FirstOrDefault(); 34 | } 35 | } 36 | } -------------------------------------------------------------------------------- /Assets/Editor/Scripts/AssetReferences.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 862eccc6c6b74070a43ca9ba61c41d8d 3 | timeCreated: 1566486612 -------------------------------------------------------------------------------- /Assets/Editor/Scripts/ConnectorInfo.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 832d12247ef4b47eab684af7034e3c6c 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Editor/Scripts/EdgeConnectorListener.cs: -------------------------------------------------------------------------------- 1 | using UnityEditor.Experimental.GraphView; 2 | using UnityEngine; 3 | 4 | namespace UniFlow.Editor 5 | { 6 | public class EdgeConnectorListener : IEdgeConnectorListener 7 | { 8 | public EdgeConnectorListener(FlowGraphView flowGraphView, SearchWindowProvider searchWindowProvider) 9 | { 10 | FlowGraphView = flowGraphView; 11 | SearchWindowProvider = searchWindowProvider; 12 | } 13 | 14 | private FlowGraphView FlowGraphView { get; } 15 | private SearchWindowProvider SearchWindowProvider { get; } 16 | 17 | void IEdgeConnectorListener.OnDropOutsidePort(Edge edge, Vector2 position) 18 | { 19 | SearchWindowProvider.FlowPort = (FlowPort) (edge.output?.edgeConnector.edgeDragHelper.draggedPort ?? edge.input?.edgeConnector.edgeDragHelper.draggedPort); 20 | SearchWindow 21 | .Open( 22 | new SearchWindowContext(GUIUtility.GUIToScreenPoint(Event.current.mousePosition)), 23 | SearchWindowProvider 24 | ); 25 | } 26 | 27 | void IEdgeConnectorListener.OnDrop(GraphView graphView, Edge edge) 28 | { 29 | FlowGraphView.AddEdge((FlowPort) edge.output, (FlowPort) edge.input); 30 | (edge.output.node as FlowNode)?.ApplyTargetConnectors(); 31 | FlowGraphView.SetupActAsTrigger(); 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /Assets/Editor/Scripts/EdgeConnectorListener.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 783a4a0e2caa408aaa72e9d89f41d3a0 3 | timeCreated: 1566893817 -------------------------------------------------------------------------------- /Assets/Editor/Scripts/FlowEdge.cs: -------------------------------------------------------------------------------- 1 | using UnityEditor.Experimental.GraphView; 2 | 3 | namespace UniFlow.Editor 4 | { 5 | public class FlowEdge : Edge, IRemovableElement 6 | { 7 | void IRemovableElement.RemoveFromGraphView() 8 | { 9 | output.Disconnect(this); 10 | input.Disconnect(this); 11 | 12 | if (!(output?.node is FlowNode outputNode)) 13 | { 14 | return; 15 | } 16 | 17 | switch (output) 18 | { 19 | case FlowPort _: 20 | outputNode.ApplyTargetConnectors(); 21 | break; 22 | } 23 | 24 | switch (input) 25 | { 26 | case FlowMessageCollectPort messageCollectPort: 27 | messageCollectPort.CollectableMessageAnnotation.ValueCollector.SourceConnector = default; 28 | messageCollectPort.CollectableMessageAnnotation.ValueCollector.TargetConnector = default; 29 | messageCollectPort.CollectableMessageAnnotation.ValueCollector.TypeString = default; 30 | messageCollectPort.CollectableMessageAnnotation.ValueCollector.CollectorKey = default; 31 | messageCollectPort.CollectableMessageAnnotation.ValueCollector.ComposerKey = default; 32 | break; 33 | } 34 | } 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /Assets/Editor/Scripts/FlowEdge.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2115b911c6054dcaa5f8c8351b295822 3 | timeCreated: 1566529312 -------------------------------------------------------------------------------- /Assets/Editor/Scripts/FlowEditorWindow.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8991e32e603d4ef99dba136dde08bc1d 3 | timeCreated: 1566479887 -------------------------------------------------------------------------------- /Assets/Editor/Scripts/FlowGraphView.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0663831361b146bdb10f634132351323 3 | timeCreated: 1566483741 -------------------------------------------------------------------------------- /Assets/Editor/Scripts/FlowGridBackground.cs: -------------------------------------------------------------------------------- 1 | using UnityEditor.Experimental.GraphView; 2 | 3 | namespace UniFlow.Editor 4 | { 5 | public class FlowGridBackground : GridBackground 6 | { 7 | } 8 | } -------------------------------------------------------------------------------- /Assets/Editor/Scripts/FlowGridBackground.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9e69953512fc435ca34deb4a994c6c90 3 | timeCreated: 1566528461 -------------------------------------------------------------------------------- /Assets/Editor/Scripts/FlowMessageCollectPort.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using UnityEditor.Experimental.GraphView; 3 | using UnityEngine.UIElements; 4 | 5 | namespace UniFlow.Editor 6 | { 7 | public class FlowMessageCollectPort : Port 8 | { 9 | private FlowMessageCollectPort(Orientation portOrientation, Direction portDirection, Capacity portCapacity, Type type) : base(portOrientation, portDirection, portCapacity, type) 10 | { 11 | } 12 | 13 | public ICollectableMessageAnnotation CollectableMessageAnnotation { get; private set; } 14 | 15 | public static Port Create(Orientation portOrientation, Direction portDirection, Capacity portCapacity, ICollectableMessageAnnotation collectableMessageAnnotation, IEdgeConnectorListener edgeConnectorListener = default) 16 | { 17 | var port = new FlowMessageCollectPort(portOrientation, portDirection, portCapacity, typeof(FlowMessageCollectPort)) 18 | { 19 | CollectableMessageAnnotation = collectableMessageAnnotation, 20 | }; 21 | 22 | // ReSharper disable once InvertIf 23 | if (edgeConnectorListener != default) 24 | { 25 | port.m_EdgeConnector = new EdgeConnector(edgeConnectorListener); 26 | port.AddManipulator(port.m_EdgeConnector); 27 | } 28 | 29 | return port; 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /Assets/Editor/Scripts/FlowMessageCollectPort.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b15b165d9c8e140e19f047fec52b041b 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Editor/Scripts/FlowMessageComposePort.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using UnityEditor.Experimental.GraphView; 3 | using UnityEngine.UIElements; 4 | 5 | namespace UniFlow.Editor 6 | { 7 | public class FlowMessageComposePort : Port 8 | { 9 | private FlowMessageComposePort(Orientation portOrientation, Direction portDirection, Capacity portCapacity, Type type) : base(portOrientation, portDirection, portCapacity, type) 10 | { 11 | } 12 | 13 | public IComposableMessageAnnotation ComposableMessageAnnotation { get; private set; } 14 | 15 | public static Port Create(Orientation portOrientation, Direction portDirection, Capacity portCapacity, IComposableMessageAnnotation composableMessageAnnotation, IEdgeConnectorListener edgeConnectorListener = default) 16 | { 17 | var port = new FlowMessageComposePort(portOrientation, portDirection, portCapacity, typeof(FlowMessageComposePort)) 18 | { 19 | ComposableMessageAnnotation = composableMessageAnnotation, 20 | }; 21 | 22 | // ReSharper disable once InvertIf 23 | if (edgeConnectorListener != default) 24 | { 25 | port.m_EdgeConnector = new EdgeConnector(edgeConnectorListener); 26 | port.AddManipulator(port.m_EdgeConnector); 27 | } 28 | 29 | return port; 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /Assets/Editor/Scripts/FlowMessageComposePort.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f9c4725aac1b94447ae3b85fbc56bcbb 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Editor/Scripts/FlowNode.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8fc98eb37f1b4b69a10c9990a1509baf 3 | timeCreated: 1566527981 -------------------------------------------------------------------------------- /Assets/Editor/Scripts/FlowPort.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using UnityEditor.Experimental.GraphView; 3 | using UnityEngine; 4 | using UnityEngine.UIElements; 5 | 6 | namespace UniFlow.Editor 7 | { 8 | public class FlowPort : Port 9 | { 10 | private FlowPort(Orientation portOrientation, Direction portDirection, Capacity portCapacity, Type type) : base(portOrientation, portDirection, portCapacity, type) 11 | { 12 | } 13 | 14 | public static Port Create(Orientation portOrientation, Direction portDirection, Capacity portCapacity, IEdgeConnectorListener edgeConnectorListener = default) 15 | { 16 | // Should I use Port.Create()? 17 | var port = new FlowPort(portOrientation, portDirection, portCapacity, typeof(FlowPort)); 18 | 19 | // ReSharper disable once InvertIf 20 | if (edgeConnectorListener != default) 21 | { 22 | port.m_EdgeConnector = new EdgeConnector(edgeConnectorListener); 23 | port.AddManipulator(port.m_EdgeConnector); 24 | } 25 | port.portColor = Color.yellow; 26 | 27 | return port; 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /Assets/Editor/Scripts/FlowPort.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ba2ac6700fd4440895a81bb745143298 3 | timeCreated: 1566529708 -------------------------------------------------------------------------------- /Assets/Editor/Scripts/FlowVisualElement.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0de9e2e85c5c43d68cc5e98238742e77 3 | timeCreated: 1566483785 -------------------------------------------------------------------------------- /Assets/Editor/Scripts/IRemovableElement.cs: -------------------------------------------------------------------------------- 1 | namespace UniFlow.Editor 2 | { 3 | public interface IRemovableElement 4 | { 5 | void RemoveFromGraphView(); 6 | } 7 | } -------------------------------------------------------------------------------- /Assets/Editor/Scripts/IRemovableElement.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cf11e073a53243eeb19968e55d8fac0c 3 | timeCreated: 1567154451 -------------------------------------------------------------------------------- /Assets/Editor/Scripts/LayerIndex.cs: -------------------------------------------------------------------------------- 1 | namespace UniFlow.Editor 2 | { 3 | public enum LayerIndex 4 | { 5 | Edge = 1, 6 | Node, 7 | } 8 | } -------------------------------------------------------------------------------- /Assets/Editor/Scripts/LayerIndex.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7b2f5cee29ac4d5ba6c38784800955a4 3 | timeCreated: 1566528981 -------------------------------------------------------------------------------- /Assets/Editor/Scripts/MessageConnectorListener.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 828ad09f2e7374b03b0718d375b0408d 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Editor/Scripts/SearchWindowProvider.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 949152518d31435a98b76546407f84c9 3 | timeCreated: 1566893459 -------------------------------------------------------------------------------- /Assets/Editor/StyleSheets.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 56a08ed7966b430496412e3548a8ffee 3 | timeCreated: 1566486429 -------------------------------------------------------------------------------- /Assets/Editor/StyleSheets/FlowGraphView.uss: -------------------------------------------------------------------------------- 1 | #FlowGridBackground { 2 | flex-direction: row; 3 | flex: 1; 4 | --grid-background-color: #2a2a2a; 5 | --line-color: #262626; 6 | --thick-line-color: #212121; 7 | --spacing: 10; 8 | --thick-lines: 10; 9 | } 10 | -------------------------------------------------------------------------------- /Assets/Editor/StyleSheets/FlowGraphView.uss.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2d1bfda56f80479a9954af9e73517286 3 | timeCreated: 1566524058 -------------------------------------------------------------------------------- /Assets/Editor/StyleSheets/FlowNode.uss: -------------------------------------------------------------------------------- 1 | FlowNode { 2 | width: 300px; 3 | } 4 | 5 | FlowNode #MainContainer { 6 | margin: 5px 10px; 7 | } 8 | 9 | FlowNode #parameters { 10 | background-color: rgba(63, 63, 63, 0.8); 11 | } 12 | 13 | FlowNode #parameters #items { 14 | padding: 5px; 15 | } 16 | 17 | FlowNode #parameters #items > #divider { 18 | margin: 5px 0; 19 | } 20 | 21 | FlowNode #parameters #items > VisualElement .unity-label { 22 | min-width: 100px; 23 | max-width: 100px; 24 | } 25 | 26 | FlowNode #parameters #items > VisualElement #unity-x-input .unity-label, 27 | FlowNode #parameters #items > VisualElement #unity-y-input .unity-label, 28 | FlowNode #parameters #items > VisualElement #unity-z-input .unity-label { 29 | min-width: 20px; 30 | max-width: 20px; 31 | } 32 | 33 | FlowNode #messaged-border { 34 | position: absolute; 35 | top: 0; 36 | bottom: 0; 37 | left: 0; 38 | right: 0; 39 | margin-top: 1px; 40 | margin-bottom: 1px; 41 | margin-left: 1px; 42 | margin-right: 1px; 43 | border-radius: 8px; 44 | border-color: rgba(255, 255, 0, 0.5); 45 | border-top-width: 3px; 46 | border-bottom-width: 3px; 47 | border-left-width: 3px; 48 | border-right-width: 3px; 49 | } 50 | -------------------------------------------------------------------------------- /Assets/Editor/StyleSheets/FlowNode.uss.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9966dde7671f4ac2b46777545308ca19 3 | timeCreated: 1566528152 -------------------------------------------------------------------------------- /Assets/Editor/StyleSheets/FlowVisualElement.uss: -------------------------------------------------------------------------------- 1 | #FlowVisualElement { 2 | flex: 1; 3 | } 4 | 5 | #FlowVisualElement > #Content { 6 | flex: 1; 7 | } 8 | 9 | #FlowVisualElement > #Content > #FlowGraphView { 10 | flex: 1; 11 | } 12 | -------------------------------------------------------------------------------- /Assets/Editor/StyleSheets/FlowVisualElement.uss.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e5cd5853b6b74e9eab84a4e05492245e 3 | timeCreated: 1566486429 -------------------------------------------------------------------------------- /Assets/Editor/UniFlow.Editor.asmdef: -------------------------------------------------------------------------------- 1 | { 2 | "name": "UniFlow.Editor", 3 | "references": [ 4 | "GUID:04f82f1ff3df44e29a1b2cce70510c34", 5 | "GUID:560b04d1a97f54a4e82edc0cbbb69285" 6 | ], 7 | "includePlatforms": [ 8 | "Editor" 9 | ], 10 | "excludePlatforms": [], 11 | "allowUnsafeCode": false, 12 | "overrideReferences": false, 13 | "precompiledReferences": [], 14 | "autoReferenced": true, 15 | "defineConstraints": [], 16 | "versionDefines": [] 17 | } -------------------------------------------------------------------------------- /Assets/Editor/UniFlow.Editor.asmdef.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 26d6569d8bbc24143ac64be547efc761 3 | AssemblyDefinitionImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Installers.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 53348df9a58b6487c94cb5f44690ac9b 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Installers/UniFlowInstaller.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: 3785a4ba4e2b4fcc81b428da2930f35d, type: 3} 13 | m_Name: UniFlowInstaller 14 | m_EditorClassIdentifier: 15 | -------------------------------------------------------------------------------- /Assets/Installers/UniFlowInstaller.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 02e561d68dde84d7882365343fb07ef8 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/LICENSE.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | Copyright © 2019 Tetsuya Mori 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy 5 | of this software and associated documentation files (the “Software”), to deal 6 | in the Software without restriction, including without limitation the rights 7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the Software is 9 | furnished to do so, subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included in 12 | all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /Assets/LICENSE.txt.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8d79003350f9a4112b046f0e3cc59499 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/README.md.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 493c2809cf356418fa68b9d09a462086 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Sandbox.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bb048626fe54643beb870bad3bc4c6e5 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Sandbox/Prefabs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: edcdfa5ade37941d88ca88aff0edf373 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Sandbox/Prefabs/Prefab.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8cae44cd6fba64772a14cd152a39a8e4 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Sandbox/Scenes.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: adba8b259ad124ec7aeb2a1069e04e86 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Sandbox/Scenes/Test.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cecd180ff84db4baf9dc8f050a8be511 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Scripts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 26f25c074aa7a4e84b247b6f0b44ce6b 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Scripts/Connector.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: de9380a500db4752b298cf722b93b406 3 | timeCreated: 1562830438 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Calculator.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3ba20cdd49d441f7914f0266d022cfea 3 | timeCreated: 1572524989 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Calculator/BoolCalculator.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace UniFlow.Connector.Calculator 4 | { 5 | [AddComponentMenu("UniFlow/Calculator/BoolCalculator", (int) ConnectorType.BoolCalculator)] 6 | public class BoolCalculator : CalculatorBase, IAdditionCalculator, IMultiplicationCalculator 7 | { 8 | bool IAdditionCalculator.Add(bool left, bool right) 9 | { 10 | return left | right; 11 | } 12 | 13 | bool IMultiplicationCalculator.Multiply(bool left, bool right) 14 | { 15 | return left & right; 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Calculator/BoolCalculator.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 108052b08e564232a8e4171d19d07ab0 3 | timeCreated: 1571562644 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Calculator/CalculatorBase.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1e7a8d961bd544b2b69695d8f0ecd07e 3 | timeCreated: 1571561858 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Calculator/FloatExpression.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace UniFlow.Connector.Calculator 4 | { 5 | [AddComponentMenu("UniFlow/Calculator/FloatCalculator", (int) ConnectorType.FloatCalculator)] 6 | public class FloatCalculator : CalculatorBase, IFourArithmeticCalculator, IModulationCalculator 7 | { 8 | float IAdditionCalculator.Add(float left, float right) 9 | { 10 | return left + right; 11 | } 12 | 13 | float ISubtractionCalculator.Subtract(float left, float right) 14 | { 15 | return left - right; 16 | } 17 | 18 | float IMultiplicationCalculator.Multiply(float left, float right) 19 | { 20 | return left * right; 21 | } 22 | 23 | float IDivisionCalculator.Divide(float left, float right) 24 | { 25 | return left / right; 26 | } 27 | 28 | float IModulationCalculator.Modulo(float left, float right) 29 | { 30 | return left % right; 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Calculator/FloatExpression.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 05dce89e70814e83ae51456b109e6c32 3 | timeCreated: 1571562576 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Calculator/IntCalculator.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace UniFlow.Connector.Calculator 4 | { 5 | [AddComponentMenu("UniFlow/Calculator/IntCalculator", (int) ConnectorType.IntCalculator)] 6 | public class IntCalculator : CalculatorBase, IFourArithmeticCalculator, IModulationCalculator 7 | { 8 | int IAdditionCalculator.Add(int left, int right) 9 | { 10 | return left + right; 11 | } 12 | 13 | int ISubtractionCalculator.Subtract(int left, int right) 14 | { 15 | return left - right; 16 | } 17 | 18 | int IMultiplicationCalculator.Multiply(int left, int right) 19 | { 20 | return left * right; 21 | } 22 | 23 | int IDivisionCalculator.Divide(int left, int right) 24 | { 25 | return left / right; 26 | } 27 | 28 | int IModulationCalculator.Modulo(int left, int right) 29 | { 30 | return left % right; 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Calculator/IntCalculator.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 058d2d85c28f40018409695051946a89 3 | timeCreated: 1571560976 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Calculator/StringExpression.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace UniFlow.Connector.Calculator 4 | { 5 | [AddComponentMenu("UniFlow/Calculator/StringCalculator", (int) ConnectorType.StringCalculator)] 6 | public class StringCalculator : CalculatorBase, IAdditionCalculator 7 | { 8 | string IAdditionCalculator.Add(string left, string right) 9 | { 10 | return left + right; 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Calculator/StringExpression.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 47eb997c93a0401b8e06188453cdacd6 3 | timeCreated: 1571562814 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Complex.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 747fddd2be8d47c8939dfeb09737f832 3 | timeCreated: 1571343186 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Complex/GaugeImageRenderer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4eac16c066ec49e7bf076010a1b48107 3 | timeCreated: 1571595158 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Complex/MusicDuckingController.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 05cef80ea076421793a3e1e889dcf4b6 3 | timeCreated: 1572427329 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Complex/MusicPitchController.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 12cf2a93a77a4017a659c453c2efbd96 3 | timeCreated: 1572509181 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Complex/MusicPlayer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 34df34cf51f94a0aa12b51e31348fc19 3 | timeCreated: 1571361660 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Complex/NumberImageRenderer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 11d224f4a7944dfcb60777ab8d3cc64a 3 | timeCreated: 1571343186 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Complex/ProgressiveTimer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b4f05fb08b6d4e3091c784268cd55968 3 | timeCreated: 1571625934 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Controller.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 475ae112d7c244e68f088ad2ccf34fff 3 | timeCreated: 1567260047 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Controller/ActivationController.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d5dc990cbe0e4a4fbdff5998e2bcffad 3 | timeCreated: 1567400525 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Controller/AnimatorTrigger.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 13ea2beab68d4b9695c5913d711525ca 3 | timeCreated: 1562831513 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Controller/AudioController.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 306f3948478b4806bd3270ce91a0c068 3 | timeCreated: 1565094577 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Controller/DestroyInstance.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using JetBrains.Annotations; 5 | using UniFlow.Utility; 6 | using UnityEngine; 7 | using Object = UnityEngine.Object; 8 | 9 | namespace UniFlow.Connector.Controller 10 | { 11 | [AddComponentMenu("UniFlow/Controller/DestroyInstance", (int) ConnectorType.LoadScene)] 12 | public class DestroyInstance : ConnectorBase, IMessageCollectable 13 | { 14 | [SerializeField] private List objects = new List(); 15 | 16 | [UsedImplicitly] public IList Objects 17 | { 18 | get => objects; 19 | set => objects = value.ToList(); 20 | } 21 | 22 | [SerializeField] private ObjectCollector objectCollector = new ObjectCollector(); 23 | private ObjectCollector ObjectCollector => objectCollector; 24 | 25 | public override IObservable OnConnectAsObservable() 26 | { 27 | Objects.ToList().ForEach(Destroy); 28 | return ObservableFactory.ReturnMessage(this); 29 | } 30 | 31 | IEnumerable IMessageCollectable.GetMessageCollectableAnnotations() => 32 | new[] 33 | { 34 | CollectableMessageAnnotationFactory.Create(ObjectCollector, Objects.Add, "Object"), 35 | }; 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Controller/DestroyInstance.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9a5167253986443d8edd6044e4750f02 3 | timeCreated: 1567400626 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Controller/DontDestroyOnLoad.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using UniFlow.Utility; 3 | using UnityEngine; 4 | 5 | namespace UniFlow.Connector.Controller 6 | { 7 | [AddComponentMenu("UniFlow/Controller/DontDestroyOnLoad", (int) ConnectorType.DontDestroyOnLoad)] 8 | public class DontDestroyOnLoad : ConnectorBase 9 | { 10 | public override IObservable OnConnectAsObservable() 11 | { 12 | DontDestroyOnLoad(gameObject); 13 | return ObservableFactory.ReturnMessage(this); 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Controller/DontDestroyOnLoad.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 100966f39e2146ff83ae6ecb77a56174 3 | timeCreated: 1570026181 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Controller/EventHandlingController.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d57eab21d8ce4b0fac9fce7c95bd83ee 3 | timeCreated: 1573732913 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Controller/InstantiateGameObject.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9d96a435a8d74b1a8c60ffea57ac84fa 3 | timeCreated: 1568130173 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Controller/InstantiateGameObjectWithInjectionBase.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1b2ad0b7623049c8b7bf4f3707bdbb8b 3 | timeCreated: 1571233445 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Controller/LoadScene.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Linq; 3 | using JetBrains.Annotations; 4 | using UnityEngine; 5 | 6 | namespace UniFlow.Connector.Controller 7 | { 8 | [AddComponentMenu("UniFlow/Controller/LoadScene", (int) ConnectorType.LoadScene)] 9 | public class LoadScene : LoadSceneBase 10 | { 11 | [SerializeField] private List sceneNames = default; 12 | 13 | [UsedImplicitly] public override IEnumerable SceneNames 14 | { 15 | get => sceneNames; 16 | set => sceneNames = value.ToList(); 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Controller/LoadScene.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 28abb11fbf954db080cb858d39c542f7 3 | timeCreated: 1565249834 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Controller/LoadSceneBase.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using Cysharp.Threading.Tasks; 4 | using JetBrains.Annotations; 5 | using UniRx; 6 | using UnityEngine.SceneManagement; 7 | using Zenject; 8 | 9 | namespace UniFlow.Connector.Controller 10 | { 11 | public abstract class LoadSceneBase : ConnectorBase 12 | { 13 | [UsedImplicitly] 14 | public abstract IEnumerable SceneNames { get; set; } 15 | 16 | [InjectOptional] private AsyncLoadSceneDelegate AsyncLoadSceneDelegate { get; } = DefaultAsyncLoadScene; 17 | 18 | public override IObservable OnConnectAsObservable() 19 | { 20 | return AsyncLoadSceneDelegate(SceneNames) 21 | .ToObservable() 22 | .Select(this.CreateMessage); 23 | } 24 | 25 | private static async UniTask DefaultAsyncLoadScene(IEnumerable sceneNames) 26 | { 27 | foreach (var sceneName in sceneNames) 28 | { 29 | await SceneManager.LoadSceneAsync(sceneName, LoadSceneMode.Additive); 30 | } 31 | } 32 | } 33 | 34 | public delegate UniTask AsyncLoadSceneDelegate(IEnumerable sceneNames); 35 | } 36 | -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Controller/LoadSceneBase.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 66350073e5a24e02b6106711d805b3da 3 | timeCreated: 1568896106 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Controller/LoadSceneEnumBase.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text.RegularExpressions; 5 | using JetBrains.Annotations; 6 | using UnityEngine; 7 | using Zenject; 8 | 9 | namespace UniFlow.Connector.Controller 10 | { 11 | public abstract class LoadSceneEnumBase : LoadSceneBase where TSceneName : Enum 12 | { 13 | [SerializeField] private List sceneNames = default; 14 | 15 | [InjectOptional(Id = InjectId.SceneNamePrefix)] private string SceneNamePrefix { get; } 16 | 17 | [UsedImplicitly] public override IEnumerable SceneNames 18 | { 19 | get => sceneNames.Select(x => $"{SceneNamePrefix}{x.ToString()}"); 20 | set => sceneNames = value 21 | .Select( 22 | x => (TSceneName) Enum 23 | .Parse( 24 | typeof(TSceneName), 25 | Regex.Replace(x, $"^{SceneNamePrefix}", string.Empty) 26 | ) 27 | ) 28 | .ToList(); 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Controller/LoadSceneEnumBase.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 557a18adcc3446dfa1cea49dd2800a06 3 | timeCreated: 1568895941 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Controller/MoveParentTransform.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9a52a20b5ede4c8ca6a5debe9b19c80b 3 | timeCreated: 1566463259 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Controller/PlayableController.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c4c15fc42dc5482199932c4a3305f962 3 | timeCreated: 1562831634 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Controller/RaycastTargetController.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: feefc9c6f64c4f74b9dcdc3462b2243d 3 | timeCreated: 1566464568 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Controller/RaycasterController.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using JetBrains.Annotations; 5 | using UniFlow.Utility; 6 | using UnityEngine; 7 | using UnityEngine.EventSystems; 8 | 9 | namespace UniFlow.Connector.Controller 10 | { 11 | [AddComponentMenu("UniFlow/Controller/RaycasterController", (int) ConnectorType.RaycasterController)] 12 | public class RaycasterController : ConnectorBase 13 | { 14 | [SerializeField] private RaycasterControlMethod raycasterControlMethod = RaycasterControlMethod.Activate; 15 | [SerializeField] private List raycasters = default; 16 | 17 | [UsedImplicitly] private RaycasterControlMethod RaycasterControlMethod 18 | { 19 | get => raycasterControlMethod; 20 | set => raycasterControlMethod = value; 21 | } 22 | [UsedImplicitly] private IEnumerable Raycasters 23 | { 24 | get => raycasters; 25 | set => raycasters = value.ToList(); 26 | } 27 | 28 | public override IObservable OnConnectAsObservable() 29 | { 30 | HandleActivation(); 31 | return ObservableFactory.ReturnMessage(this); 32 | } 33 | 34 | private void HandleActivation() 35 | { 36 | var targets = Raycasters.Where(x => x.enabled != (RaycasterControlMethod == RaycasterControlMethod.Activate)).ToList(); 37 | targets.ForEach(x => x.enabled = RaycasterControlMethod == RaycasterControlMethod.Activate); 38 | } 39 | } 40 | 41 | [PublicAPI] 42 | public enum RaycasterControlMethod 43 | { 44 | Activate, 45 | Deactivate, 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Controller/RaycasterController.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 310968de5ced47a1ab75a25d6e50732a 3 | timeCreated: 1566216860 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Controller/SimpleAnimationController.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e354102254874aecbac12539fc4505b3 3 | timeCreated: 1565255438 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Controller/TimeScaleController.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 296d09de4d5545b2898c66b8a4f7cbd9 3 | timeCreated: 1565694908 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Controller/TransformSiblingController.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 24638babb79546c7aa8f949cb8305d00 3 | timeCreated: 1570695094 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Controller/UnloadScene.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Linq; 3 | using JetBrains.Annotations; 4 | using UnityEngine; 5 | 6 | namespace UniFlow.Connector.Controller 7 | { 8 | [AddComponentMenu("UniFlow/Controller/UnloadScene", (int) ConnectorType.UnloadScene)] 9 | public class UnloadScene : UnloadSceneBase 10 | { 11 | [SerializeField] private List sceneNames = default; 12 | 13 | [UsedImplicitly] public override IEnumerable SceneNames 14 | { 15 | get => sceneNames; 16 | set => sceneNames = value.ToList(); 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Controller/UnloadScene.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0a8555d88fa64fae816f0116869b471d 3 | timeCreated: 1565249848 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Controller/UnloadSceneBase.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using Cysharp.Threading.Tasks; 4 | using JetBrains.Annotations; 5 | using UniRx; 6 | using UnityEngine.SceneManagement; 7 | using Zenject; 8 | 9 | namespace UniFlow.Connector.Controller 10 | { 11 | public abstract class UnloadSceneBase : ConnectorBase 12 | { 13 | [UsedImplicitly] 14 | public abstract IEnumerable SceneNames { get; set; } 15 | 16 | [InjectOptional] private AsyncUnloadSceneDelegate AsyncUnloadSceneDelegate { get; } = DefaultAsyncUnloadScene; 17 | 18 | public override IObservable OnConnectAsObservable() 19 | { 20 | return AsyncUnloadSceneDelegate(SceneNames) 21 | .ToObservable() 22 | .Select(this.CreateMessage); 23 | } 24 | 25 | private static async UniTask DefaultAsyncUnloadScene(IEnumerable sceneNames) 26 | { 27 | foreach (var sceneName in sceneNames) 28 | { 29 | await SceneManager.UnloadSceneAsync(sceneName); 30 | } 31 | } 32 | } 33 | 34 | public delegate UniTask AsyncUnloadSceneDelegate(IEnumerable sceneNames); 35 | } 36 | -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Controller/UnloadSceneBase.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c5530ca1b3904569a5ca1c1c53a8732f 3 | timeCreated: 1568896159 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Controller/UnloadSceneEnumBase.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text.RegularExpressions; 5 | using JetBrains.Annotations; 6 | using UnityEngine; 7 | using Zenject; 8 | 9 | namespace UniFlow.Connector.Controller 10 | { 11 | public abstract class UnloadSceneEnumBase : UnloadSceneBase where TSceneName : Enum 12 | { 13 | [SerializeField] private List sceneNames = default; 14 | 15 | [InjectOptional(Id = InjectId.SceneNamePrefix)] private string SceneNamePrefix { get; } 16 | 17 | [UsedImplicitly] public override IEnumerable SceneNames 18 | { 19 | get => sceneNames.Select(x => $"{SceneNamePrefix}{x.ToString()}"); 20 | set => sceneNames = value 21 | .Select( 22 | x => (TSceneName) Enum 23 | .Parse( 24 | typeof(TSceneName), 25 | Regex.Replace(x, $"^{SceneNamePrefix}", string.Empty) 26 | ) 27 | ) 28 | .ToList(); 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Controller/UnloadSceneEnumBase.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cb2ba5413cf043ef8fec32fc864eb1fe 3 | timeCreated: 1568896041 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Event.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0a477956e4fa4360a70470e06a0a1082 3 | timeCreated: 1567259943 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Event/AnimationEvent.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 79d730e2e15e4d688fab6e1a6d9f5e56 3 | timeCreated: 1562831219 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Event/AudioEvent.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5123bd7d9f1949adbf43f3b8391a5ebd 3 | timeCreated: 1565010802 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Event/CameraEvent.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2a133b3a9e6a4868ae2e11afff21cc6e 3 | timeCreated: 1562934552 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Event/KeyEvent.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8c14f3a3d8fe4aada21f6a9e1d371b9f 3 | timeCreated: 1565693346 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Event/LifecycleEvent.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 85a0f26910644eac9392a5b944f82349 3 | timeCreated: 1562928244 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Event/LoadSceneEvent.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using JetBrains.Annotations; 3 | using UniRx; 4 | using UnityEngine; 5 | using UnityEngine.SceneManagement; 6 | 7 | namespace UniFlow.Connector.Event 8 | { 9 | [AddComponentMenu("UniFlow/Event/LoadSceneEvent", (int) ConnectorType.LoadSceneEvent)] 10 | public class LoadSceneEvent : ConnectorBase 11 | { 12 | [SerializeField] private string sceneName = default; 13 | 14 | [UsedImplicitly] public string SceneName 15 | { 16 | get => sceneName; 17 | set => sceneName = value; 18 | } 19 | 20 | private ISubject Subject { get; } = new Subject(); 21 | 22 | public override IObservable OnConnectAsObservable() => Subject.AsMessageObservable(this); 23 | 24 | protected override void Start() 25 | { 26 | base.Start(); 27 | SceneManager.sceneLoaded += DidLoadScene; 28 | } 29 | 30 | private void OnDestroy() 31 | { 32 | SceneManager.sceneLoaded -= DidLoadScene; 33 | } 34 | 35 | private void DidLoadScene(Scene loadedScene, LoadSceneMode mode) 36 | { 37 | if (loadedScene.name == SceneName) 38 | { 39 | Subject.OnNext(Unit.Default); 40 | } 41 | } 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Event/LoadSceneEvent.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 82f9fc4f9d304012b041aeabb5634ba1 3 | timeCreated: 1570534045 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Event/MouseEvent.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 133e5a204e644b7baa1d02e35d8650bc 3 | timeCreated: 1562934602 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Event/ParticleEvent.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 75c5eb63a14b46bebbdeddc0e52ff2a0 3 | timeCreated: 1563260809 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Event/PhysicsCollision2DEvent.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 719d401f9fe44e9289a6f2c19e554eee 3 | timeCreated: 1562934572 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Event/PhysicsCollisionEvent.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cc32007bdceb41edaab3333ce7b5b902 3 | timeCreated: 1562934561 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Event/PhysicsTrigger2DEvent.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6bb5c624be4a4aac91b4cdb9681cff85 3 | timeCreated: 1563255219 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Event/PhysicsTriggerEvent.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e2409ca6f23849e88e8fa393d504c41f 3 | timeCreated: 1563255173 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Event/RectTransformEvent.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 468a101b1c5346a5975953f737a5a04f 3 | timeCreated: 1563262882 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Event/SimpleAnimationEvent.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6fc6fac5bf554d4da6db3c2feda04ca8 3 | timeCreated: 1566462036 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Event/TimelineEvent.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7e0c3e70e31f4801a6fdf1ac6facdab6 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: 7 | - beginSignal: {fileID: 11400000, guid: 3dbc3d1c5a0704ea6ade5b04509bc240, type: 2} 8 | - endSignal: {fileID: 11400000, guid: 51b2d11bb0d2d403d8f39dde22b9effd, type: 2} 9 | - timelineAsset: {instanceID: 0} 10 | - playableDirector: {instanceID: 0} 11 | executionOrder: 0 12 | icon: {instanceID: 0} 13 | userData: 14 | assetBundleName: 15 | assetBundleVariant: 16 | -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Event/TimelineSignal.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7897bf78af8d443e83a6786b2e4fdfda 3 | timeCreated: 1562830564 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Event/TransformEvent.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 26b38cae76844663b114d2f6c25a48fe 3 | timeCreated: 1563262866 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Event/UIBehaviourEventTrigger.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 986c65454dfa4cf6a69ff9328f793990 3 | timeCreated: 1562830439 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Event/UnloadSceneEvent.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using JetBrains.Annotations; 3 | using UniRx; 4 | using UnityEngine; 5 | using UnityEngine.SceneManagement; 6 | 7 | namespace UniFlow.Connector.Event 8 | { 9 | [AddComponentMenu("UniFlow/Event/UnloadSceneEvent", (int) ConnectorType.UnloadSceneEvent)] 10 | public class UnloadSceneEvent : ConnectorBase 11 | { 12 | [SerializeField] private string sceneName = default; 13 | 14 | [UsedImplicitly] public string SceneName 15 | { 16 | get => sceneName; 17 | set => sceneName = value; 18 | } 19 | 20 | private ISubject Subject { get; } = new Subject(); 21 | 22 | public override IObservable OnConnectAsObservable() => Subject.AsMessageObservable(this); 23 | 24 | protected override void Start() 25 | { 26 | base.Start(); 27 | SceneManager.sceneUnloaded += DidUnloadScene; 28 | } 29 | 30 | private void OnDestroy() 31 | { 32 | SceneManager.sceneUnloaded -= DidUnloadScene; 33 | } 34 | 35 | private void DidUnloadScene(Scene unloadedScene) 36 | { 37 | if (unloadedScene.name == SceneName) 38 | { 39 | Subject.OnNext(Unit.Default); 40 | } 41 | } 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Event/UnloadSceneEvent.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: acad2337f85040d398d5626fa6914067 3 | timeCreated: 1569396014 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Expression.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9ef5fd6a410a4aac838f670a8fb6bc98 3 | timeCreated: 1570698173 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Expression/And.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using UniFlow.Utility; 5 | using UnityEngine; 6 | 7 | namespace UniFlow.Connector.Expression 8 | { 9 | [AddComponentMenu("UniFlow/Expression/And", (int) ConnectorType.And)] 10 | public class And : ConnectorBase, IMessageCollectable 11 | { 12 | private IList Conditions { get; } = new List(); 13 | 14 | private bool Value 15 | { 16 | get => Conditions.All(x => x); 17 | set => Conditions.Add(value); 18 | } 19 | 20 | [SerializeField] private BoolCollector valueCollector = new BoolCollector(); 21 | private BoolCollector ValueCollector => valueCollector; 22 | 23 | public override IObservable OnConnectAsObservable() 24 | { 25 | return Value ? ObservableFactory.ReturnMessage(this) : ObservableFactory.EmptyMessage(); 26 | } 27 | 28 | IEnumerable IMessageCollectable.GetMessageCollectableAnnotations() => 29 | new[] 30 | { 31 | CollectableMessageAnnotationFactory.Create(ValueCollector, x => Value = x, nameof(Value)), 32 | }; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Expression/And.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: dbd6c658e45e428dbad1bcf00f3d0b41 3 | timeCreated: 1570697873 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Expression/Not.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using UniFlow.Utility; 5 | using UnityEngine; 6 | 7 | namespace UniFlow.Connector.Expression 8 | { 9 | [AddComponentMenu("UniFlow/Expression/Not", (int) ConnectorType.Not)] 10 | public class Not : ConnectorBase, IMessageCollectable 11 | { 12 | private IList Conditions { get; } = new List(); 13 | 14 | private bool Value 15 | { 16 | get => Conditions.All(x => !x); 17 | set => Conditions.Add(value); 18 | } 19 | 20 | [SerializeField] private BoolCollector valueCollector = new BoolCollector(); 21 | private BoolCollector ValueCollector => valueCollector; 22 | 23 | public override IObservable OnConnectAsObservable() 24 | { 25 | return Value ? ObservableFactory.ReturnMessage(this) : ObservableFactory.EmptyMessage(); 26 | } 27 | 28 | IEnumerable IMessageCollectable.GetMessageCollectableAnnotations() => 29 | new[] 30 | { 31 | CollectableMessageAnnotationFactory.Create(ValueCollector, x => Value = x, nameof(Value)), 32 | }; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Expression/Not.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 81a19da1e9cb4927bcfaf06a4d3f4b18 3 | timeCreated: 1570698484 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Expression/Or.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using UniFlow.Utility; 5 | using UnityEngine; 6 | 7 | namespace UniFlow.Connector.Expression 8 | { 9 | [AddComponentMenu("UniFlow/Expression/Or", (int) ConnectorType.Or)] 10 | public class Or : ConnectorBase, IMessageCollectable 11 | { 12 | private IList Conditions { get; } = new List(); 13 | 14 | private bool Value 15 | { 16 | get => Conditions.Any(x => x); 17 | set => Conditions.Add(value); 18 | } 19 | 20 | [SerializeField] private BoolCollector valueCollector = new BoolCollector(); 21 | private BoolCollector ValueCollector => valueCollector; 22 | 23 | public override IObservable OnConnectAsObservable() 24 | { 25 | return Value ? ObservableFactory.ReturnMessage(this) : ObservableFactory.EmptyMessage(); 26 | } 27 | 28 | IEnumerable IMessageCollectable.GetMessageCollectableAnnotations() => 29 | new[] 30 | { 31 | CollectableMessageAnnotationFactory.Create(ValueCollector, x => Value = x, nameof(Value)), 32 | }; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Expression/Or.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 96712457dd254e3dabf5e90b9a8d0b58 3 | timeCreated: 1570698091 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Expression/Xor.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using UniFlow.Utility; 4 | using UnityEngine; 5 | 6 | namespace UniFlow.Connector.Expression 7 | { 8 | [AddComponentMenu("UniFlow/Expression/Xor", (int) ConnectorType.Xor)] 9 | public class Xor : ConnectorBase, IMessageCollectable 10 | { 11 | private bool Left { get; set; } 12 | private bool Right { get; set; } 13 | 14 | [SerializeField] private BoolCollector leftCollector = new BoolCollector(); 15 | [SerializeField] private BoolCollector rightCollector = new BoolCollector(); 16 | 17 | private BoolCollector LeftCollector => leftCollector; 18 | private BoolCollector RightCollector => rightCollector; 19 | 20 | public override IObservable OnConnectAsObservable() 21 | { 22 | return Left ^ Right ? ObservableFactory.ReturnMessage(this) : ObservableFactory.EmptyMessage(); 23 | } 24 | 25 | IEnumerable IMessageCollectable.GetMessageCollectableAnnotations() => 26 | new[] 27 | { 28 | CollectableMessageAnnotationFactory.Create(LeftCollector, x => Left = x, nameof(Left)), 29 | CollectableMessageAnnotationFactory.Create(RightCollector, x => Right = x, nameof(Right)), 30 | }; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Expression/Xor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9866f4f694fb4034967352fe08366978 3 | timeCreated: 1570698518 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Logic.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7c45d5f01cd44fc5bb48d6cc72ae9df1 3 | timeCreated: 1567260030 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Logic/Counter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using UniRx; 4 | using UnityEngine; 5 | 6 | namespace UniFlow.Connector.Logic 7 | { 8 | [AddComponentMenu("UniFlow/Logic/Counter", (int) ConnectorType.Counter)] 9 | public class Counter : ConnectorBase, IMessageCollectable, IMessageComposable 10 | { 11 | [SerializeField] private IntCollector initialCountCollector = default; 12 | private IntCollector InitialCountCollector => initialCountCollector; 13 | 14 | private IReactiveProperty CounterProperty { get; } = new IntReactiveProperty(); 15 | 16 | public override IObservable OnConnectAsObservable() 17 | { 18 | CounterProperty.Value++; 19 | return CounterProperty.AsMessageObservable(this, "Count"); 20 | } 21 | 22 | IEnumerable IMessageCollectable.GetMessageCollectableAnnotations() => 23 | new[] 24 | { 25 | CollectableMessageAnnotationFactory.Create(InitialCountCollector, x => CounterProperty.Value = x, "InitialCount"), 26 | }; 27 | 28 | IEnumerable IMessageComposable.GetMessageComposableAnnotations() => 29 | new[] 30 | { 31 | ComposableMessageAnnotationFactory.Create(() => CounterProperty.Value, "Count"), 32 | }; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Logic/Counter.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fd840434b6a44fa78b7d56851568411d 3 | timeCreated: 1571557099 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Logic/Empty.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using UniFlow.Utility; 3 | using UnityEngine; 4 | 5 | namespace UniFlow.Connector.Logic 6 | { 7 | [AddComponentMenu("UniFlow/Logic/Empty", (int) ConnectorType.Empty)] 8 | public class Empty : ConnectorBase 9 | { 10 | public override IObservable OnConnectAsObservable() 11 | { 12 | return ObservableFactory.ReturnMessage(this); 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Logic/Empty.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 004e74fbf5d94271892f117c1dc6d2b4 3 | timeCreated: 1564467298 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Logic/Interval.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c75b5631c1dd457ca629666003c656b9 3 | timeCreated: 1565184695 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Logic/IntervalFrame.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 630c642b63294c189aca21080b19d66f 3 | timeCreated: 1570784067 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Logic/RandomFloat.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c6e1cb4b72c34006b5aac5fb4f112a17 3 | timeCreated: 1571370328 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Logic/RandomInt.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6db01b8df4cc4359aef17a4615919c93 3 | timeCreated: 1571369898 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Logic/Timer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5c68da8d20a7460881ef721586f08251 3 | timeCreated: 1564471411 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Logic/TimerFrame.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b18415d1875b4818850abf7f449a7d81 3 | timeCreated: 1570783942 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Misc.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f38f8a8f7028405bab60587ef43f6122 3 | timeCreated: 1568809846 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Misc/Receive.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using UniFlow.Utility; 3 | using UnityEngine; 4 | 5 | namespace UniFlow.Connector.Misc 6 | { 7 | [AddComponentMenu("UniFlow/Misc/Receive", (int) ConnectorType.Receive)] 8 | public class Receive : ConnectorBase 9 | { 10 | // force return false to prevent triggering 11 | public override bool ActAsTrigger 12 | { 13 | get => false; 14 | set 15 | { 16 | } 17 | } 18 | 19 | public override IObservable OnConnectAsObservable() 20 | { 21 | return ObservableFactory.ReturnMessage(this); 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Misc/Receive.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ddef13599bdc4654af51f346d00c9c72 3 | timeCreated: 1568622905 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Misc/Toss.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using UniFlow.Utility; 4 | using UnityEngine; 5 | 6 | namespace UniFlow.Connector.Misc 7 | { 8 | [AddComponentMenu("UniFlow/Misc/Toss", (int) ConnectorType.Toss)] 9 | public class Toss : ConnectorBase, IMessageCollectable 10 | { 11 | [SerializeField] private List targets = default; 12 | private IList Targets => targets; 13 | 14 | private GameObject TargetGameObject 15 | { 16 | set => Targets.Add(value); 17 | } 18 | 19 | [SerializeField] private GameObjectCollector targetGameObjectCollector = new GameObjectCollector(); 20 | private GameObjectCollector TargetGameObjectCollector => targetGameObjectCollector; 21 | 22 | public override IObservable OnConnectAsObservable() 23 | { 24 | foreach (var target in Targets) 25 | { 26 | if (target != default && target.activeSelf) 27 | { 28 | (target.GetComponent() as IConnector)?.Connect(ObservableFactory.ReturnMessage(this)); 29 | } 30 | } 31 | return ObservableFactory.ReturnMessage(this); 32 | } 33 | 34 | public IEnumerable GetMessageCollectableAnnotations() => 35 | new[] 36 | { 37 | CollectableMessageAnnotationFactory.Create(TargetGameObjectCollector, x => TargetGameObject = x, nameof(TargetGameObject)), 38 | }; 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /Assets/Scripts/Connector/Misc/Toss.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7fcda12b43d340ab9f5b06900efb58d1 3 | timeCreated: 1568622711 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/SignalPublisher.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 51ad1a3208304325969fb981ac2600e4 3 | timeCreated: 1570613103 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/SignalPublisher/HandleEventSignalPublisher.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using UniFlow.Signal; 3 | using UnityEngine; 4 | 5 | namespace UniFlow.Connector.SignalPublisher 6 | { 7 | [AddComponentMenu("UniFlow/SignalPublisher/HandleEventSignalPublisher", (int) ConnectorType.HandleEventSignalPublisher)] 8 | public class HandleEventSignalPublisher : SignalPublisherBase, IMessageCollectable 9 | { 10 | [SerializeField] private HandleEventType handleEventType = default; 11 | private HandleEventType HandleEventType 12 | { 13 | get => handleEventType; 14 | set => handleEventType = value; 15 | } 16 | 17 | [SerializeField] private HandleEventTypeCollector handleEventTypeCollector = new HandleEventTypeCollector(); 18 | private HandleEventTypeCollector HandleEventTypeCollector => handleEventTypeCollector; 19 | 20 | protected override HandleEventSignal GetSignal() => 21 | HandleEventSignal.Create(HandleEventType); 22 | 23 | IEnumerable IMessageCollectable.GetMessageCollectableAnnotations() => 24 | new[] 25 | { 26 | CollectableMessageAnnotationFactory.Create(HandleEventTypeCollector, x => HandleEventType = x, nameof(HandleEventType)), 27 | }; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /Assets/Scripts/Connector/SignalPublisher/HandleEventSignalPublisher.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4427fa2e03fc4b37bfcfbb8b138ef7d0 3 | timeCreated: 1571659444 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/SignalPublisher/MusicControlSignalPublisher.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a0c997ccff6d44edadaae94badb1e543 3 | timeCreated: 1572430217 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/SignalPublisher/MusicDuckingSignalPublisher.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using UniFlow.Signal; 3 | using UnityEngine; 4 | 5 | namespace UniFlow.Connector.SignalPublisher 6 | { 7 | [AddComponentMenu("UniFlow/SignalPublisher/MusicDuckingSignalPublisher", (int) ConnectorType.MusicDuckingSignalPublisher)] 8 | public class MusicDuckingSignalPublisher : SignalPublisherBase, IMessageCollectable 9 | { 10 | [SerializeField] private float volume = default; 11 | [SerializeField] private float duration = default; 12 | 13 | private float Volume 14 | { 15 | get => volume; 16 | set => volume = value; 17 | } 18 | private float Duration 19 | { 20 | get => duration; 21 | set => duration = value; 22 | } 23 | 24 | [SerializeField] private FloatCollector volumeCollector = new FloatCollector(); 25 | [SerializeField] private FloatCollector durationCollector = new FloatCollector(); 26 | 27 | private FloatCollector VolumeCollector => volumeCollector; 28 | private FloatCollector DurationCollector => durationCollector; 29 | 30 | protected override MusicDuckingSignal GetSignal() => 31 | MusicDuckingSignal.Create(Volume, Duration); 32 | 33 | IEnumerable IMessageCollectable.GetMessageCollectableAnnotations() => 34 | new[] 35 | { 36 | CollectableMessageAnnotationFactory.Create(VolumeCollector, x => Volume = x, nameof(Volume)), 37 | CollectableMessageAnnotationFactory.Create(DurationCollector, x => Duration = x, nameof(Duration)), 38 | }; 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /Assets/Scripts/Connector/SignalPublisher/MusicDuckingSignalPublisher.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7bdfb8091a24444cbc5977b215dca58b 3 | timeCreated: 1572426589 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/SignalPublisher/MusicPitchSignalPublisher.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using UniFlow.Signal; 3 | using UnityEngine; 4 | 5 | namespace UniFlow.Connector.SignalPublisher 6 | { 7 | [AddComponentMenu("UniFlow/SignalPublisher/MusicPitchSignalPublisher", (int) ConnectorType.MusicPitchSignalPublisher)] 8 | public class MusicPitchSignalPublisher : SignalPublisherBase, IMessageCollectable 9 | { 10 | [SerializeField] private float pitch = default; 11 | [SerializeField] private float duration = default; 12 | 13 | private float Pitch 14 | { 15 | get => pitch; 16 | set => pitch = value; 17 | } 18 | private float Duration 19 | { 20 | get => duration; 21 | set => duration = value; 22 | } 23 | 24 | [SerializeField] private FloatCollector pitchCollector = new FloatCollector(); 25 | [SerializeField] private FloatCollector durationCollector = new FloatCollector(); 26 | 27 | private FloatCollector PitchCollector => pitchCollector; 28 | private FloatCollector DurationCollector => durationCollector; 29 | 30 | protected override MusicPitchSignal GetSignal() => 31 | MusicPitchSignal.Create(Pitch, Duration); 32 | 33 | IEnumerable IMessageCollectable.GetMessageCollectableAnnotations() => 34 | new[] 35 | { 36 | CollectableMessageAnnotationFactory.Create(PitchCollector, x => Pitch = x, nameof(Pitch)), 37 | CollectableMessageAnnotationFactory.Create(DurationCollector, x => Duration = x, nameof(Duration)), 38 | }; 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /Assets/Scripts/Connector/SignalPublisher/MusicPitchSignalPublisher.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2e77cd52cefb4b8ba2c36e99f31fec94 3 | timeCreated: 1572509301 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/SignalPublisher/StringSignalPublisher.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 88cd519c3d124dacb1877d2fdcbe9d40 3 | timeCreated: 1570613103 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/SignalPublisherBase.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8879c3ee2da64f788d523a264173f92a 3 | timeCreated: 1570585876 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/SignalReceiver.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7f5ca0679ad24724b4d549ec64037285 3 | timeCreated: 1570613813 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/SignalReceiver/HandleEventSignalReceiver.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using UniFlow.Signal; 3 | using UnityEngine; 4 | 5 | namespace UniFlow.Connector.SignalReceiver 6 | { 7 | [AddComponentMenu("UniFlow/SignalReceiver/HandleEventSignalReceiver", (int) ConnectorType.HandleEventSignalPublisher)] 8 | public class HandleEventSignalReceiver : SignalReceiverBase, IMessageCollectable 9 | { 10 | [SerializeField] private HandleEventType handleEventType = default; 11 | private HandleEventType HandleEventType 12 | { 13 | get => handleEventType; 14 | set => handleEventType = value; 15 | } 16 | 17 | [SerializeField] private HandleEventTypeCollector handleEventTypeCollector = new HandleEventTypeCollector(); 18 | private HandleEventTypeCollector HandleEventTypeCollector => handleEventTypeCollector; 19 | 20 | protected override HandleEventSignal GetSignal() => 21 | HandleEventSignal.Create(HandleEventType); 22 | 23 | IEnumerable IMessageCollectable.GetMessageCollectableAnnotations() => 24 | new[] 25 | { 26 | CollectableMessageAnnotationFactory.Create(HandleEventTypeCollector, x => HandleEventType = x, nameof(HandleEventType)), 27 | }; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /Assets/Scripts/Connector/SignalReceiver/HandleEventSignalReceiver.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2f6a4fa5c1694dc996f906163522641d 3 | timeCreated: 1571659655 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/SignalReceiver/MusicControlSignalReceiver.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Linq; 3 | using UniFlow.Signal; 4 | using UnityEngine; 5 | 6 | namespace UniFlow.Connector.SignalReceiver 7 | { 8 | [AddComponentMenu("UniFlow/SignalReceiver/MusicControlSignalReceiver", (int) ConnectorType.MusicControlSignalReceiver)] 9 | public class MusicControlSignalReceiver : SignalReceiverBase 10 | { 11 | protected override MusicControlSignal GetSignal() => 12 | MusicControlSignal.Create(); 13 | 14 | public override IEnumerable GetMessageComposableAnnotations() => 15 | base.GetMessageComposableAnnotations() 16 | .Concat( 17 | new[] 18 | { 19 | ComposableMessageAnnotationFactory.Create(() => ReceivedSignal.AudioControlMethod, nameof(ReceivedSignal.AudioControlMethod)), 20 | ComposableMessageAnnotationFactory.Create(() => ReceivedSignal.AudioClip, nameof(ReceivedSignal.AudioClip)), 21 | ComposableMessageAnnotationFactory.Create(() => ReceivedSignal.Loop, nameof(ReceivedSignal.Loop)), 22 | ComposableMessageAnnotationFactory.Create(() => ReceivedSignal.RewindSameClip, nameof(ReceivedSignal.RewindSameClip)), 23 | } 24 | ); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /Assets/Scripts/Connector/SignalReceiver/MusicControlSignalReceiver.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 35a9753467824cca8a141e2771f39b93 3 | timeCreated: 1572430059 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/SignalReceiver/MusicDuckingSignalReceiver.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Linq; 3 | using UniFlow.Signal; 4 | using UnityEngine; 5 | 6 | namespace UniFlow.Connector.SignalReceiver 7 | { 8 | [AddComponentMenu("UniFlow/SignalReceiver/MusicDuckingSignalReceiver", (int) ConnectorType.MusicDuckingSignalReceiver)] 9 | public class MusicDuckingSignalReceiver : SignalReceiverBase 10 | { 11 | protected override MusicDuckingSignal GetSignal() => 12 | MusicDuckingSignal.Create(); 13 | 14 | public override IEnumerable GetMessageComposableAnnotations() => 15 | base.GetMessageComposableAnnotations() 16 | .Concat( 17 | new[] 18 | { 19 | ComposableMessageAnnotationFactory.Create(() => ReceivedSignal.Volume, nameof(ReceivedSignal.Volume)), 20 | ComposableMessageAnnotationFactory.Create(() => ReceivedSignal.Duration, nameof(ReceivedSignal.Duration)), 21 | } 22 | ); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /Assets/Scripts/Connector/SignalReceiver/MusicDuckingSignalReceiver.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 86ad318d1bf74d29aa9db8f6934ff5ae 3 | timeCreated: 1572427115 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/SignalReceiver/MusicPitchSignalReceiver.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Linq; 3 | using UniFlow.Signal; 4 | using UnityEngine; 5 | 6 | namespace UniFlow.Connector.SignalReceiver 7 | { 8 | [AddComponentMenu("UniFlow/SignalReceiver/MusicPitchSignalReceiver", (int) ConnectorType.MusicPitchSignalReceiver)] 9 | public class MusicPitchSignalReceiver : SignalReceiverBase 10 | { 11 | protected override MusicPitchSignal GetSignal() => 12 | MusicPitchSignal.Create(); 13 | 14 | public override IEnumerable GetMessageComposableAnnotations() => 15 | base.GetMessageComposableAnnotations() 16 | .Concat( 17 | new[] 18 | { 19 | ComposableMessageAnnotationFactory.Create(() => ReceivedSignal.Pitch, nameof(ReceivedSignal.Pitch)), 20 | ComposableMessageAnnotationFactory.Create(() => ReceivedSignal.Duration, nameof(ReceivedSignal.Duration)), 21 | } 22 | ); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /Assets/Scripts/Connector/SignalReceiver/MusicPitchSignalReceiver.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 558f9d051a1f41f091d3695ea95e3ed0 3 | timeCreated: 1572509379 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/SignalReceiver/StringSignalReceiver.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 99d4ba2251f74977b227ba722112eb59 3 | timeCreated: 1570613813 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/SignalReceiverBase.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c999e5be3bec4c2d834a03fa9358302c 3 | timeCreated: 1570613871 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/ValueComparer.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: dd05c638351a47eab94d86260758052a 3 | timeCreated: 1568810234 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/ValueComparer/BoolComparer.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace UniFlow.Connector.ValueComparer 4 | { 5 | [AddComponentMenu("UniFlow/ValueComparer/BoolComparer", (int) ConnectorType.ValueComparerBool)] 6 | public class BoolComparer : ComparerBase 7 | { 8 | protected override bool Compare(bool actual) 9 | { 10 | return Expect == actual; 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Assets/Scripts/Connector/ValueComparer/BoolComparer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ed64fd013b5a441e9b3c2c65dafaecab 3 | timeCreated: 1568882437 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/ValueComparer/ComparerBase.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8436b509b98c436f8563a5a1a9621768 3 | timeCreated: 1568810363 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/ValueComparer/EnumComparerBase.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace UniFlow.Connector.ValueComparer 4 | { 5 | public abstract class EnumComparerBase : ComparerBase.OperatorType, TCollector> 6 | where TCollector : ValueCollectorBase, new() 7 | where TEnum : Enum 8 | { 9 | protected override bool Compare(TEnum actual) 10 | { 11 | switch (Operator) 12 | { 13 | case OperatorType.Equal: 14 | return Equals(actual, Expect); 15 | case OperatorType.NotEqual: 16 | return !Equals(actual, Expect); 17 | case OperatorType.HasFlag: 18 | return Expect.HasFlag(actual); 19 | default: 20 | throw new ArgumentOutOfRangeException(); 21 | } 22 | } 23 | 24 | public enum OperatorType 25 | { 26 | Equal, 27 | NotEqual, 28 | HasFlag, 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /Assets/Scripts/Connector/ValueComparer/EnumComparerBase.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f5d0824886be45ed953711fa6e921a52 3 | timeCreated: 1568810293 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/ValueComparer/FloatComparer.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using UnityEngine; 3 | 4 | namespace UniFlow.Connector.ValueComparer 5 | { 6 | [AddComponentMenu("UniFlow/ValueComparer/FloatComparer", (int) ConnectorType.ValueComparerFloat)] 7 | public class FloatComparer : ComparerBase 8 | { 9 | protected override bool Compare(float actual) 10 | { 11 | switch (Operator) 12 | { 13 | case OperatorType.Equal: 14 | return Mathf.Approximately(Expect, actual); 15 | case OperatorType.NotEqual: 16 | return !Mathf.Approximately(Expect, actual); 17 | case OperatorType.Greater: 18 | return actual > Expect; 19 | case OperatorType.GreaterOrEqual: 20 | return actual >= Expect; 21 | case OperatorType.Less: 22 | return actual < Expect; 23 | case OperatorType.LessOrEqual: 24 | return actual <= Expect; 25 | default: 26 | throw new ArgumentOutOfRangeException(); 27 | } 28 | } 29 | 30 | public enum OperatorType 31 | { 32 | Equal, 33 | NotEqual, 34 | Greater, 35 | GreaterOrEqual, 36 | Less, 37 | LessOrEqual, 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /Assets/Scripts/Connector/ValueComparer/FloatComparer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8d6d08a04b8f432c9fad27f8dd57c3c2 3 | timeCreated: 1568882422 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/ValueComparer/IntComparer.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using UnityEngine; 3 | 4 | namespace UniFlow.Connector.ValueComparer 5 | { 6 | [AddComponentMenu("UniFlow/ValueComparer/IntComparer", (int) ConnectorType.ValueComparerInt)] 7 | public class IntComparer : ComparerBase 8 | { 9 | protected override bool Compare(int actual) 10 | { 11 | switch (Operator) 12 | { 13 | case OperatorType.Equal: 14 | return actual == Expect; 15 | case OperatorType.NotEqual: 16 | return actual != Expect; 17 | case OperatorType.Greater: 18 | return actual > Expect; 19 | case OperatorType.GreaterOrEqual: 20 | return actual >= Expect; 21 | case OperatorType.Less: 22 | return actual < Expect; 23 | case OperatorType.LessOrEqual: 24 | return actual <= Expect; 25 | default: 26 | throw new ArgumentOutOfRangeException(); 27 | } 28 | } 29 | 30 | public enum OperatorType 31 | { 32 | Equal, 33 | NotEqual, 34 | Greater, 35 | GreaterOrEqual, 36 | Less, 37 | LessOrEqual, 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /Assets/Scripts/Connector/ValueComparer/IntComparer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 437562923d1344d3984c8db4fff1a095 3 | timeCreated: 1568810234 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/ValueComparer/ObjectComparer.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using UnityEngine; 3 | 4 | namespace UniFlow.Connector.ValueComparer 5 | { 6 | [AddComponentMenu("UniFlow/ValueComparer/ObjectComparer", (int) ConnectorType.ValueComparerObject)] 7 | public class ObjectComparer : ComparerBase 8 | { 9 | protected override bool Compare(UnityEngine.Object actual) 10 | { 11 | switch (Operator) 12 | { 13 | case OperatorType.Equal: 14 | return Equals(actual, Expect); 15 | case OperatorType.NotEqual: 16 | return !Equals(actual, Expect); 17 | case OperatorType.Null: 18 | return actual == default; 19 | case OperatorType.NotNull: 20 | return actual != default; 21 | default: 22 | throw new ArgumentOutOfRangeException(); 23 | } 24 | } 25 | 26 | public enum OperatorType 27 | { 28 | Equal, 29 | NotEqual, 30 | Null, 31 | NotNull, 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /Assets/Scripts/Connector/ValueComparer/ObjectComparer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 50fbdee7547024eeca4ccd8897acee3d 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/Connector/ValueComparer/RuntimePlatformComparer.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace UniFlow.Connector.ValueComparer 4 | { 5 | [AddComponentMenu("UniFlow/ValueComparer/RuntimePlatformComparer", (int) ConnectorType.ValueComparerRuntimePlatform)] 6 | public class RuntimePlatformComparer : EnumComparerBase 7 | { 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Assets/Scripts/Connector/ValueComparer/RuntimePlatformComparer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a7c266820be04ffb87162fa4820ab210 3 | timeCreated: 1570731972 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/ValueComparer/StringComparer.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using UnityEngine; 3 | 4 | namespace UniFlow.Connector.ValueComparer 5 | { 6 | [AddComponentMenu("UniFlow/ValueComparer/StringComparer", (int) ConnectorType.ValueComparerString)] 7 | public class StringComparer : ComparerBase 8 | { 9 | protected override bool Compare(string actual) 10 | { 11 | switch (Operator) 12 | { 13 | case OperatorType.Equal: 14 | return actual == Expect; 15 | case OperatorType.NotEqual: 16 | return actual != Expect; 17 | case OperatorType.NullOrEmpty: 18 | return string.IsNullOrEmpty(actual); 19 | case OperatorType.NotNullOrEmpty: 20 | return !string.IsNullOrEmpty(actual); 21 | case OperatorType.NullOrWhitespace: 22 | return string.IsNullOrWhiteSpace(actual); 23 | case OperatorType.NotNullOrWhitespace: 24 | return !string.IsNullOrWhiteSpace(actual); 25 | default: 26 | throw new ArgumentOutOfRangeException(); 27 | } 28 | } 29 | 30 | public enum OperatorType 31 | { 32 | Equal, 33 | NotEqual, 34 | NullOrEmpty, 35 | NotNullOrEmpty, 36 | NullOrWhitespace, 37 | NotNullOrWhitespace, 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /Assets/Scripts/Connector/ValueComparer/StringComparer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e6097591daaf4ff1a4470b88a167b073 3 | timeCreated: 1568882430 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/ValueInjector.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3284cdf11c92478186cfe6a387636323 3 | timeCreated: 1570081781 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/ValueInjector/ImageInjector.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c712524056354542a1b35e597dfcda03 3 | timeCreated: 1570028763 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/ValueInjector/InjectorBase.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using UniFlow.Utility; 3 | using UnityEngine; 4 | 5 | namespace UniFlow.Connector.ValueInjector 6 | { 7 | public abstract class InjectorBase : ConnectorBase 8 | { 9 | public abstract GameObject BaseGameObject { get; set; } 10 | 11 | public override IObservable OnConnectAsObservable() 12 | { 13 | Inject(); 14 | return ObservableFactory.ReturnMessage(this); 15 | } 16 | 17 | protected abstract void Inject(); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Assets/Scripts/Connector/ValueInjector/InjectorBase.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 69fa4534cd3444f58c7a3fe2e9f60654 3 | timeCreated: 1570084445 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/ValueInjector/RawImageInjector.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ce1f1899b5db4d36aeaeaedbebbe4f78 3 | timeCreated: 1570029109 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/ValueInjector/RectTransformInjector.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 58d576dc387f848d1a8e6bf88caf77d4 3 | timeCreated: 1571998192 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/ValueInjector/Timeline.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 55fb9b35de7d47e8baee6457911dab9a 3 | timeCreated: 1570083246 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/ValueInjector/Timeline/AnimationTrackInjector.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b6719f10f734474f97340b59bc411d13 3 | timeCreated: 1570083974 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/ValueInjector/Timeline/AudioTrackInjector.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 046be94351354c25b22ecd1f6827aa52 3 | timeCreated: 1570083967 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/ValueInjector/Timeline/ControlTrackInjector.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ba8042ef59eb434382859013aca5b8e1 3 | timeCreated: 1570083246 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/ValueInjector/TimelineInjectorBase.cs: -------------------------------------------------------------------------------- 1 | using System.Linq; 2 | using System.Text.RegularExpressions; 3 | using UnityEngine.Playables; 4 | using UnityEngine.Timeline; 5 | 6 | namespace UniFlow.Connector.ValueInjector 7 | { 8 | public abstract class TimelineInjectorBase : InjectorBase where TPlayableAsset : PlayableAsset 9 | { 10 | protected abstract PlayableDirector PlayableDirector { get; set; } 11 | protected abstract string TrackName { get; set; } 12 | protected abstract string ClipName { get; set; } 13 | 14 | protected override void Inject() 15 | { 16 | if (!(PlayableDirector.playableAsset is TimelineAsset timelineAsset)) 17 | { 18 | return; 19 | } 20 | 21 | timelineAsset 22 | .GetOutputTracks() 23 | .Where(x => x != default && (string.IsNullOrEmpty(TrackName) || Regex.IsMatch(x.name, TrackName))) 24 | .SelectMany(x => x.GetClips()) 25 | .Where(x => x != default && (string.IsNullOrEmpty(ClipName) || Regex.IsMatch(x.displayName, ClipName))) 26 | .Select(x => x.asset) 27 | .OfType() 28 | .ToList() 29 | .ForEach(Inject); 30 | } 31 | 32 | protected abstract void Inject(TPlayableAsset playableAsset); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /Assets/Scripts/Connector/ValueInjector/TimelineInjectorBase.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bfe596f8205f4a8296c4e8606087f6eb 3 | timeCreated: 1570081781 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/ValueInjector/TransformInjector.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5bdf624dc0f8461ab95051824fdf204b 3 | timeCreated: 1571998192 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/ValueProvider.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 83cf184f8e6d4a71861bc934fa056d17 3 | timeCreated: 1568893016 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/ValueProvider/BoolProvider.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace UniFlow.Connector.ValueProvider 4 | { 5 | [AddComponentMenu("UniFlow/ValueProvider/BoolProvider", (int) ConnectorType.ValueProviderBool)] 6 | public class BoolProvider : ProviderBase 7 | { 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Assets/Scripts/Connector/ValueProvider/BoolProvider.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f40afbbd3c18478284b25f52e2391fbb 3 | timeCreated: 1569827844 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/ValueProvider/ByteProvider.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace UniFlow.Connector.ValueProvider 4 | { 5 | [AddComponentMenu("UniFlow/ValueProvider/ByteProvider", (int) ConnectorType.ValueProviderByte)] 6 | public class ByteProvider : ProviderBase 7 | { 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Assets/Scripts/Connector/ValueProvider/ByteProvider.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 375058f27f4b4eeeac51d96af5188ec6 3 | timeCreated: 1569917721 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/ValueProvider/Color32Provider.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f7b8fae7b3e84afdb21533393417dc38 3 | timeCreated: 1569828529 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/ValueProvider/ColorProvider.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using UnityEngine; 3 | 4 | namespace UniFlow.Connector.ValueProvider 5 | { 6 | [AddComponentMenu("UniFlow/ValueProvider/ColorProvider", (int) ConnectorType.ValueProviderColor)] 7 | public class ColorProvider : ProviderBase, IMessageCollectable, IMessageComposable 8 | { 9 | [SerializeField] private FloatCollector rCollector = new FloatCollector(); 10 | [SerializeField] private FloatCollector gCollector = new FloatCollector(); 11 | [SerializeField] private FloatCollector bCollector = new FloatCollector(); 12 | [SerializeField] private FloatCollector aCollector = new FloatCollector(); 13 | 14 | private FloatCollector RCollector => rCollector; 15 | private FloatCollector GCollector => gCollector; 16 | private FloatCollector BCollector => bCollector; 17 | private FloatCollector ACollector => aCollector; 18 | 19 | IEnumerable IMessageCollectable.GetMessageCollectableAnnotations() => 20 | new[] 21 | { 22 | CollectableMessageAnnotationFactory.Create(RCollector, x => Value = new Color(x, Value.g, Value.b, Value.a), "R"), 23 | CollectableMessageAnnotationFactory.Create(GCollector, x => Value = new Color(Value.r, x, Value.b, Value.a), "G"), 24 | CollectableMessageAnnotationFactory.Create(BCollector, x => Value = new Color(Value.r, Value.g, x, Value.a), "B"), 25 | CollectableMessageAnnotationFactory.Create(ACollector, x => Value = new Color(Value.r, Value.g, Value.b, x), "A"), 26 | }; 27 | 28 | IEnumerable IMessageComposable.GetMessageComposableAnnotations() => 29 | new[] 30 | { 31 | ComposableMessageAnnotationFactory.Create(() => Value), 32 | }; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /Assets/Scripts/Connector/ValueProvider/ColorProvider.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0639b3698c8f436b8ccf44a4bd6e4305 3 | timeCreated: 1569828511 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/ValueProvider/CurrentRuntimePlatformProvider.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using UniFlow.Utility; 4 | using UnityEngine; 5 | 6 | namespace UniFlow.Connector.ValueProvider 7 | { 8 | [AddComponentMenu("UniFlow/ValueProvider/CurrentRuntimePlatformProvider", (int) ConnectorType.ValueProviderCurrentRuntimePlatform)] 9 | public class CurrentRuntimePlatformProvider : ConnectorBase, IMessageComposable 10 | { 11 | private const string MessageParameterKey = "Value"; 12 | 13 | private RuntimePlatform Value => Application.platform; 14 | 15 | public override IObservable OnConnectAsObservable() 16 | { 17 | return ObservableFactory.ReturnMessage(this, MessageParameterKey, Value); 18 | } 19 | 20 | IEnumerable IMessageComposable.GetMessageComposableAnnotations() => 21 | new[] 22 | { 23 | ComposableMessageAnnotationFactory.Create(() => Value, MessageParameterKey), 24 | }; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /Assets/Scripts/Connector/ValueProvider/CurrentRuntimePlatformProvider.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5aa491aa255c4965a33b16241963cf07 3 | timeCreated: 1570731798 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/ValueProvider/EnumListProviderBase.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using UniRx; 5 | 6 | namespace UniFlow.Connector.ValueProvider 7 | { 8 | public abstract class EnumListProviderBase : ConnectorBase, IMessageComposable where TEnum : Enum 9 | { 10 | public override IObservable OnConnectAsObservable() 11 | { 12 | return Enum.GetValues(typeof(TEnum)) 13 | .Cast() 14 | .Where(Filter) 15 | .ToList() 16 | .ToObservable() 17 | .AsMessageObservable(this, typeof(TEnum).Name); 18 | } 19 | 20 | protected virtual bool Filter(TEnum value) 21 | { 22 | return true; 23 | } 24 | 25 | IEnumerable IMessageComposable.GetMessageComposableAnnotations() => 26 | new[] 27 | { 28 | // Will compose parameter in OnConnectAsObservable() 29 | ComposableMessageAnnotationFactory.Create(), 30 | }; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /Assets/Scripts/Connector/ValueProvider/EnumListProviderBase.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cbf509b347434772875d74fc2b029a93 3 | timeCreated: 1571261896 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/ValueProvider/FloatProvider.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace UniFlow.Connector.ValueProvider 4 | { 5 | [AddComponentMenu("UniFlow/ValueProvider/FloatProvider", (int) ConnectorType.ValueProviderFloat)] 6 | public class FloatProvider : ProviderBase 7 | { 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Assets/Scripts/Connector/ValueProvider/FloatProvider.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c9eb534fafe24ff5be75bd0979935c75 3 | timeCreated: 1569827937 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/ValueProvider/GameObjectProvider.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace UniFlow.Connector.ValueProvider 4 | { 5 | [AddComponentMenu("UniFlow/ValueProvider/GameObjectProvider", (int) ConnectorType.ValueProviderGameObject)] 6 | public class GameObjectProvider : ProviderBase 7 | { 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Assets/Scripts/Connector/ValueProvider/GameObjectProvider.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5fa5d13e71a845a7ab44ffff33438af0 3 | timeCreated: 1569910725 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/ValueProvider/IntProvider.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace UniFlow.Connector.ValueProvider 4 | { 5 | [AddComponentMenu("UniFlow/ValueProvider/IntProvider", (int) ConnectorType.ValueProviderInt)] 6 | public class IntProvider : ProviderBase 7 | { 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Assets/Scripts/Connector/ValueProvider/IntProvider.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9f73964dfd154496ba8800ec1ac003c8 3 | timeCreated: 1569822622 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/ValueProvider/ListProviderBase.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d8956625d693492eb20c1e6c6eb07ce1 3 | timeCreated: 1570799990 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/ValueProvider/ObjectProvider.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace UniFlow.Connector.ValueProvider 4 | { 5 | [AddComponentMenu("UniFlow/ValueProvider/ObjectProvider", (int) ConnectorType.ValueProviderObject)] 6 | public class ObjectProvider : ProviderBase 7 | { 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Assets/Scripts/Connector/ValueProvider/ObjectProvider.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 421990897f1b4ef7aeba179ca09d18d8 3 | timeCreated: 1569828035 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/ValueProvider/ProviderBase.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using UniFlow.Utility; 4 | using UnityEngine; 5 | 6 | namespace UniFlow.Connector.ValueProvider 7 | { 8 | public abstract class ProviderBase : ConnectorBase, IInjectable, IMessageComposable 9 | { 10 | private const string MessageParameterKey = "Value"; 11 | 12 | [SerializeField] private TValue value = default; 13 | public TValue Value 14 | { 15 | get => value; 16 | set => this.value = value; 17 | } 18 | 19 | public override IObservable OnConnectAsObservable() 20 | { 21 | return ObservableFactory.ReturnMessage(this, MessageParameterKey, Value); 22 | } 23 | 24 | void IInjectable.Inject(TValue v) 25 | { 26 | Value = v; 27 | } 28 | 29 | IEnumerable IMessageComposable.GetMessageComposableAnnotations() => 30 | new[] 31 | { 32 | ComposableMessageAnnotationFactory.Create(() => Value, MessageParameterKey), 33 | }; 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /Assets/Scripts/Connector/ValueProvider/ProviderBase.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 95c0c457183c4c42ae0506c69581fabe 3 | timeCreated: 1568810182 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/ValueProvider/QuaternionProvider.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1c5281b90d9b43acbf7f93ad83b830a8 3 | timeCreated: 1569828300 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/ValueProvider/ScriptableObjectProvider.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace UniFlow.Connector.ValueProvider 4 | { 5 | [AddComponentMenu("UniFlow/ValueProvider/ScriptableObjectProvider", (int) ConnectorType.ValueProviderScriptableObject)] 6 | public class ScriptableObjectProvider : ProviderBase 7 | { 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Assets/Scripts/Connector/ValueProvider/ScriptableObjectProvider.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1e0a9d1bf040496a8dad552d5c1059fe 3 | timeCreated: 1569948419 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/ValueProvider/SelectorBase.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 28f9c1010f764ba3944edd2b6d342b82 3 | timeCreated: 1569303461 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/ValueProvider/StringProvider.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace UniFlow.Connector.ValueProvider 4 | { 5 | [AddComponentMenu("UniFlow/ValueProvider/StringProvider", (int) ConnectorType.ValueProviderString)] 6 | public class StringProvider : ProviderBase 7 | { 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Assets/Scripts/Connector/ValueProvider/StringProvider.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1856ef2ce1ab49259056493a0ffa28d7 3 | timeCreated: 1569827955 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/ValueProvider/Vector2IntProvider.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using UnityEngine; 3 | 4 | namespace UniFlow.Connector.ValueProvider 5 | { 6 | [AddComponentMenu("UniFlow/ValueProvider/Vector2IntProvider", (int) ConnectorType.ValueProviderVector2Int)] 7 | public class Vector2IntProvider : ProviderBase, IMessageCollectable, IMessageComposable 8 | { 9 | [SerializeField] private IntCollector xCollector = new IntCollector(); 10 | [SerializeField] private IntCollector yCollector = new IntCollector(); 11 | 12 | private IntCollector XCollector => xCollector; 13 | private IntCollector YCollector => yCollector; 14 | 15 | IEnumerable IMessageCollectable.GetMessageCollectableAnnotations() => 16 | new[] 17 | { 18 | CollectableMessageAnnotationFactory.Create(XCollector, v => Value = new Vector2Int(v, Value.y), "X"), 19 | CollectableMessageAnnotationFactory.Create(YCollector, v => Value = new Vector2Int(Value.x, v), "Y"), 20 | }; 21 | 22 | IEnumerable IMessageComposable.GetMessageComposableAnnotations() => 23 | new[] 24 | { 25 | ComposableMessageAnnotationFactory.Create(() => Value), 26 | }; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /Assets/Scripts/Connector/ValueProvider/Vector2IntProvider.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 73b7633e5fb241d09505f87c560d2117 3 | timeCreated: 1569828365 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/ValueProvider/Vector2Provider.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using UnityEngine; 3 | 4 | namespace UniFlow.Connector.ValueProvider 5 | { 6 | [AddComponentMenu("UniFlow/ValueProvider/Vector2Provider", (int) ConnectorType.ValueProviderVector2)] 7 | public class Vector2Provider : ProviderBase, IMessageCollectable, IMessageComposable 8 | { 9 | [SerializeField] private FloatCollector xCollector = new FloatCollector(); 10 | [SerializeField] private FloatCollector yCollector = new FloatCollector(); 11 | 12 | private FloatCollector XCollector => xCollector; 13 | private FloatCollector YCollector => yCollector; 14 | 15 | IEnumerable IMessageCollectable.GetMessageCollectableAnnotations() => 16 | new[] 17 | { 18 | CollectableMessageAnnotationFactory.Create(XCollector, v => Value = new Vector2(v, Value.y), "X"), 19 | CollectableMessageAnnotationFactory.Create(YCollector, v => Value = new Vector2(Value.x, v), "Y"), 20 | }; 21 | 22 | IEnumerable IMessageComposable.GetMessageComposableAnnotations() => 23 | new[] 24 | { 25 | ComposableMessageAnnotationFactory.Create(() => Value), 26 | }; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /Assets/Scripts/Connector/ValueProvider/Vector2Provider.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3cdec89c4b7845deb0657984ca4038e7 3 | timeCreated: 1569828093 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/ValueProvider/Vector3IntProvider.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using UnityEngine; 3 | 4 | namespace UniFlow.Connector.ValueProvider 5 | { 6 | [AddComponentMenu("UniFlow/ValueProvider/Vector3IntProvider", (int) ConnectorType.ValueProviderVector3Int)] 7 | public class Vector3IntProvider : ProviderBase, IMessageCollectable, IMessageComposable 8 | { 9 | [SerializeField] private IntCollector xCollector = new IntCollector(); 10 | [SerializeField] private IntCollector yCollector = new IntCollector(); 11 | [SerializeField] private IntCollector zCollector = new IntCollector(); 12 | 13 | private IntCollector XCollector => xCollector; 14 | private IntCollector YCollector => yCollector; 15 | private IntCollector ZCollector => zCollector; 16 | 17 | IEnumerable IMessageCollectable.GetMessageCollectableAnnotations() => 18 | new[] 19 | { 20 | CollectableMessageAnnotationFactory.Create(XCollector, v => Value = new Vector3Int(v, Value.y, Value.z), "X"), 21 | CollectableMessageAnnotationFactory.Create(YCollector, v => Value = new Vector3Int(Value.x, v, Value.z), "Y"), 22 | CollectableMessageAnnotationFactory.Create(ZCollector, v => Value = new Vector3Int(Value.x, Value.y, v), "Z"), 23 | }; 24 | 25 | IEnumerable IMessageComposable.GetMessageComposableAnnotations() => 26 | new[] 27 | { 28 | ComposableMessageAnnotationFactory.Create(() => Value), 29 | }; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /Assets/Scripts/Connector/ValueProvider/Vector3IntProvider.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: af13c05aadb54ce3932cb8f0622b6ecf 3 | timeCreated: 1569828386 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/ValueProvider/Vector3Provider.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using UnityEngine; 3 | 4 | namespace UniFlow.Connector.ValueProvider 5 | { 6 | [AddComponentMenu("UniFlow/ValueProvider/Vector3Provider", (int) ConnectorType.ValueProviderVector3)] 7 | public class Vector3Provider : ProviderBase, IMessageCollectable, IMessageComposable 8 | { 9 | [SerializeField] private FloatCollector xCollector = new FloatCollector(); 10 | [SerializeField] private FloatCollector yCollector = new FloatCollector(); 11 | [SerializeField] private FloatCollector zCollector = new FloatCollector(); 12 | 13 | private FloatCollector XCollector => xCollector; 14 | private FloatCollector YCollector => yCollector; 15 | private FloatCollector ZCollector => zCollector; 16 | 17 | IEnumerable IMessageCollectable.GetMessageCollectableAnnotations() => 18 | new[] 19 | { 20 | CollectableMessageAnnotationFactory.Create(XCollector, v => Value = new Vector3(v, Value.y, Value.z), "X"), 21 | CollectableMessageAnnotationFactory.Create(YCollector, v => Value = new Vector3(Value.x, v, Value.z), "Y"), 22 | CollectableMessageAnnotationFactory.Create(ZCollector, v => Value = new Vector3(Value.x, Value.y, v), "Z"), 23 | }; 24 | 25 | IEnumerable IMessageComposable.GetMessageComposableAnnotations() => 26 | new[] 27 | { 28 | ComposableMessageAnnotationFactory.Create(() => Value), 29 | }; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /Assets/Scripts/Connector/ValueProvider/Vector3Provider.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 869351b3bbde4d79b360931737e3c6cb 3 | timeCreated: 1569828247 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/ValueProvider/Vector4Provider.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7e2b547557774f59acd6942e843c1680 3 | timeCreated: 1569828269 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/ValueSelector.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 075440a1209748028e6127c67da50329 3 | timeCreated: 1571370796 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/ValueSelector/AnimationClipListSelector.cs: -------------------------------------------------------------------------------- 1 | using UniFlow.Connector.ValueProvider; 2 | using UnityEngine; 3 | 4 | namespace UniFlow.Connector.ValueSelector 5 | { 6 | [AddComponentMenu("UniFlow/ValueSelector/AnimationClipListSelector", (int) ConnectorType.AnimationClipListSelector)] 7 | public class AnimationClipListSelector : ListSelectorBase 8 | { 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Assets/Scripts/Connector/ValueSelector/AnimationClipListSelector.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 86be1ea93f254b878178e0d36c802c59 3 | timeCreated: 1571371160 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/ValueSelector/AudioClipListSelector.cs: -------------------------------------------------------------------------------- 1 | using UniFlow.Connector.ValueProvider; 2 | using UnityEngine; 3 | 4 | namespace UniFlow.Connector.ValueSelector 5 | { 6 | [AddComponentMenu("UniFlow/ValueSelector/AudioClipListSelector", (int) ConnectorType.AudioClipListSelector)] 7 | public class AudioClipListSelector : ListSelectorBase 8 | { 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Assets/Scripts/Connector/ValueSelector/AudioClipListSelector.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f4e1612d8c0647d2ab9ec211437e9ee1 3 | timeCreated: 1571370796 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/ValueSelector/ComponentListSelector.cs: -------------------------------------------------------------------------------- 1 | using UniFlow.Connector.ValueProvider; 2 | using UnityEngine; 3 | 4 | namespace UniFlow.Connector.ValueSelector 5 | { 6 | [AddComponentMenu("UniFlow/ValueSelector/ComponentListSelector", (int) ConnectorType.ComponentListSelector)] 7 | public class ComponentListSelector : ListSelectorBase 8 | { 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Assets/Scripts/Connector/ValueSelector/ComponentListSelector.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 95ec483b390d43b6b93082a90e9ebe31 3 | timeCreated: 1571371149 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/ValueSelector/GameObjectListSelector.cs: -------------------------------------------------------------------------------- 1 | using UniFlow.Connector.ValueProvider; 2 | using UnityEngine; 3 | 4 | namespace UniFlow.Connector.ValueSelector 5 | { 6 | [AddComponentMenu("UniFlow/ValueSelector/GameObjectListSelector", (int) ConnectorType.GameObjectListSelector)] 7 | public class GameObjectListSelector : ListSelectorBase 8 | { 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Assets/Scripts/Connector/ValueSelector/GameObjectListSelector.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7838fd9fc98843a1aac1da6fbccc5686 3 | timeCreated: 1571371032 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/ValueSelector/ObjectListSelector.cs: -------------------------------------------------------------------------------- 1 | using UniFlow.Connector.ValueProvider; 2 | using UnityEngine; 3 | 4 | namespace UniFlow.Connector.ValueSelector 5 | { 6 | [AddComponentMenu("UniFlow/ValueSelector/ObjectListSelector", (int) ConnectorType.ObjectListSelector)] 7 | public class ObjectListSelector : ListSelectorBase 8 | { 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Assets/Scripts/Connector/ValueSelector/ObjectListSelector.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b8d79e8b99aa43068a201c3b115fd8f6 3 | timeCreated: 1571371025 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/ValueSelector/TimelineAssetListSelector.cs: -------------------------------------------------------------------------------- 1 | using UniFlow.Connector.ValueProvider; 2 | using UnityEngine; 3 | using UnityEngine.Timeline; 4 | 5 | namespace UniFlow.Connector.ValueSelector 6 | { 7 | [AddComponentMenu("UniFlow/ValueSelector/TimelineAssetListSelector", (int) ConnectorType.TimelineAssetListSelector)] 8 | public class TimelineAssetListSelector : ListSelectorBase 9 | { 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Assets/Scripts/Connector/ValueSelector/TimelineAssetListSelector.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4aea60b243fc4a47873982fd96c4c434 3 | timeCreated: 1571371172 -------------------------------------------------------------------------------- /Assets/Scripts/Connector/ValueSelector/TransformListSelector.cs: -------------------------------------------------------------------------------- 1 | using UniFlow.Connector.ValueProvider; 2 | using UnityEngine; 3 | 4 | namespace UniFlow.Connector.ValueSelector 5 | { 6 | [AddComponentMenu("UniFlow/ValueSelector/TransformListSelector", (int) ConnectorType.TransformListSelector)] 7 | public class TransformListSelector : ListSelectorBase 8 | { 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Assets/Scripts/Connector/ValueSelector/TransformListSelector.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f3ce38b88a8744bd8e46b7855ab7aa8a 3 | timeCreated: 1571371037 -------------------------------------------------------------------------------- /Assets/Scripts/ConnectorBase.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 976f1e2bcce540708826205d03c29141 3 | timeCreated: 1565176419 -------------------------------------------------------------------------------- /Assets/Scripts/ConnectorType.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3ad9a41db2d94d5db98a428fd116ad90 3 | timeCreated: 1564481369 -------------------------------------------------------------------------------- /Assets/Scripts/Extensions.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4b38ba7b527b4b068ad32b3cd24aee9b 3 | timeCreated: 1570878558 -------------------------------------------------------------------------------- /Assets/Scripts/IConnector.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using UniRx; 4 | 5 | namespace UniFlow 6 | { 7 | public interface IConnector 8 | { 9 | IObservable OnConnectAsObservable(); 10 | void Connect(IObservable source); 11 | IList StreamedMessages { get; } 12 | #if UNITY_EDITOR 13 | ISubject OnConnectSubject { get; } 14 | #endif 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Assets/Scripts/IConnector.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0123ab5af4d0400db1271db60d22cf0a 3 | timeCreated: 1565169410 -------------------------------------------------------------------------------- /Assets/Scripts/IInjectable.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Linq; 3 | 4 | namespace UniFlow 5 | { 6 | public interface IInjectable 7 | { 8 | void Inject(TValue value); 9 | } 10 | 11 | public static class InjectableExtensions 12 | { 13 | public static void InjectAll(this IEnumerable> injectables, TValue value) 14 | { 15 | injectables.ToList().ForEach(x => x.Inject(value)); 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Assets/Scripts/IInjectable.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2c7c0dde06634a2288ea5add7d04e430 3 | timeCreated: 1571237690 -------------------------------------------------------------------------------- /Assets/Scripts/IMessageCollectable.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace UniFlow 4 | { 5 | public interface IMessageCollectable 6 | { 7 | IEnumerable GetMessageCollectableAnnotations(); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Assets/Scripts/IMessageCollectable.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 50110082724742419a1b005d85d13dcb 3 | timeCreated: 1571105816 -------------------------------------------------------------------------------- /Assets/Scripts/IMessageComposable.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace UniFlow 4 | { 5 | public interface IMessageComposable 6 | { 7 | IEnumerable GetMessageComposableAnnotations(); 8 | } 9 | 10 | public static class MessageComposableExtensions 11 | { 12 | public static Message ComposeAll(this IMessageComposable messageComposable, Message message) 13 | { 14 | foreach (var messageComposableAnnotation in messageComposable.GetMessageComposableAnnotations()) 15 | { 16 | message = messageComposableAnnotation.Compose(message); 17 | } 18 | 19 | return message; 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Assets/Scripts/IMessageComposable.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cb16a7b2aea540a98fe2692aae401516 3 | timeCreated: 1571105788 -------------------------------------------------------------------------------- /Assets/Scripts/IObservableReceiver.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using UniRx; 3 | 4 | namespace UniFlow 5 | { 6 | public interface IObservableReceiver : IReceiver 7 | { 8 | IObservable OnReceiveAsObservable(); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Assets/Scripts/IObservableReceiver.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0caf9d28748d46c89a8d899f9681d870 3 | timeCreated: 1567268582 -------------------------------------------------------------------------------- /Assets/Scripts/IReceiver.cs: -------------------------------------------------------------------------------- 1 | namespace UniFlow 2 | { 3 | public interface IReceiver : IConnector 4 | { 5 | void OnReceive(); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /Assets/Scripts/IReceiver.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 664dc0a4357a4c38838113b6c2fc8189 3 | timeCreated: 1562833952 -------------------------------------------------------------------------------- /Assets/Scripts/ISignal.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace UniFlow 4 | { 5 | public interface ISignal 6 | { 7 | } 8 | 9 | public interface ISignal : ISignal, IEquatable 10 | { 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Assets/Scripts/ISignal.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 15a0e408eae1d4aaf8a42d004565cdc0 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/IValueCollector.cs: -------------------------------------------------------------------------------- 1 | namespace UniFlow 2 | { 3 | public interface IValueCollector 4 | { 5 | IConnector SourceConnector { get; set; } 6 | IConnector TargetConnector { get; set; } 7 | string TypeString { get; set; } 8 | string ComposerKey { get; set; } 9 | string CollectorKey { get; set; } 10 | } 11 | 12 | public interface IValueCollector : IValueCollector 13 | { 14 | TValue Collect(); 15 | bool CanCollect(); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Assets/Scripts/IValueCollector.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: faab41cb299b476f9202ec2030e92562 3 | timeCreated: 1571122145 -------------------------------------------------------------------------------- /Assets/Scripts/InjectId.cs: -------------------------------------------------------------------------------- 1 | namespace UniFlow 2 | { 3 | public static class InjectId 4 | { 5 | public const string SceneNamePrefix = "SceneNamePrefix"; 6 | } 7 | } -------------------------------------------------------------------------------- /Assets/Scripts/InjectId.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 786da2bc699a4d349c8dd2a7d6362145 3 | timeCreated: 1566377588 -------------------------------------------------------------------------------- /Assets/Scripts/Installer.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6faa808c7797452186ee5f3ee2eddf8a 3 | timeCreated: 1566377768 -------------------------------------------------------------------------------- /Assets/Scripts/Installer/SceneNamePrefixInstaller.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using Zenject; 3 | 4 | namespace UniFlow.Installer 5 | { 6 | public class SceneNamePrefixInstaller : MonoInstaller 7 | { 8 | [SerializeField] private string sceneNamePrefix = default; 9 | private string SceneNamePrefix => sceneNamePrefix; 10 | 11 | public override void InstallBindings() 12 | { 13 | Container.BindInstance(SceneNamePrefix).WithId(InjectId.SceneNamePrefix).AsCached(); 14 | } 15 | } 16 | } -------------------------------------------------------------------------------- /Assets/Scripts/Installer/SceneNamePrefixInstaller.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e9e46a5f65894e82a0d111a62ba9bee3 3 | timeCreated: 1566377673 -------------------------------------------------------------------------------- /Assets/Scripts/Installer/UniFlowInstaller.cs: -------------------------------------------------------------------------------- 1 | using System.Diagnostics.CodeAnalysis; 2 | using JetBrains.Annotations; 3 | using UniFlow.Signal; 4 | using UniFlow.Utility; 5 | using UnityEngine; 6 | using Zenject; 7 | 8 | namespace UniFlow.Installer 9 | { 10 | [CreateAssetMenu(menuName = "Installers/UniFlowInstaller", fileName = "UniFlowInstaller")] 11 | public class UniFlowInstaller : ScriptableObjectInstaller 12 | { 13 | public override void InstallBindings() 14 | { 15 | Container.DeclareUniFlowSignal(); 16 | Container.DeclareUniFlowSignal(); 17 | Container.DeclareUniFlowSignal(); 18 | Container.DeclareUniFlowSignal(); 19 | Container.DeclareUniFlowSignal(); 20 | } 21 | 22 | [UsedImplicitly] 23 | [SuppressMessage("ReSharper", "ObjectCreationAsStatement")] 24 | private void AOTWorkaround() 25 | { 26 | new SignalHandler(); 27 | new SignalHandler(); 28 | new SignalHandler(); 29 | new SignalHandler(); 30 | new SignalHandler(); 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /Assets/Scripts/Installer/UniFlowInstaller.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3785a4ba4e2b4fcc81b428da2930f35d 3 | timeCreated: 1571582936 -------------------------------------------------------------------------------- /Assets/Scripts/Logger.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using UniRx; 3 | 4 | namespace UniFlow 5 | { 6 | public static class Logger 7 | { 8 | public static bool IsEnabled { get; private set; } 9 | 10 | private static ISubject ConnectorSubject { get; } = new Subject(); 11 | 12 | public static void Activate() 13 | { 14 | IsEnabled = true; 15 | } 16 | 17 | public static void Deactivate() 18 | { 19 | IsEnabled = false; 20 | } 21 | 22 | public static void Log(IConnector connector) 23 | { 24 | ConnectorSubject.OnNext(connector); 25 | } 26 | 27 | public static IObservable OnMessageAsObservable() 28 | { 29 | return ConnectorSubject; 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /Assets/Scripts/Logger.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: dc86192205524a3a9e6a7bea68f3ebb6 3 | timeCreated: 1569900372 -------------------------------------------------------------------------------- /Assets/Scripts/Message.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: be0e7af328f04a199122fce750711034 3 | timeCreated: 1570879955 -------------------------------------------------------------------------------- /Assets/Scripts/MessageAnnotation.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f5775525bf1d46a2a3ed82a1d3fde801 3 | timeCreated: 1571107856 -------------------------------------------------------------------------------- /Assets/Scripts/Receiver.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 81b04987def84653bd09df060b83bb0b 3 | timeCreated: 1565329110 -------------------------------------------------------------------------------- /Assets/Scripts/Receiver/EmptyReceiver.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace UniFlow.Receiver 4 | { 5 | [AddComponentMenu("UniFlow/Receiver/EmptyReceiver", (int) ConnectorType.Receiver)] 6 | public class EmptyReceiver : ReceiverBase 7 | { 8 | public override void OnReceive() 9 | { 10 | // Do nothing. 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Assets/Scripts/Receiver/EmptyReceiver.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ba4e35de88c0475da7f38fd9e93f119d 3 | timeCreated: 1565186257 -------------------------------------------------------------------------------- /Assets/Scripts/Receiver/LoggerReceiver.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Text; 3 | using UniRx; 4 | using UnityEngine; 5 | 6 | namespace UniFlow.Receiver 7 | { 8 | [AddComponentMenu("UniFlow/Receiver/LoggerReceiver", (int) ConnectorType.Receiver)] 9 | public class LoggerReceiver : ReceiverBase 10 | { 11 | private IList Connectors { get; } = new List(); 12 | 13 | private void Awake() 14 | { 15 | Logger.Activate(); 16 | Logger.OnMessageAsObservable().Subscribe(Connectors.Add); 17 | } 18 | 19 | public override void OnReceive() 20 | { 21 | var sb = new StringBuilder(); 22 | sb.AppendLine($"Count: {Connectors.Count}"); 23 | sb.AppendLine("Connectors:"); 24 | foreach (var connector in Connectors) 25 | { 26 | sb.AppendLine($" {connector.GetType().Name}"); 27 | } 28 | Debug.Log(sb.ToString()); 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /Assets/Scripts/Receiver/LoggerReceiver.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b50bafffc2a14308b4639d318d8ba1e8 3 | timeCreated: 1565418430 -------------------------------------------------------------------------------- /Assets/Scripts/Receiver/ObservableReceiver.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace UniFlow.Receiver 4 | { 5 | [AddComponentMenu("UniFlow/Receiver/ObservableReceiver", (int) ConnectorType.Receiver)] 6 | public class ObservableReceiver : ObservableReceiverBase 7 | { 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Assets/Scripts/Receiver/ObservableReceiver.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: feb3f126ca1a492d8b187534467def01 3 | timeCreated: 1570121105 -------------------------------------------------------------------------------- /Assets/Scripts/Receiver/ObservableReceiverBase.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using UniRx; 3 | 4 | namespace UniFlow.Receiver 5 | { 6 | public abstract class ObservableReceiverBase : ReceiverBase, IObservableReceiver 7 | { 8 | private ISubject OnReceiveSubject { get; } = new Subject(); 9 | 10 | IObservable IObservableReceiver.OnReceiveAsObservable() 11 | { 12 | return OnReceiveSubject; 13 | } 14 | 15 | public override void OnReceive() 16 | { 17 | OnReceiveSubject.OnNext(Unit.Default); 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Assets/Scripts/Receiver/ObservableReceiverBase.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: be0ec6c605f14b139257077975e4230a 3 | timeCreated: 1565873932 -------------------------------------------------------------------------------- /Assets/Scripts/ReceiverBase.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using UniFlow.Utility; 4 | 5 | namespace UniFlow 6 | { 7 | public abstract class ReceiverBase : ConnectorBase, IReceiver 8 | { 9 | protected override IEnumerable TargetConnectors { get; } = new List(); 10 | 11 | public override IObservable OnConnectAsObservable() 12 | { 13 | OnReceive(); 14 | return ObservableFactory.ReturnMessage(this); 15 | } 16 | 17 | public abstract void OnReceive(); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Assets/Scripts/ReceiverBase.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e835b4eaf15c4f8cbfcc0cd6f4720fd9 3 | timeCreated: 1562833381 -------------------------------------------------------------------------------- /Assets/Scripts/Signal.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6c2a9246861748068a2009a0126467bd 3 | timeCreated: 1570615221 -------------------------------------------------------------------------------- /Assets/Scripts/Signal/EnumSignalBase.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f868dacfe54a4feea1e01e26813b92b0 3 | timeCreated: 1571915970 -------------------------------------------------------------------------------- /Assets/Scripts/Signal/HandleEventSignal.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using JetBrains.Annotations; 3 | 4 | namespace UniFlow.Signal 5 | { 6 | [PublicAPI] 7 | public class HandleEventSignal : SignalBase 8 | { 9 | public HandleEventType HandleEventType { get; private set; } 10 | 11 | public override HandleEventType ComparableValue 12 | { 13 | get => HandleEventType; 14 | set => HandleEventType = value; 15 | } 16 | } 17 | 18 | [PublicAPI] 19 | public enum HandleEventType 20 | { 21 | Activate, 22 | Deactivate, 23 | } 24 | 25 | [Serializable] 26 | public class HandleEventTypeCollector : ValueCollectorBase 27 | { 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /Assets/Scripts/Signal/HandleEventSignal.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: dd8d05fecd0144910a4f88eca574cc51 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/Signal/MusicControlSignal.cs: -------------------------------------------------------------------------------- 1 | using UniFlow.Connector.Controller; 2 | using UnityEngine; 3 | 4 | namespace UniFlow.Signal 5 | { 6 | public class MusicControlSignal : SignalBase 7 | { 8 | public AudioControlMethod AudioControlMethod { get; private set; } 9 | public AudioClip AudioClip { get; private set; } 10 | public bool Loop { get; private set; } = true; 11 | public bool RewindSameClip { get; private set; } = false; 12 | 13 | public static MusicControlSignal Create(AudioControlMethod musicControlType, AudioClip audioClip, bool loop = true, bool rewindSameClip = false) 14 | { 15 | return new MusicControlSignal 16 | { 17 | AudioControlMethod = musicControlType, 18 | AudioClip = audioClip, 19 | Loop = loop, 20 | RewindSameClip = rewindSameClip, 21 | }; 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /Assets/Scripts/Signal/MusicControlSignal.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e771178b3cc7477a880cd769d0411f8a 3 | timeCreated: 1572429841 -------------------------------------------------------------------------------- /Assets/Scripts/Signal/MusicDuckingSignal.cs: -------------------------------------------------------------------------------- 1 | namespace UniFlow.Signal 2 | { 3 | public class MusicDuckingSignal : SignalBase 4 | { 5 | public float Volume { get; private set; } 6 | public float Duration { get; private set; } 7 | 8 | public static MusicDuckingSignal Create(float volume, float duration) 9 | { 10 | return new MusicDuckingSignal 11 | { 12 | Volume = volume, 13 | Duration = duration, 14 | }; 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Assets/Scripts/Signal/MusicDuckingSignal.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 24b1f23f31a64c96847d5a0a15f366e2 3 | timeCreated: 1572426096 -------------------------------------------------------------------------------- /Assets/Scripts/Signal/MusicPitchSignal.cs: -------------------------------------------------------------------------------- 1 | namespace UniFlow.Signal 2 | { 3 | public class MusicPitchSignal : SignalBase 4 | { 5 | public float Pitch { get; private set; } 6 | public float Duration { get; private set; } 7 | 8 | public static MusicPitchSignal Create(float volume, float duration) 9 | { 10 | return new MusicPitchSignal 11 | { 12 | Pitch = volume, 13 | Duration = duration, 14 | }; 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Assets/Scripts/Signal/MusicPitchSignal.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 308f441149124b41ac5c2a7ee568e698 3 | timeCreated: 1572509130 -------------------------------------------------------------------------------- /Assets/Scripts/Signal/ScriptableObjectSignal.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e3ce82478d9c41ccbab0985350d89b33 3 | timeCreated: 1570622491 -------------------------------------------------------------------------------- /Assets/Scripts/Signal/SignalBase.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d4ee291d70c4431d91aa379a747c35ea 3 | timeCreated: 1571583826 -------------------------------------------------------------------------------- /Assets/Scripts/Signal/StringSignal.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4a8ea613e5e647a3bcc4189364cce388 3 | timeCreated: 1570615221 -------------------------------------------------------------------------------- /Assets/Scripts/SystemTypeExtensions.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 737ed94cc1b044638a4758a91f151407 3 | timeCreated: 1569836956 -------------------------------------------------------------------------------- /Assets/Scripts/TimelineSignal.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6272980ab42249b09c1c1bba93ef2509 3 | timeCreated: 1568471721 -------------------------------------------------------------------------------- /Assets/Scripts/TimelineSignal/Begin.cs: -------------------------------------------------------------------------------- 1 | namespace UniFlow.TimelineSignal 2 | { 3 | public class Begin : SignalAssetBase 4 | { 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Assets/Scripts/TimelineSignal/Begin.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 88a7a553740d46db95f038da46f1f15a 3 | timeCreated: 1568471722 -------------------------------------------------------------------------------- /Assets/Scripts/TimelineSignal/End.cs: -------------------------------------------------------------------------------- 1 | namespace UniFlow.TimelineSignal 2 | { 3 | public class End : SignalAssetBase 4 | { 5 | } 6 | } -------------------------------------------------------------------------------- /Assets/Scripts/TimelineSignal/End.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 91f1f9f113e1414591950aad2e51469b 3 | timeCreated: 1568471737 -------------------------------------------------------------------------------- /Assets/Scripts/TimelineSignal/SignalAssetBase.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine.Timeline; 2 | 3 | namespace UniFlow.TimelineSignal 4 | { 5 | public class SignalAssetBase : SignalAsset 6 | { 7 | public bool IsTemporaryInstance { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Assets/Scripts/TimelineSignal/SignalAssetBase.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0dc41ef1fa1d4f8ca891bbab5329335f 3 | timeCreated: 1568530218 -------------------------------------------------------------------------------- /Assets/Scripts/Utility.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f4786649281c490ca2f003e7955f1867 3 | timeCreated: 1570620920 -------------------------------------------------------------------------------- /Assets/Scripts/Utility/ObservableFactory.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using UniRx; 3 | 4 | namespace UniFlow.Utility 5 | { 6 | public static class ObservableFactory 7 | { 8 | public static IObservable ReturnMessage(IConnector connector) 9 | { 10 | return Observable.Return(connector.CreateMessage()); 11 | } 12 | 13 | public static IObservable ReturnMessage(IConnector connector, string key, T parameter) 14 | { 15 | return Observable.Return(connector.CreateMessage(parameter, key)); 16 | } 17 | 18 | public static IObservable EmptyMessage() 19 | { 20 | return Observable.Empty(); 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Assets/Scripts/Utility/ObservableFactory.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 15de220706f24935a2e698029ed26043 3 | timeCreated: 1571026054 -------------------------------------------------------------------------------- /Assets/Scripts/Utility/SignalHandler.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using JetBrains.Annotations; 3 | using UniRx; 4 | using Zenject; 5 | 6 | namespace UniFlow.Utility 7 | { 8 | public interface ISignalPublisher 9 | { 10 | void Publish(TSignal signal); 11 | } 12 | 13 | public interface ISignalReceiver 14 | { 15 | IObservable OnReceiveAsObservable(); 16 | } 17 | 18 | public interface ISignalHandler : ISignalPublisher, ISignalReceiver 19 | { 20 | } 21 | 22 | [PublicAPI] 23 | public class SignalHandler : ISignalHandler 24 | { 25 | [Inject] private SignalBus SignalBus { get; } 26 | 27 | public void Publish(TSignal signal) 28 | { 29 | SignalBus.Fire(signal); 30 | } 31 | 32 | public IObservable OnReceiveAsObservable() 33 | { 34 | #if ZEN_SIGNALS_ADD_UNIRX 35 | return SignalBus.GetStream(); 36 | #else 37 | var subject = new Subject(); 38 | SignalBus.Subscribe(subject.OnNext); 39 | return subject; 40 | #endif 41 | } 42 | } 43 | 44 | public static class SignalHandlerExtensions 45 | { 46 | public static IObservable OnReceiveAsObservable(this ISignalReceiver signalReceiver, TSignal signal) 47 | { 48 | return signalReceiver.OnReceiveAsObservable().Where(x => Equals(x, signal)); 49 | } 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /Assets/Scripts/Utility/SignalHandler.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b6ee557d0ae944b48d75e41ebfe2aaaf 3 | timeCreated: 1570618810 -------------------------------------------------------------------------------- /Assets/Scripts/ValueCollectorBase.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2bad4834c1204e7485f4a3e4adbb7d25 3 | timeCreated: 1571122097 -------------------------------------------------------------------------------- /Assets/Scripts/ValueCollectors.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8810904243b34aacb59d4d05c075ba26 3 | timeCreated: 1571147303 -------------------------------------------------------------------------------- /Assets/Tests.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c0bcf768ee0004c1fbc8219e2a929257 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Tests/Runtime.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e41bd9872c0a14a1abb0cf4500c13d02 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Tests/Runtime/Animations.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 068ed358b418e4ef4be2a301b3ae0d63 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Tests/Runtime/Animations/All.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c14ba96cd42b7469988b4ca580a475df 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Tests/Runtime/Animations/All/Animator.controller.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9a52f39f838bc4ccf8b2df80b6ea18b7 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 9100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Tests/Runtime/Animations/All/TestForAnimator.anim.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e86e16e6065a04231a3850772e6ad0bc 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 7400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Tests/Runtime/Animations/All/TestForPlayableDirector.anim.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b7edd68d5e4dd4648afc387b7d2ae462 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 7400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Tests/Runtime/Animations/AnimationEvent.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: be34fb54a64d743c0a6f245f2f2a67db 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Tests/Runtime/Animations/AnimationEvent/Animator.controller.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 729a40a6433754a0d84b04ebf2961200 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 9100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Tests/Runtime/Animations/AnimationEvent/Test.anim.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 81a4216143c674216965656dad921fe6 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 7400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Tests/Runtime/Animations/AnimatorTrigger.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cab723977aab44a2c835bd9dd12186cf 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Tests/Runtime/Animations/AnimatorTrigger/Animator.controller.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8feedf2b8886d4d2bbfc8333db03cb61 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 9100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Tests/Runtime/Animations/AnimatorTrigger/Test.anim.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0b92abb1e35d24251a17a2318ab15171 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 7400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Tests/Runtime/Animations/PlayableController.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a26a5f72632654f99bb6a5d7297aad7d 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Tests/Runtime/Animations/PlayableController/Test.anim.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8724f0e6951944997b8c3aff230cd7d4 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 7400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Tests/Runtime/Animations/SimpleAnimationController.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 88b8fc193da314090bf2138f19c68560 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Tests/Runtime/Animations/SimpleAnimationController/Test.anim.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ef5cc875a54684b7abeeefd4f24107da 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 7400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Tests/Runtime/Animations/SimpleAnimationEvent.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ea8566f191ced47feae23d2217a2c7f5 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Tests/Runtime/Animations/SimpleAnimationEvent/Test.anim.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d93891a464f724b6392131e974182905 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 7400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Tests/Runtime/Animations/TimelineSignals.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 729ff60a1990b4e4e9bc20e09cc6f4ab 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Tests/Runtime/Animations/TimelineSignals/Test.anim.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e9f70ae3fefa94f368a7b1b6ad1d3363 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 7400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Tests/Runtime/Materials.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f5a8c66b3463a4351998ad21522cb047 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Tests/Runtime/Materials/All.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bfab75efb74744e01b6bd64763709b08 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Tests/Runtime/Materials/AnimationEvent.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7af1cc8ef0bfa4d2fa45bed8a5ec2e8c 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Tests/Runtime/Materials/AnimatorTrigger.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e679fcb8329f2490685ee0d1bb9bb431 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Tests/Runtime/Scenes.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8f0a1740395a24fbd9b281c9420ff872 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Tests/Runtime/Scenes/Basic.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ace025b6a22564557b8f43b9b9bfe4b9 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Tests/Runtime/Scenes/Basic/All.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8b216f8cbed384a2daac23107842e487 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Tests/Runtime/Scenes/Basic/AnimationEvent.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2f763dc0d938745ea80933c450165a99 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Tests/Runtime/Scenes/Basic/AnimatorTrigger.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d591b31731ab048b88b7cce6cb1aa3d9 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Tests/Runtime/Scenes/Basic/AudioController.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 465e02d42eb934543b04fd8441c46d93 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Tests/Runtime/Scenes/Basic/AudioEvent.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c0b9f1f0360ee43338a634bc59aad3d9 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Tests/Runtime/Scenes/Basic/CameraEvent.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0727bd128d56047c9ace09189d53c445 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Tests/Runtime/Scenes/Basic/Interval.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ac7afeeb1f8314eb9b16f588850cdda0 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Tests/Runtime/Scenes/Basic/LifecycleEvent.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ea7e6f3e808cb4c7ab400839bc0663b1 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Tests/Runtime/Scenes/Basic/PlayableController.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 498b6ead3ff304c7abad2da54b0d13e0 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Tests/Runtime/Scenes/Basic/SimpleAnimationController.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6977b8f896215433887311c3be8b846e 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Tests/Runtime/Scenes/Basic/SimpleAnimationEvent.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c4ecb70dbd61f493a8b69cfeaf14d49d 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Tests/Runtime/Scenes/Basic/TimelineSignal.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d49a62f2d8c6747b0853c23caacbbdd9 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Tests/Runtime/Scenes/Basic/Timer.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2c7a1d6bbc4f645f598e5a277f181543 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Tests/Runtime/Scenes/Basic/UIBehaviourEventTrigger.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9b00383bb15e845de98b9e907a9191a1 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Tests/Runtime/Scripts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 64859cceab9d047bc9568c48704f3293 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Tests/Runtime/Scripts/AllTest.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 008794288b244532a9c4114766babf18 3 | timeCreated: 1564041061 -------------------------------------------------------------------------------- /Assets/Tests/Runtime/Scripts/AnimationEventTest.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using NUnit.Framework; 5 | using UniFlow.Connector.Event; 6 | using UnityEngine.TestTools; 7 | 8 | namespace UniFlow.Tests.Runtime 9 | { 10 | public class AnimationEventTest : UniFlowTestBase 11 | { 12 | [UnityTest] 13 | public IEnumerator AnimationEvent() 14 | { 15 | yield return 16 | RunAssert( 17 | "AnimationEvent", 18 | AssertAnimationEvent, 19 | null, 20 | 1.1 21 | ); 22 | } 23 | 24 | private void AssertAnimationEvent(IEnumerable sentConnectors) 25 | { 26 | var connectors = sentConnectors.ToList(); 27 | Assert.AreEqual(2, connectors.Count); 28 | 29 | var connector = connectors[0] as AnimationEvent; 30 | Assert.NotNull(connector); 31 | 32 | HasAssert = true; 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /Assets/Tests/Runtime/Scripts/AnimationEventTest.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 01b285d76e1c41fd8e4389634caa99c5 3 | timeCreated: 1564040960 -------------------------------------------------------------------------------- /Assets/Tests/Runtime/Scripts/AnimatorTriggerTest.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using NUnit.Framework; 5 | using UniFlow.Connector.Controller; 6 | using UnityEngine.TestTools; 7 | 8 | namespace UniFlow.Tests.Runtime 9 | { 10 | public class AnimatorTriggerTest : UniFlowTestBase 11 | { 12 | [UnityTest] 13 | public IEnumerator AnimatorTrigger() 14 | { 15 | yield return 16 | RunAssert( 17 | "AnimatorTrigger", 18 | AssertAnimatorTrigger, 19 | null, 20 | 1.1 21 | ); 22 | } 23 | 24 | private void AssertAnimatorTrigger(IEnumerable sentConnectors) 25 | { 26 | var connectors = sentConnectors.ToList(); 27 | Assert.AreEqual(3, connectors.Count); 28 | 29 | var connector = connectors[0] as AnimatorTrigger; 30 | Assert.NotNull(connector); 31 | 32 | HasAssert = true; 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /Assets/Tests/Runtime/Scripts/AnimatorTriggerTest.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3832339a800540e3a4c9bb59224cdf8a 3 | timeCreated: 1564041591 -------------------------------------------------------------------------------- /Assets/Tests/Runtime/Scripts/AudioControllerTest.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c9d87d18b2554ed7a8793b8418aa9300 3 | timeCreated: 1565097404 -------------------------------------------------------------------------------- /Assets/Tests/Runtime/Scripts/AudioEventTest.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 767fc1c11dc94222b4cabba197e45f8e 3 | timeCreated: 1565087261 -------------------------------------------------------------------------------- /Assets/Tests/Runtime/Scripts/CameraEventTest.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a82a10e1180a4d15ad0d0445e2274045 3 | timeCreated: 1564044455 -------------------------------------------------------------------------------- /Assets/Tests/Runtime/Scripts/IntervalTest.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using NUnit.Framework; 5 | using UniFlow.Connector.Logic; 6 | using UnityEngine; 7 | using UnityEngine.TestTools; 8 | 9 | namespace UniFlow.Tests.Runtime 10 | { 11 | public class IntervalTest : UniFlowTestBase 12 | { 13 | [UnityTest] 14 | public IEnumerator Interval() 15 | { 16 | yield return 17 | RunAssert( 18 | "Interval", 19 | AssertInterval, 20 | null, 21 | 2.5 22 | ); 23 | } 24 | 25 | private void AssertInterval(IEnumerable sentConnectors) 26 | { 27 | var connectors = sentConnectors.ToList(); 28 | Assert.AreEqual(2, Object.FindObjectOfType().ReceiveCount); 29 | Assert.AreEqual(4, connectors.Count); 30 | 31 | var connector = connectors[0] as Interval; 32 | Assert.NotNull(connector); 33 | Assert.IsInstanceOf(connector.Seconds); 34 | Assert.AreEqual(1.0f, connector.Seconds); 35 | 36 | HasAssert = true; 37 | } 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /Assets/Tests/Runtime/Scripts/IntervalTest.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b449b35607f24877b03c95cdb55b641c 3 | timeCreated: 1565185406 -------------------------------------------------------------------------------- /Assets/Tests/Runtime/Scripts/LifecycleEventTest.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: daba2f4ce6264e0c9b782fc46e1cd24b 3 | timeCreated: 1564048786 -------------------------------------------------------------------------------- /Assets/Tests/Runtime/Scripts/PlayableControllerTest.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using NUnit.Framework; 5 | using UniFlow.Connector.Controller; 6 | using UnityEngine.Playables; 7 | using UnityEngine.TestTools; 8 | 9 | namespace UniFlow.Tests.Runtime 10 | { 11 | public class PlayableControllerTest : UniFlowTestBase 12 | { 13 | 14 | [UnityTest] 15 | public IEnumerator PlayableController() 16 | { 17 | yield return 18 | RunAssert( 19 | "PlayableController", 20 | AssertPlayableController, 21 | null, 22 | 1.1 23 | ); 24 | } 25 | 26 | private void AssertPlayableController(IEnumerable sentConnectors) 27 | { 28 | var connectors = sentConnectors.ToList(); 29 | Assert.AreEqual(3, connectors.Count); 30 | 31 | { 32 | var connector = connectors[0] as PlayableController; 33 | Assert.NotNull(connector); 34 | Assert.IsInstanceOf(connector.PlayableDirector); 35 | } 36 | 37 | { 38 | var connector = connectors[1] as Connector.Event.TimelineSignal; 39 | Assert.NotNull(connector); 40 | } 41 | 42 | HasAssert = true; 43 | } 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /Assets/Tests/Runtime/Scripts/PlayableControllerTest.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b573f1c5336e4d5f95353a9790f692df 3 | timeCreated: 1564041708 -------------------------------------------------------------------------------- /Assets/Tests/Runtime/Scripts/SimpleAnimationControllerTest.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f92da595f87b40438f274e8e683aea8a 3 | timeCreated: 1569998799 -------------------------------------------------------------------------------- /Assets/Tests/Runtime/Scripts/SimpleAnimationEventTest.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3d995359d6094123936437abca9a180f 3 | timeCreated: 1569998808 -------------------------------------------------------------------------------- /Assets/Tests/Runtime/Scripts/TestReceiver.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using UniRx; 3 | 4 | namespace UniFlow.Tests.Runtime 5 | { 6 | public class TestReceiver : ReceiverBase 7 | { 8 | public IList SentConnectors { get; } = new List(); 9 | public int ReceiveCount { get; private set; } 10 | 11 | private void Awake() 12 | { 13 | Logger.OnMessageAsObservable().Where(x => x != default).Subscribe(SentConnectors.Add); 14 | } 15 | 16 | public void Reset() 17 | { 18 | SentConnectors.Clear(); 19 | } 20 | 21 | public override void OnReceive() 22 | { 23 | ReceiveCount++; 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /Assets/Tests/Runtime/Scripts/TestReceiver.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 74f05c1452df4e608e510b8e0954c294 3 | timeCreated: 1562856295 -------------------------------------------------------------------------------- /Assets/Tests/Runtime/Scripts/TimelineSignalTest.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using NUnit.Framework; 5 | using UnityEngine.TestTools; 6 | 7 | namespace UniFlow.Tests.Runtime 8 | { 9 | public class TimelineSignalTest : UniFlowTestBase 10 | { 11 | [UnityTest] 12 | public IEnumerator TimelineSignal() 13 | { 14 | yield return 15 | RunAssert( 16 | "TimelineSignal", 17 | AssertTimelineSignal, 18 | null, 19 | 1.1 20 | ); 21 | } 22 | 23 | private void AssertTimelineSignal(IEnumerable sentConnectors) 24 | { 25 | var connectors = sentConnectors.ToList(); 26 | Assert.AreEqual(2, connectors.Count); 27 | 28 | var connector = connectors[0] as Connector.Event.TimelineSignal; 29 | Assert.NotNull(connector); 30 | HasAssert = true; 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /Assets/Tests/Runtime/Scripts/TimelineSignalTest.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3748c163b7f34add866b101ceb63eb88 3 | timeCreated: 1564041645 -------------------------------------------------------------------------------- /Assets/Tests/Runtime/Scripts/TimerTest.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using NUnit.Framework; 5 | using UniFlow.Connector.Logic; 6 | using UnityEngine.TestTools; 7 | 8 | namespace UniFlow.Tests.Runtime 9 | { 10 | public class TimerTest : UniFlowTestBase 11 | { 12 | [UnityTest] 13 | public IEnumerator Timer() 14 | { 15 | yield return 16 | RunAssert( 17 | "Timer", 18 | AssertTimer, 19 | null, 20 | 1.5 21 | ); 22 | } 23 | 24 | private void AssertTimer(IEnumerable sentConnectors) 25 | { 26 | var connectors = sentConnectors.ToList(); 27 | Assert.AreEqual(2, connectors.Count); 28 | 29 | var connector = connectors[0] as Timer; 30 | Assert.NotNull(connector); 31 | Assert.IsInstanceOf(connector.Seconds); 32 | Assert.AreEqual(1.0f, connector.Seconds); 33 | 34 | HasAssert = true; 35 | } 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /Assets/Tests/Runtime/Scripts/TimerTest.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: eedaf4ce62a84e92b2e74836a1804b32 3 | timeCreated: 1565185266 -------------------------------------------------------------------------------- /Assets/Tests/Runtime/Scripts/UIBehaviourEventTest.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using NUnit.Framework; 5 | using UniFlow.Connector.Event; 6 | using UniRx.Triggers; 7 | using UnityEngine; 8 | using UnityEngine.EventSystems; 9 | using UnityEngine.TestTools; 10 | using UnityEngine.UI; 11 | 12 | namespace UniFlow.Tests.Runtime 13 | { 14 | public class UIBehaviourEventTest : UniFlowTestBase 15 | { 16 | [UnityTest] 17 | public IEnumerator UIBehaviourEventTrigger() 18 | { 19 | yield return 20 | RunAssert( 21 | "UIBehaviourEventTrigger", 22 | AssertUIBehaviourEventTrigger, 23 | () => 24 | typeof(IPointerClickHandler) 25 | .GetMethod("OnPointerClick")? 26 | .Invoke(Object.FindObjectOfType(), new object[] {new PointerEventData(EventSystem.current)}) 27 | ); 28 | } 29 | 30 | private void AssertUIBehaviourEventTrigger(IEnumerable sentConnectors) 31 | { 32 | var connectors = sentConnectors.ToList(); 33 | Assert.AreEqual(2, connectors.Count); 34 | 35 | var connector = connectors[0] as UIBehaviourEventTrigger; 36 | Assert.NotNull(connector); 37 | Assert.IsInstanceOf(connector.UIBehaviour); 38 | HasAssert = true; 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /Assets/Tests/Runtime/Scripts/UIBehaviourEventTest.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8c410c184a924f9aa7d824c2836e8100 3 | timeCreated: 1564041186 -------------------------------------------------------------------------------- /Assets/Tests/Runtime/Scripts/UniFlowTestBase.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | using System.Collections.Generic; 4 | using NUnit.Framework; 5 | using UniRx; 6 | using UnityEngine.SceneManagement; 7 | using Zenject; 8 | using Object = UnityEngine.Object; 9 | 10 | namespace UniFlow.Tests.Runtime 11 | { 12 | public abstract class UniFlowTestBase : ZenjectIntegrationTestFixture 13 | { 14 | private const string ScenePath = "Tests/Runtime/Scenes/Basic/"; 15 | protected bool HasAssert { private get; set; } 16 | 17 | [SetUp] 18 | public void SetUp() 19 | { 20 | HasAssert = false; 21 | Logger.Activate(); 22 | } 23 | 24 | protected IEnumerator RunAssert(string sceneName, Action> assertCallback, Action beforeAssertCallback, double waitBeforeAssert = 0, int invokeCount = 1) 25 | { 26 | PreInstall(); 27 | yield return SceneManager.LoadSceneAsync($"{ScenePath}{sceneName}", LoadSceneMode.Additive); 28 | yield return Observable.TimerFrame(10).StartAsCoroutine(); 29 | for (var i = 0; i < invokeCount; i++) 30 | { 31 | beforeAssertCallback?.Invoke(); 32 | if (waitBeforeAssert > 0) 33 | { 34 | yield return Observable.Timer(TimeSpan.FromSeconds(waitBeforeAssert)).StartAsCoroutine(); 35 | } 36 | assertCallback(Object.FindObjectOfType().SentConnectors); 37 | Object.FindObjectOfType().Reset(); 38 | } 39 | Assert.GreaterOrEqual(Object.FindObjectOfType().ReceiveCount, invokeCount); 40 | Assert.True(HasAssert); 41 | 42 | 43 | yield return SceneManager.UnloadSceneAsync($"{ScenePath}{sceneName}"); 44 | PostInstall(); 45 | } 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /Assets/Tests/Runtime/Scripts/UniFlowTestBase.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1ede33c20a60642fdbdefe083c44bc51 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Tests/Runtime/Signals.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 245cfd2c60146479a96a590111c98184 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Tests/Runtime/Signals/PlayableController.signal: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: d6fa2d92fc1b3f34da284357edf89c3b, type: 3} 13 | m_Name: PlayableController 14 | m_EditorClassIdentifier: 15 | -------------------------------------------------------------------------------- /Assets/Tests/Runtime/Signals/PlayableController.signal.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 537bc14e25b0c4e0ba2483627c2e1423 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Tests/Runtime/Signals/TimelineSignal.signal: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: d6fa2d92fc1b3f34da284357edf89c3b, type: 3} 13 | m_Name: TimelineSignal 14 | m_EditorClassIdentifier: 15 | -------------------------------------------------------------------------------- /Assets/Tests/Runtime/Signals/TimelineSignal.signal.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a5b5b9ef4ddcc4df584d5788f661428f 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Tests/Runtime/Sounds.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 420d83ff84dee43a0b87bb983296ce04 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Tests/Runtime/Sounds/TimeReport.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/monry/UniFlow/0dec7e223c35bf63a3d921c1d88a71051508662d/Assets/Tests/Runtime/Sounds/TimeReport.mp3 -------------------------------------------------------------------------------- /Assets/Tests/Runtime/Sounds/TimeReport.mp3.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 708f8dabc8f4940689472079ec5b8fb2 3 | AudioImporter: 4 | externalObjects: {} 5 | serializedVersion: 6 6 | defaultSettings: 7 | loadType: 0 8 | sampleRateSetting: 0 9 | sampleRateOverride: 44100 10 | compressionFormat: 1 11 | quality: 1 12 | conversionMode: 0 13 | platformSettingOverrides: {} 14 | forceToMono: 0 15 | normalize: 1 16 | preloadAudioData: 1 17 | loadInBackground: 0 18 | ambisonic: 0 19 | 3D: 1 20 | userData: 21 | assetBundleName: 22 | assetBundleVariant: 23 | -------------------------------------------------------------------------------- /Assets/Tests/Runtime/Timelines.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 613d841a9c1a04440a65b248c252e672 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Tests/Runtime/Timelines/All.playable.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: de5ee4bdb3e884d849f2fed640cf45f0 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Tests/Runtime/Timelines/PlayableController.playable.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4790715975b04478696d5ee58abf7e73 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Tests/Runtime/Timelines/TimelineSignal.playable.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7895d1c3ad12c44078658e28e23973ee 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Tests/Runtime/UniFlow.Tests.Runtime.asmdef: -------------------------------------------------------------------------------- 1 | { 2 | "name": "UniFlow.Tests.Runtime", 3 | "references": [ 4 | "GUID:04f82f1ff3df44e29a1b2cce70510c34", 5 | "GUID:560b04d1a97f54a4e82edc0cbbb69285", 6 | "GUID:0d8beb7f090555447a6cf5ce9e54dbb4", 7 | "GUID:aff632302a0b84b498c3f33f7639b4d3", 8 | "GUID:27619889b8ba8c24980f49ee34dbb44a", 9 | "GUID:0acc523941302664db1f4e527237feb3" 10 | ], 11 | "includePlatforms": [], 12 | "excludePlatforms": [], 13 | "allowUnsafeCode": false, 14 | "overrideReferences": true, 15 | "precompiledReferences": [ 16 | "nunit.framework.dll", 17 | "Zenject-TestFramework-usage.dll" 18 | ], 19 | "autoReferenced": false, 20 | "defineConstraints": [ 21 | "UNITY_INCLUDE_TESTS" 22 | ], 23 | "versionDefines": [], 24 | "noEngineReferences": false 25 | } -------------------------------------------------------------------------------- /Assets/Tests/Runtime/UniFlow.Tests.Runtime.asmdef.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9241f5fbb09154bd1a597fc45cde66dd 3 | AssemblyDefinitionImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/UniFlow.asmdef: -------------------------------------------------------------------------------- 1 | { 2 | "name": "UniFlow", 3 | "references": [ 4 | "GUID:f06555f75b070af458a003d92f9efb00", 5 | "GUID:aff632302a0b84b498c3f33f7639b4d3", 6 | "GUID:560b04d1a97f54a4e82edc0cbbb69285", 7 | "GUID:f51ebe6a0ceec4240a699833d6309b23", 8 | "GUID:c571cab59b47e4b18969473a38df77be", 9 | "GUID:beb451cbe847343cda1f9c1e001b3e06", 10 | "GUID:0d8beb7f090555447a6cf5ce9e54dbb4" 11 | ], 12 | "includePlatforms": [], 13 | "excludePlatforms": [], 14 | "allowUnsafeCode": false, 15 | "overrideReferences": false, 16 | "precompiledReferences": [], 17 | "autoReferenced": true, 18 | "defineConstraints": [], 19 | "versionDefines": [] 20 | } -------------------------------------------------------------------------------- /Assets/UniFlow.asmdef.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 04f82f1ff3df44e29a1b2cce70510c34 3 | AssemblyDefinitionImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "dev.monry.uniflow", 3 | "displayName": "UniFlow", 4 | "version": "0.1.0-preview.45", 5 | "unity": "2019.2", 6 | "description": "UniFlow is a library that can connect various Unity events including user interaction without writing any C# script. Processes such as \"Tutorial that accepts user interaction\" and \"Waiting for the end of playback of Animation, Audio, Timeline, etc.\" can be implemented easily.", 7 | "author": { 8 | "name": "Tetsuya Mori", 9 | "url": "https://me.monry.dev/", 10 | "email": "monry84@gmail.com" 11 | }, 12 | "license": "MIT", 13 | "keywords": [], 14 | "category": "", 15 | "dependencies": { 16 | "com.unity.simpleanimation": "1.0.0", 17 | "com.stevevermeulen.extenject": "9.1.3", 18 | "dev.monry.unirx-observabletween": "0.1.0", 19 | "dev.upm-packages.keyeventhandler": "1.1.1" 20 | }, 21 | "repository": { 22 | "type": "git", 23 | "url": "https://github.com/monry/UniFlow" 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /Assets/package.json.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 94ade512f6ab44f6fa2fa72546b85ee4 3 | PackageManifestImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | Assets/CHANGELOG.md -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | Copyright © 2019 Tetsuya Mori 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy 5 | of this software and associated documentation files (the “Software”), to deal 6 | in the Software without restriction, including without limitation the rights 7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the Software is 9 | furnished to do so, subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included in 12 | all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /ProjectSettings/AudioManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!11 &1 4 | AudioManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Volume: 1 8 | Rolloff Scale: 1 9 | Doppler Factor: 1 10 | Default Speaker Mode: 2 11 | m_SampleRate: 0 12 | m_DSPBufferSize: 1024 13 | m_VirtualVoiceCount: 512 14 | m_RealVoiceCount: 32 15 | m_SpatializerPlugin: 16 | m_AmbisonicDecoderPlugin: 17 | m_DisableAudio: 0 18 | m_VirtualizeEffects: 1 19 | m_RequestedDSPBufferSize: 0 20 | -------------------------------------------------------------------------------- /ProjectSettings/ClusterInputManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!236 &1 4 | ClusterInputManager: 5 | m_ObjectHideFlags: 0 6 | m_Inputs: [] 7 | -------------------------------------------------------------------------------- /ProjectSettings/DynamicsManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!55 &1 4 | PhysicsManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 13 7 | m_Gravity: {x: 0, y: -9.81, z: 0} 8 | m_DefaultMaterial: {fileID: 0} 9 | m_BounceThreshold: 2 10 | m_SleepThreshold: 0.005 11 | m_DefaultContactOffset: 0.01 12 | m_DefaultSolverIterations: 6 13 | m_DefaultSolverVelocityIterations: 1 14 | m_QueriesHitBackfaces: 0 15 | m_QueriesHitTriggers: 1 16 | m_EnableAdaptiveForce: 0 17 | m_ClothInterCollisionDistance: 0 18 | m_ClothInterCollisionStiffness: 0 19 | m_ContactsGeneration: 1 20 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 21 | m_AutoSimulation: 1 22 | m_AutoSyncTransforms: 0 23 | m_ReuseCollisionCallbacks: 0 24 | m_ClothInterCollisionSettingsToggle: 0 25 | m_ClothGravity: {x: 0, y: -9.81, z: 0} 26 | m_ContactPairsMode: 0 27 | m_BroadphaseType: 0 28 | m_WorldBounds: 29 | m_Center: {x: 0, y: 0, z: 0} 30 | m_Extent: {x: 250, y: 250, z: 250} 31 | m_WorldSubdivisions: 8 32 | m_FrictionType: 0 33 | m_EnableEnhancedDeterminism: 0 34 | m_EnableUnifiedHeightmaps: 1 35 | m_DefaultMaxAngularSpeed: 50 36 | -------------------------------------------------------------------------------- /ProjectSettings/EditorSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!159 &1 4 | EditorSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 9 7 | m_ExternalVersionControlSupport: Hidden Meta Files 8 | m_SerializationMode: 2 9 | m_LineEndingsForNewScripts: 1 10 | m_DefaultBehaviorMode: 0 11 | m_PrefabRegularEnvironment: {fileID: 0} 12 | m_PrefabUIEnvironment: {fileID: 0} 13 | m_SpritePackerMode: 0 14 | m_SpritePackerPaddingPower: 1 15 | m_EtcTextureCompressorBehavior: 1 16 | m_EtcTextureFastCompressor: 1 17 | m_EtcTextureNormalCompressor: 2 18 | m_EtcTextureBestCompressor: 4 19 | m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd;asmdef;rsp;asmref 20 | m_ProjectGenerationRootNamespace: UniFlow 21 | m_CollabEditorSettings: 22 | inProgressEnabled: 1 23 | m_EnableTextureStreamingInEditMode: 1 24 | m_EnableTextureStreamingInPlayMode: 1 25 | m_AsyncShaderCompilation: 1 26 | m_EnterPlayModeOptionsEnabled: 0 27 | m_EnterPlayModeOptions: 3 28 | m_ShowLightmapResolutionOverlay: 1 29 | m_UseLegacyProbeSampleCount: 1 30 | m_AssetPipelineMode: 1 31 | m_CacheServerMode: 0 32 | m_CacheServerEndpoint: 33 | m_CacheServerNamespacePrefix: default 34 | m_CacheServerEnableDownload: 1 35 | m_CacheServerEnableUpload: 1 36 | -------------------------------------------------------------------------------- /ProjectSettings/NavMeshAreas.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!126 &1 4 | NavMeshProjectSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | areas: 8 | - name: Walkable 9 | cost: 1 10 | - name: Not Walkable 11 | cost: 1 12 | - name: Jump 13 | cost: 2 14 | - name: 15 | cost: 1 16 | - name: 17 | cost: 1 18 | - name: 19 | cost: 1 20 | - name: 21 | cost: 1 22 | - name: 23 | cost: 1 24 | - name: 25 | cost: 1 26 | - name: 27 | cost: 1 28 | - name: 29 | cost: 1 30 | - name: 31 | cost: 1 32 | - name: 33 | cost: 1 34 | - name: 35 | cost: 1 36 | - name: 37 | cost: 1 38 | - name: 39 | cost: 1 40 | - name: 41 | cost: 1 42 | - name: 43 | cost: 1 44 | - name: 45 | cost: 1 46 | - name: 47 | cost: 1 48 | - name: 49 | cost: 1 50 | - name: 51 | cost: 1 52 | - name: 53 | cost: 1 54 | - name: 55 | cost: 1 56 | - name: 57 | cost: 1 58 | - name: 59 | cost: 1 60 | - name: 61 | cost: 1 62 | - name: 63 | cost: 1 64 | - name: 65 | cost: 1 66 | - name: 67 | cost: 1 68 | - name: 69 | cost: 1 70 | - name: 71 | cost: 1 72 | m_LastAgentTypeID: -887442657 73 | m_Settings: 74 | - serializedVersion: 2 75 | agentTypeID: 0 76 | agentRadius: 0.5 77 | agentHeight: 2 78 | agentSlope: 45 79 | agentClimb: 0.75 80 | ledgeDropHeight: 0 81 | maxJumpAcrossDistance: 0 82 | minRegionArea: 2 83 | manualCellSize: 0 84 | cellSize: 0.16666667 85 | manualTileSize: 0 86 | tileSize: 256 87 | accuratePlacement: 0 88 | debug: 89 | m_Flags: 0 90 | m_SettingNames: 91 | - Humanoid 92 | -------------------------------------------------------------------------------- /ProjectSettings/PresetManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1386491679 &1 4 | PresetManager: 5 | m_ObjectHideFlags: 0 6 | m_DefaultList: [] 7 | -------------------------------------------------------------------------------- /ProjectSettings/ProjectVersion.txt: -------------------------------------------------------------------------------- 1 | m_EditorVersion: 2020.2.1f1 2 | m_EditorVersionWithRevision: 2020.2.1f1 (270dd8c3da1c) 3 | -------------------------------------------------------------------------------- /ProjectSettings/TagManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!78 &1 4 | TagManager: 5 | serializedVersion: 2 6 | tags: 7 | - asteroid 8 | - ship 9 | layers: 10 | - Default 11 | - TransparentFX 12 | - Ignore Raycast 13 | - 14 | - Water 15 | - UI 16 | - 17 | - 18 | - 19 | - 20 | - 21 | - 22 | - 23 | - 24 | - 25 | - 26 | - 27 | - 28 | - 29 | - 30 | - 31 | - 32 | - 33 | - 34 | - 35 | - 36 | - 37 | - 38 | - 39 | - 40 | - 41 | - 42 | m_SortingLayers: 43 | - name: Default 44 | uniqueID: 0 45 | locked: 0 46 | -------------------------------------------------------------------------------- /ProjectSettings/TimeManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!5 &1 4 | TimeManager: 5 | m_ObjectHideFlags: 0 6 | Fixed Timestep: 0.02 7 | Maximum Allowed Timestep: 0.33333334 8 | m_TimeScale: 1 9 | Maximum Particle Timestep: 0.03 10 | -------------------------------------------------------------------------------- /ProjectSettings/UnityConnectSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!310 &1 4 | UnityConnectSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 1 7 | m_Enabled: 0 8 | m_TestMode: 0 9 | m_EventOldUrl: https://api.uca.cloud.unity3d.com/v1/events 10 | m_EventUrl: https://cdp.cloud.unity3d.com/v1/events 11 | m_ConfigUrl: https://config.uca.cloud.unity3d.com 12 | m_TestInitMode: 0 13 | CrashReportingSettings: 14 | m_EventUrl: https://perf-events.cloud.unity3d.com 15 | m_Enabled: 0 16 | m_LogBufferSize: 10 17 | m_CaptureEditorExceptions: 1 18 | UnityPurchasingSettings: 19 | m_Enabled: 0 20 | m_TestMode: 0 21 | UnityAnalyticsSettings: 22 | m_Enabled: 0 23 | m_TestMode: 0 24 | m_InitializeOnStartup: 1 25 | UnityAdsSettings: 26 | m_Enabled: 0 27 | m_InitializeOnStartup: 1 28 | m_TestMode: 0 29 | m_IosGameId: 30 | m_AndroidGameId: 31 | m_GameIds: {} 32 | m_GameId: 33 | PerformanceReportingSettings: 34 | m_Enabled: 0 35 | -------------------------------------------------------------------------------- /ProjectSettings/VFXManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!937362698 &1 4 | VFXManager: 5 | m_ObjectHideFlags: 0 6 | m_IndirectShader: {fileID: 0} 7 | m_CopyBufferShader: {fileID: 0} 8 | m_SortShader: {fileID: 0} 9 | m_RenderPipeSettingsPath: 10 | m_FixedTimeStep: 0.016666668 11 | m_MaxDeltaTime: 0.05 12 | -------------------------------------------------------------------------------- /ProjectSettings/VersionControlSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!890905787 &1 4 | VersionControlSettings: 5 | m_ObjectHideFlags: 0 6 | m_Mode: Visible Meta Files 7 | m_CollabEditorSettings: 8 | inProgressEnabled: 1 9 | -------------------------------------------------------------------------------- /ProjectSettings/XRSettings.asset: -------------------------------------------------------------------------------- 1 | { 2 | "m_SettingKeys": [ 3 | "VR Device Disabled", 4 | "VR Device User Alert" 5 | ], 6 | "m_SettingValues": [ 7 | "False", 8 | "False" 9 | ] 10 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Assets/README.md -------------------------------------------------------------------------------- /UIElements.xsd: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /UnityEditor.Experimental.UIElements.GraphView.xsd: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /UserSettings/EditorUserSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!162 &1 4 | EditorUserSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 4 7 | m_ConfigSettings: 8 | vcSharedLogLevel: 9 | value: 0d5e400f0650 10 | flags: 0 11 | m_VCAutomaticAdd: 1 12 | m_VCDebugCom: 0 13 | m_VCDebugCmd: 0 14 | m_VCDebugOut: 0 15 | m_SemanticMergeMode: 2 16 | m_VCShowFailedCheckout: 1 17 | m_VCOverwriteFailedCheckoutAssets: 1 18 | m_VCOverlayIcons: 1 19 | m_VCAllowAsyncUpdate: 0 20 | --------------------------------------------------------------------------------