summaryrefslogtreecommitdiff
path: root/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem
diff options
context:
space:
mode:
Diffstat (limited to 'Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem')
-rw-r--r--Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/Clear.cs41
-rw-r--r--Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/Clear.cs.meta8
-rw-r--r--Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/GetDuration.cs49
-rw-r--r--Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/GetDuration.cs.meta8
-rw-r--r--Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/GetEmissionRate.cs49
-rw-r--r--Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/GetEmissionRate.cs.meta8
-rw-r--r--Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/GetEnableEmission.cs49
-rw-r--r--Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/GetEnableEmission.cs.meta8
-rw-r--r--Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/GetGravityModifier.cs47
-rw-r--r--Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/GetGravityModifier.cs.meta8
-rw-r--r--Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/GetLoop.cs49
-rw-r--r--Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/GetLoop.cs.meta8
-rw-r--r--Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/GetMaxParticles.cs49
-rw-r--r--Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/GetMaxParticles.cs.meta8
-rw-r--r--Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/GetParticleCount.cs45
-rw-r--r--Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/GetParticleCount.cs.meta8
-rw-r--r--Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/GetPlaybackSpeed.cs50
-rw-r--r--Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/GetPlaybackSpeed.cs.meta8
-rw-r--r--Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/GetTime.cs45
-rw-r--r--Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/GetTime.cs.meta8
-rw-r--r--Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/IsAlive.cs39
-rw-r--r--Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/IsAlive.cs.meta8
-rw-r--r--Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/IsPaused.cs39
-rw-r--r--Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/IsPaused.cs.meta8
-rw-r--r--Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/IsPlaying.cs39
-rw-r--r--Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/IsPlaying.cs.meta8
-rw-r--r--Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/IsStopped.cs39
-rw-r--r--Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/IsStopped.cs.meta8
-rw-r--r--Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/Pause.cs41
-rw-r--r--Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/Pause.cs.meta8
-rw-r--r--Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/Play.cs41
-rw-r--r--Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/Play.cs.meta8
-rw-r--r--Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetEmissionRate.cs48
-rw-r--r--Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetEmissionRate.cs.meta8
-rw-r--r--Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetEnableEmission.cs49
-rw-r--r--Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetEnableEmission.cs.meta8
-rw-r--r--Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetGravityModifier.cs46
-rw-r--r--Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetGravityModifier.cs.meta8
-rw-r--r--Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetLoop.cs49
-rw-r--r--Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetLoop.cs.meta8
-rw-r--r--Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetMaxParticles.cs48
-rw-r--r--Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetMaxParticles.cs.meta8
-rw-r--r--Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetPlaybackSpeed.cs49
-rw-r--r--Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetPlaybackSpeed.cs.meta8
-rw-r--r--Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetStartColor.cs49
-rw-r--r--Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetStartColor.cs.meta8
-rw-r--r--Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetStartDelay.cs49
-rw-r--r--Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetStartDelay.cs.meta8
-rw-r--r--Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetStartLifetime.cs49
-rw-r--r--Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetStartLifetime.cs.meta8
-rw-r--r--Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetStartRotation.cs49
-rw-r--r--Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetStartRotation.cs.meta8
-rw-r--r--Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetStartSize.cs49
-rw-r--r--Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetStartSize.cs.meta8
-rw-r--r--Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetStartSpeed.cs49
-rw-r--r--Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetStartSpeed.cs.meta8
-rw-r--r--Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetTime.cs44
-rw-r--r--Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetTime.cs.meta8
-rw-r--r--Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/Simulate.cs44
-rw-r--r--Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/Simulate.cs.meta8
-rw-r--r--Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/Stop.cs41
-rw-r--r--Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/Stop.cs.meta8
62 files changed, 1671 insertions, 0 deletions
diff --git a/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/Clear.cs b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/Clear.cs
new file mode 100644
index 00000000..38988c82
--- /dev/null
+++ b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/Clear.cs
@@ -0,0 +1,41 @@
+using UnityEngine;
+
+namespace BehaviorDesigner.Runtime.Tasks.Basic.UnityParticleSystem
+{
+ [TaskCategory("Basic/ParticleSystem")]
+ [TaskDescription("Clear the Particle System.")]
+ public class Clear : Action
+ {
+ [Tooltip("The GameObject that the task operates on. If null the task GameObject is used.")]
+ public SharedGameObject targetGameObject;
+
+ private ParticleSystem particleSystem;
+ private GameObject prevGameObject;
+
+ public override void OnStart()
+ {
+ var currentGameObject = GetDefaultGameObject(targetGameObject.Value);
+ if (currentGameObject != prevGameObject) {
+ particleSystem = currentGameObject.GetComponent<ParticleSystem>();
+ prevGameObject = currentGameObject;
+ }
+ }
+
+ public override TaskStatus OnUpdate()
+ {
+ if (particleSystem == null) {
+ Debug.LogWarning("ParticleSystem is null");
+ return TaskStatus.Failure;
+ }
+
+ particleSystem.Clear();
+
+ return TaskStatus.Success;
+ }
+
+ public override void OnReset()
+ {
+ targetGameObject = null;
+ }
+ }
+} \ No newline at end of file
diff --git a/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/Clear.cs.meta b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/Clear.cs.meta
new file mode 100644
index 00000000..63db0e0c
--- /dev/null
+++ b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/Clear.cs.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: de273e542591d5946a8728190438ae27
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
diff --git a/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/GetDuration.cs b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/GetDuration.cs
new file mode 100644
index 00000000..4ea0f3a3
--- /dev/null
+++ b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/GetDuration.cs
@@ -0,0 +1,49 @@
+using UnityEngine;
+
+namespace BehaviorDesigner.Runtime.Tasks.Basic.UnityParticleSystem
+{
+ [TaskCategory("Basic/ParticleSystem")]
+ [TaskDescription("Stores the duration of the Particle System.")]
+ public class GetDuration : Action
+ {
+ [Tooltip("The GameObject that the task operates on. If null the task GameObject is used.")]
+ public SharedGameObject targetGameObject;
+ [Tooltip("The duration of the ParticleSystem")]
+ [RequiredField]
+ public SharedFloat storeResult;
+
+ private ParticleSystem particleSystem;
+ private GameObject prevGameObject;
+
+ public override void OnStart()
+ {
+ var currentGameObject = GetDefaultGameObject(targetGameObject.Value);
+ if (currentGameObject != prevGameObject) {
+ particleSystem = currentGameObject.GetComponent<ParticleSystem>();
+ prevGameObject = currentGameObject;
+ }
+ }
+
+ public override TaskStatus OnUpdate()
+ {
+ if (particleSystem == null) {
+ Debug.LogWarning("ParticleSystem is null");
+ return TaskStatus.Failure;
+ }
+
+#if UNITY_5_1 || UNITY_5_2 || UNITY_5_3 || UNITY_5_4
+ storeResult.Value = particleSystem.duration;
+#else
+ storeResult.Value = particleSystem.main.duration;
+#endif
+
+ return TaskStatus.Success;
+ }
+
+ public override void OnReset()
+ {
+ targetGameObject = null;
+ storeResult = 0;
+ }
+ }
+} \ No newline at end of file
diff --git a/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/GetDuration.cs.meta b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/GetDuration.cs.meta
new file mode 100644
index 00000000..f41e7cee
--- /dev/null
+++ b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/GetDuration.cs.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 02a4d610e82f1854c87701c4d51957fb
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
diff --git a/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/GetEmissionRate.cs b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/GetEmissionRate.cs
new file mode 100644
index 00000000..740466e5
--- /dev/null
+++ b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/GetEmissionRate.cs
@@ -0,0 +1,49 @@
+using UnityEngine;
+
+namespace BehaviorDesigner.Runtime.Tasks.Basic.UnityParticleSystem
+{
+ [TaskCategory("Basic/ParticleSystem")]
+ [TaskDescription("Stores the emission rate of the Particle System.")]
+ public class GetEmissionRate : Action
+ {
+ [Tooltip("The GameObject that the task operates on. If null the task GameObject is used.")]
+ public SharedGameObject targetGameObject;
+ [Tooltip("The emission rate of the ParticleSystem")]
+ [RequiredField]
+ public SharedFloat storeResult;
+
+ private ParticleSystem particleSystem;
+ private GameObject prevGameObject;
+
+ public override void OnStart()
+ {
+ var currentGameObject = GetDefaultGameObject(targetGameObject.Value);
+ if (currentGameObject != prevGameObject) {
+ particleSystem = currentGameObject.GetComponent<ParticleSystem>();
+ prevGameObject = currentGameObject;
+ }
+ }
+
+ public override TaskStatus OnUpdate()
+ {
+ if (particleSystem == null) {
+ Debug.LogWarning("ParticleSystem is null");
+ return TaskStatus.Failure;
+ }
+
+#if !(UNITY_5_1 || UNITY_5_2)
+ Debug.Log("Warning: GetEmissionRate is not used in Unity 5.3 or later.");
+#else
+ storeResult.Value = particleSystem.emissionRate;
+#endif
+
+ return TaskStatus.Success;
+ }
+
+ public override void OnReset()
+ {
+ targetGameObject = null;
+ storeResult = 0;
+ }
+ }
+} \ No newline at end of file
diff --git a/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/GetEmissionRate.cs.meta b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/GetEmissionRate.cs.meta
new file mode 100644
index 00000000..1658d847
--- /dev/null
+++ b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/GetEmissionRate.cs.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 3adb98115d27ec64da9b5f56391570be
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
diff --git a/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/GetEnableEmission.cs b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/GetEnableEmission.cs
new file mode 100644
index 00000000..2b6b57d2
--- /dev/null
+++ b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/GetEnableEmission.cs
@@ -0,0 +1,49 @@
+using UnityEngine;
+
+namespace BehaviorDesigner.Runtime.Tasks.Basic.UnityParticleSystem
+{
+ [TaskCategory("Basic/ParticleSystem")]
+ [TaskDescription("Stores if the Particle System is emitting particles.")]
+ public class GetEnableEmission : Action
+ {
+ [Tooltip("The GameObject that the task operates on. If null the task GameObject is used.")]
+ public SharedGameObject targetGameObject;
+ [Tooltip("Is the Particle System emitting particles?")]
+ [RequiredField]
+ public SharedBool storeResult;
+
+ private ParticleSystem particleSystem;
+ private GameObject prevGameObject;
+
+ public override void OnStart()
+ {
+ var currentGameObject = GetDefaultGameObject(targetGameObject.Value);
+ if (currentGameObject != prevGameObject) {
+ particleSystem = currentGameObject.GetComponent<ParticleSystem>();
+ prevGameObject = currentGameObject;
+ }
+ }
+
+ public override TaskStatus OnUpdate()
+ {
+ if (particleSystem == null) {
+ Debug.LogWarning("ParticleSystem is null");
+ return TaskStatus.Failure;
+ }
+
+#if !(UNITY_5_1 || UNITY_5_2)
+ storeResult.Value = particleSystem.emission.enabled;
+#else
+ storeResult.Value = particleSystem.enableEmission;
+#endif
+
+ return TaskStatus.Success;
+ }
+
+ public override void OnReset()
+ {
+ targetGameObject = null;
+ storeResult = false;
+ }
+ }
+} \ No newline at end of file
diff --git a/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/GetEnableEmission.cs.meta b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/GetEnableEmission.cs.meta
new file mode 100644
index 00000000..e894a6e4
--- /dev/null
+++ b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/GetEnableEmission.cs.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 81dc1a241a2c872409a7919742df7581
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
diff --git a/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/GetGravityModifier.cs b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/GetGravityModifier.cs
new file mode 100644
index 00000000..b5a97797
--- /dev/null
+++ b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/GetGravityModifier.cs
@@ -0,0 +1,47 @@
+#if UNITY_5_1 || UNITY_5_2 || UNITY_5_3 || UNITY_5_4
+using UnityEngine;
+
+namespace BehaviorDesigner.Runtime.Tasks.Basic.UnityParticleSystem
+{
+ [TaskCategory("Basic/ParticleSystem")]
+ [TaskDescription("Stores the gravity modifier of the Particle System.")]
+ public class GetGravityModifier : Action
+ {
+ [Tooltip("The GameObject that the task operates on. If null the task GameObject is used.")]
+ public SharedGameObject targetGameObject;
+ [Tooltip("The gravity modifier of the ParticleSystem")]
+ [RequiredField]
+ public SharedFloat storeResult;
+
+ private ParticleSystem particleSystem;
+ private GameObject prevGameObject;
+
+ public override void OnStart()
+ {
+ var currentGameObject = GetDefaultGameObject(targetGameObject.Value);
+ if (currentGameObject != prevGameObject) {
+ particleSystem = currentGameObject.GetComponent<ParticleSystem>();
+ prevGameObject = currentGameObject;
+ }
+ }
+
+ public override TaskStatus OnUpdate()
+ {
+ if (particleSystem == null) {
+ Debug.LogWarning("ParticleSystem is null");
+ return TaskStatus.Failure;
+ }
+
+ storeResult.Value = particleSystem.duration;
+
+ return TaskStatus.Success;
+ }
+
+ public override void OnReset()
+ {
+ targetGameObject = null;
+ storeResult = 0;
+ }
+ }
+}
+#endif \ No newline at end of file
diff --git a/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/GetGravityModifier.cs.meta b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/GetGravityModifier.cs.meta
new file mode 100644
index 00000000..3412f534
--- /dev/null
+++ b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/GetGravityModifier.cs.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 7001d2ab41ef4e64190afc7f9bce1876
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
diff --git a/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/GetLoop.cs b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/GetLoop.cs
new file mode 100644
index 00000000..5ee3b1de
--- /dev/null
+++ b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/GetLoop.cs
@@ -0,0 +1,49 @@
+using UnityEngine;
+
+namespace BehaviorDesigner.Runtime.Tasks.Basic.UnityParticleSystem
+{
+ [TaskCategory("Basic/ParticleSystem")]
+ [TaskDescription("Stores if the Particle System should loop.")]
+ public class GetLoop : Action
+ {
+ [Tooltip("The GameObject that the task operates on. If null the task GameObject is used.")]
+ public SharedGameObject targetGameObject;
+ [Tooltip("Should the ParticleSystem loop?")]
+ [RequiredField]
+ public SharedBool storeResult;
+
+ private ParticleSystem particleSystem;
+ private GameObject prevGameObject;
+
+ public override void OnStart()
+ {
+ var currentGameObject = GetDefaultGameObject(targetGameObject.Value);
+ if (currentGameObject != prevGameObject) {
+ particleSystem = currentGameObject.GetComponent<ParticleSystem>();
+ prevGameObject = currentGameObject;
+ }
+ }
+
+ public override TaskStatus OnUpdate()
+ {
+ if (particleSystem == null) {
+ Debug.LogWarning("ParticleSystem is null");
+ return TaskStatus.Failure;
+ }
+
+#if UNITY_5_1 || UNITY_5_2 || UNITY_5_3 || UNITY_5_4
+ storeResult.Value = particleSystem.loop;
+#else
+ storeResult.Value = particleSystem.main.loop;
+#endif
+
+ return TaskStatus.Success;
+ }
+
+ public override void OnReset()
+ {
+ targetGameObject = null;
+ storeResult = false;
+ }
+ }
+}
diff --git a/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/GetLoop.cs.meta b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/GetLoop.cs.meta
new file mode 100644
index 00000000..bfa703a0
--- /dev/null
+++ b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/GetLoop.cs.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 82f4ee8cf50887a4488fe6d0da18afc0
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
diff --git a/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/GetMaxParticles.cs b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/GetMaxParticles.cs
new file mode 100644
index 00000000..c53bbddd
--- /dev/null
+++ b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/GetMaxParticles.cs
@@ -0,0 +1,49 @@
+using UnityEngine;
+
+namespace BehaviorDesigner.Runtime.Tasks.Basic.UnityParticleSystem
+{
+ [TaskCategory("Basic/ParticleSystem")]
+ [TaskDescription("Stores the max particles of the Particle System.")]
+ public class GetMaxParticles : Action
+ {
+ [Tooltip("The GameObject that the task operates on. If null the task GameObject is used.")]
+ public SharedGameObject targetGameObject;
+ [Tooltip("The max particles of the ParticleSystem")]
+ [RequiredField]
+ public SharedFloat storeResult;
+
+ private ParticleSystem particleSystem;
+ private GameObject prevGameObject;
+
+ public override void OnStart()
+ {
+ var currentGameObject = GetDefaultGameObject(targetGameObject.Value);
+ if (currentGameObject != prevGameObject) {
+ particleSystem = currentGameObject.GetComponent<ParticleSystem>();
+ prevGameObject = currentGameObject;
+ }
+ }
+
+ public override TaskStatus OnUpdate()
+ {
+ if (particleSystem == null) {
+ Debug.LogWarning("ParticleSystem is null");
+ return TaskStatus.Failure;
+ }
+
+#if UNITY_5_1 || UNITY_5_2 || UNITY_5_3 || UNITY_5_4
+ storeResult.Value = particleSystem.maxParticles;
+#else
+ storeResult.Value = particleSystem.main.maxParticles;
+#endif
+
+ return TaskStatus.Success;
+ }
+
+ public override void OnReset()
+ {
+ targetGameObject = null;
+ storeResult = 0;
+ }
+ }
+}
diff --git a/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/GetMaxParticles.cs.meta b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/GetMaxParticles.cs.meta
new file mode 100644
index 00000000..8e026028
--- /dev/null
+++ b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/GetMaxParticles.cs.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 429771af65df81c49aaf4b34630473fe
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
diff --git a/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/GetParticleCount.cs b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/GetParticleCount.cs
new file mode 100644
index 00000000..06c4fe96
--- /dev/null
+++ b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/GetParticleCount.cs
@@ -0,0 +1,45 @@
+using UnityEngine;
+
+namespace BehaviorDesigner.Runtime.Tasks.Basic.UnityParticleSystem
+{
+ [TaskCategory("Basic/ParticleSystem")]
+ [TaskDescription("Stores the particle count of the Particle System.")]
+ public class GetParticleCount : Action
+ {
+ [Tooltip("The GameObject that the task operates on. If null the task GameObject is used.")]
+ public SharedGameObject targetGameObject;
+ [Tooltip("The particle count of the ParticleSystem")]
+ [RequiredField]
+ public SharedFloat storeResult;
+
+ private ParticleSystem particleSystem;
+ private GameObject prevGameObject;
+
+ public override void OnStart()
+ {
+ var currentGameObject = GetDefaultGameObject(targetGameObject.Value);
+ if (currentGameObject != prevGameObject) {
+ particleSystem = currentGameObject.GetComponent<ParticleSystem>();
+ prevGameObject = currentGameObject;
+ }
+ }
+
+ public override TaskStatus OnUpdate()
+ {
+ if (particleSystem == null) {
+ Debug.LogWarning("ParticleSystem is null");
+ return TaskStatus.Failure;
+ }
+
+ storeResult.Value = particleSystem.particleCount;
+
+ return TaskStatus.Success;
+ }
+
+ public override void OnReset()
+ {
+ targetGameObject = null;
+ storeResult = 0;
+ }
+ }
+} \ No newline at end of file
diff --git a/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/GetParticleCount.cs.meta b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/GetParticleCount.cs.meta
new file mode 100644
index 00000000..c1cfbc05
--- /dev/null
+++ b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/GetParticleCount.cs.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: f32e2ff9de4ff7b47a256ac3b51123c6
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
diff --git a/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/GetPlaybackSpeed.cs b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/GetPlaybackSpeed.cs
new file mode 100644
index 00000000..e23aac68
--- /dev/null
+++ b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/GetPlaybackSpeed.cs
@@ -0,0 +1,50 @@
+using UnityEngine;
+
+namespace BehaviorDesigner.Runtime.Tasks.Basic.UnityParticleSystem
+{
+ [TaskCategory("Basic/ParticleSystem")]
+ [TaskDescription("Stores the playback speed of the Particle System.")]
+ public class GetPlaybackSpeed : Action
+ {
+ [Tooltip("The GameObject that the task operates on. If null the task GameObject is used.")]
+ public SharedGameObject targetGameObject;
+ [Tooltip("The playback speed of the ParticleSystem")]
+ [RequiredField]
+ public SharedFloat storeResult;
+
+ private ParticleSystem particleSystem;
+ private GameObject prevGameObject;
+
+ public override void OnStart()
+ {
+ var currentGameObject = GetDefaultGameObject(targetGameObject.Value);
+ if (currentGameObject != prevGameObject) {
+ particleSystem = currentGameObject.GetComponent<ParticleSystem>();
+ prevGameObject = currentGameObject;
+ }
+ }
+
+ public override TaskStatus OnUpdate()
+ {
+ if (particleSystem == null) {
+ Debug.LogWarning("ParticleSystem is null");
+ return TaskStatus.Failure;
+ }
+
+#if UNITY_5_1 || UNITY_5_2 || UNITY_5_3 || UNITY_5_4
+ storeResult.Value = particleSystem.playbackSpeed;
+#else
+ ParticleSystem.MainModule mainParticleSystem = particleSystem.main;
+ storeResult.Value = mainParticleSystem.simulationSpeed;
+#endif
+
+ return TaskStatus.Success;
+ }
+
+ public override void OnReset()
+ {
+ targetGameObject = null;
+ storeResult = 0;
+ }
+ }
+} \ No newline at end of file
diff --git a/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/GetPlaybackSpeed.cs.meta b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/GetPlaybackSpeed.cs.meta
new file mode 100644
index 00000000..12e27063
--- /dev/null
+++ b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/GetPlaybackSpeed.cs.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: f8f29f170ac706b498e7c933136d8036
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
diff --git a/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/GetTime.cs b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/GetTime.cs
new file mode 100644
index 00000000..315474d5
--- /dev/null
+++ b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/GetTime.cs
@@ -0,0 +1,45 @@
+using UnityEngine;
+
+namespace BehaviorDesigner.Runtime.Tasks.Basic.UnityParticleSystem
+{
+ [TaskCategory("Basic/ParticleSystem")]
+ [TaskDescription("Stores the time of the Particle System.")]
+ public class GetTime : Action
+ {
+ [Tooltip("The GameObject that the task operates on. If null the task GameObject is used.")]
+ public SharedGameObject targetGameObject;
+ [Tooltip("The time of the ParticleSystem")]
+ [RequiredField]
+ public SharedFloat storeResult;
+
+ private ParticleSystem particleSystem;
+ private GameObject prevGameObject;
+
+ public override void OnStart()
+ {
+ var currentGameObject = GetDefaultGameObject(targetGameObject.Value);
+ if (currentGameObject != prevGameObject) {
+ particleSystem = currentGameObject.GetComponent<ParticleSystem>();
+ prevGameObject = currentGameObject;
+ }
+ }
+
+ public override TaskStatus OnUpdate()
+ {
+ if (particleSystem == null) {
+ Debug.LogWarning("ParticleSystem is null");
+ return TaskStatus.Failure;
+ }
+
+ storeResult.Value = particleSystem.time;
+
+ return TaskStatus.Success;
+ }
+
+ public override void OnReset()
+ {
+ targetGameObject = null;
+ storeResult = 0;
+ }
+ }
+} \ No newline at end of file
diff --git a/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/GetTime.cs.meta b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/GetTime.cs.meta
new file mode 100644
index 00000000..0cd924dc
--- /dev/null
+++ b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/GetTime.cs.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 9b15c7efbf98f7649adf8dd4474b0579
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
diff --git a/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/IsAlive.cs b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/IsAlive.cs
new file mode 100644
index 00000000..49f56b98
--- /dev/null
+++ b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/IsAlive.cs
@@ -0,0 +1,39 @@
+using UnityEngine;
+
+namespace BehaviorDesigner.Runtime.Tasks.Basic.UnityParticleSystem
+{
+ [TaskCategory("Basic/ParticleSystem")]
+ [TaskDescription("Is the Particle System alive?")]
+ public class IsAlive : Conditional
+ {
+ [Tooltip("The GameObject that the task operates on. If null the task GameObject is used.")]
+ public SharedGameObject targetGameObject;
+
+ private ParticleSystem particleSystem;
+ private GameObject prevGameObject;
+
+ public override void OnStart()
+ {
+ var currentGameObject = GetDefaultGameObject(targetGameObject.Value);
+ if (currentGameObject != prevGameObject) {
+ particleSystem = currentGameObject.GetComponent<ParticleSystem>();
+ prevGameObject = currentGameObject;
+ }
+ }
+
+ public override TaskStatus OnUpdate()
+ {
+ if (particleSystem == null) {
+ Debug.LogWarning("ParticleSystem is null");
+ return TaskStatus.Failure;
+ }
+
+ return particleSystem.IsAlive() ? TaskStatus.Success : TaskStatus.Failure;
+ }
+
+ public override void OnReset()
+ {
+ targetGameObject = null;
+ }
+ }
+} \ No newline at end of file
diff --git a/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/IsAlive.cs.meta b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/IsAlive.cs.meta
new file mode 100644
index 00000000..aa294a13
--- /dev/null
+++ b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/IsAlive.cs.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 3d554784e9a9fa040a2446402ba3f10e
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
diff --git a/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/IsPaused.cs b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/IsPaused.cs
new file mode 100644
index 00000000..d0180464
--- /dev/null
+++ b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/IsPaused.cs
@@ -0,0 +1,39 @@
+using UnityEngine;
+
+namespace BehaviorDesigner.Runtime.Tasks.Basic.UnityParticleSystem
+{
+ [TaskCategory("Basic/ParticleSystem")]
+ [TaskDescription("Is the Particle System paused?")]
+ public class IsPaused : Conditional
+ {
+ [Tooltip("The GameObject that the task operates on. If null the task GameObject is used.")]
+ public SharedGameObject targetGameObject;
+
+ private ParticleSystem particleSystem;
+ private GameObject prevGameObject;
+
+ public override void OnStart()
+ {
+ var currentGameObject = GetDefaultGameObject(targetGameObject.Value);
+ if (currentGameObject != prevGameObject) {
+ particleSystem = currentGameObject.GetComponent<ParticleSystem>();
+ prevGameObject = currentGameObject;
+ }
+ }
+
+ public override TaskStatus OnUpdate()
+ {
+ if (particleSystem == null) {
+ Debug.LogWarning("ParticleSystem is null");
+ return TaskStatus.Failure;
+ }
+
+ return particleSystem.isPaused ? TaskStatus.Success : TaskStatus.Failure;
+ }
+
+ public override void OnReset()
+ {
+ targetGameObject = null;
+ }
+ }
+} \ No newline at end of file
diff --git a/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/IsPaused.cs.meta b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/IsPaused.cs.meta
new file mode 100644
index 00000000..00a5c85f
--- /dev/null
+++ b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/IsPaused.cs.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: e4e9ab132f20dfa4095b3c90303ebf74
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
diff --git a/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/IsPlaying.cs b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/IsPlaying.cs
new file mode 100644
index 00000000..ee9f9472
--- /dev/null
+++ b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/IsPlaying.cs
@@ -0,0 +1,39 @@
+using UnityEngine;
+
+namespace BehaviorDesigner.Runtime.Tasks.Basic.UnityParticleSystem
+{
+ [TaskCategory("Basic/ParticleSystem")]
+ [TaskDescription("Is the Particle System playing?")]
+ public class IsPlaying : Conditional
+ {
+ [Tooltip("The GameObject that the task operates on. If null the task GameObject is used.")]
+ public SharedGameObject targetGameObject;
+
+ private ParticleSystem particleSystem;
+ private GameObject prevGameObject;
+
+ public override void OnStart()
+ {
+ var currentGameObject = GetDefaultGameObject(targetGameObject.Value);
+ if (currentGameObject != prevGameObject) {
+ particleSystem = currentGameObject.GetComponent<ParticleSystem>();
+ prevGameObject = currentGameObject;
+ }
+ }
+
+ public override TaskStatus OnUpdate()
+ {
+ if (particleSystem == null) {
+ Debug.LogWarning("ParticleSystem is null");
+ return TaskStatus.Failure;
+ }
+
+ return particleSystem.isPlaying ? TaskStatus.Success : TaskStatus.Failure;
+ }
+
+ public override void OnReset()
+ {
+ targetGameObject = null;
+ }
+ }
+} \ No newline at end of file
diff --git a/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/IsPlaying.cs.meta b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/IsPlaying.cs.meta
new file mode 100644
index 00000000..d3f13e4d
--- /dev/null
+++ b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/IsPlaying.cs.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 654b51e99f64bfb489e12866a569f00e
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
diff --git a/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/IsStopped.cs b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/IsStopped.cs
new file mode 100644
index 00000000..39642507
--- /dev/null
+++ b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/IsStopped.cs
@@ -0,0 +1,39 @@
+using UnityEngine;
+
+namespace BehaviorDesigner.Runtime.Tasks.Basic.UnityParticleSystem
+{
+ [TaskCategory("Basic/ParticleSystem")]
+ [TaskDescription("Is the Particle System stopped?")]
+ public class IsStopped : Conditional
+ {
+ [Tooltip("The GameObject that the task operates on. If null the task GameObject is used.")]
+ public SharedGameObject targetGameObject;
+
+ private ParticleSystem particleSystem;
+ private GameObject prevGameObject;
+
+ public override void OnStart()
+ {
+ var currentGameObject = GetDefaultGameObject(targetGameObject.Value);
+ if (currentGameObject != prevGameObject) {
+ particleSystem = currentGameObject.GetComponent<ParticleSystem>();
+ prevGameObject = currentGameObject;
+ }
+ }
+
+ public override TaskStatus OnUpdate()
+ {
+ if (particleSystem == null) {
+ Debug.LogWarning("ParticleSystem is null");
+ return TaskStatus.Failure;
+ }
+
+ return particleSystem.isStopped ? TaskStatus.Success : TaskStatus.Failure;
+ }
+
+ public override void OnReset()
+ {
+ targetGameObject = null;
+ }
+ }
+} \ No newline at end of file
diff --git a/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/IsStopped.cs.meta b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/IsStopped.cs.meta
new file mode 100644
index 00000000..d0a054fb
--- /dev/null
+++ b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/IsStopped.cs.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: c719a7379c22b184380b4e63ccdfd064
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
diff --git a/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/Pause.cs b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/Pause.cs
new file mode 100644
index 00000000..496b2db5
--- /dev/null
+++ b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/Pause.cs
@@ -0,0 +1,41 @@
+using UnityEngine;
+
+namespace BehaviorDesigner.Runtime.Tasks.Basic.UnityParticleSystem
+{
+ [TaskCategory("Basic/ParticleSystem")]
+ [TaskDescription("Pause the Particle System.")]
+ public class Pause : Action
+ {
+ [Tooltip("The GameObject that the task operates on. If null the task GameObject is used.")]
+ public SharedGameObject targetGameObject;
+
+ private ParticleSystem particleSystem;
+ private GameObject prevGameObject;
+
+ public override void OnStart()
+ {
+ var currentGameObject = GetDefaultGameObject(targetGameObject.Value);
+ if (currentGameObject != prevGameObject) {
+ particleSystem = currentGameObject.GetComponent<ParticleSystem>();
+ prevGameObject = currentGameObject;
+ }
+ }
+
+ public override TaskStatus OnUpdate()
+ {
+ if (particleSystem == null) {
+ Debug.LogWarning("ParticleSystem is null");
+ return TaskStatus.Failure;
+ }
+
+ particleSystem.Pause();
+
+ return TaskStatus.Success;
+ }
+
+ public override void OnReset()
+ {
+ targetGameObject = null;
+ }
+ }
+} \ No newline at end of file
diff --git a/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/Pause.cs.meta b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/Pause.cs.meta
new file mode 100644
index 00000000..d6e60239
--- /dev/null
+++ b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/Pause.cs.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: c9c9cc56691817b49af4fd1cfbc3e363
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
diff --git a/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/Play.cs b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/Play.cs
new file mode 100644
index 00000000..6797351c
--- /dev/null
+++ b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/Play.cs
@@ -0,0 +1,41 @@
+using UnityEngine;
+
+namespace BehaviorDesigner.Runtime.Tasks.Basic.UnityParticleSystem
+{
+ [TaskCategory("Basic/ParticleSystem")]
+ [TaskDescription("Play the Particle System.")]
+ public class Play : Action
+ {
+ [Tooltip("The GameObject that the task operates on. If null the task GameObject is used.")]
+ public SharedGameObject targetGameObject;
+
+ private ParticleSystem particleSystem;
+ private GameObject prevGameObject;
+
+ public override void OnStart()
+ {
+ var currentGameObject = GetDefaultGameObject(targetGameObject.Value);
+ if (currentGameObject != prevGameObject) {
+ particleSystem = currentGameObject.GetComponent<ParticleSystem>();
+ prevGameObject = currentGameObject;
+ }
+ }
+
+ public override TaskStatus OnUpdate()
+ {
+ if (particleSystem == null) {
+ Debug.LogWarning("ParticleSystem is null");
+ return TaskStatus.Failure;
+ }
+
+ particleSystem.Play();
+
+ return TaskStatus.Success;
+ }
+
+ public override void OnReset()
+ {
+ targetGameObject = null;
+ }
+ }
+} \ No newline at end of file
diff --git a/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/Play.cs.meta b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/Play.cs.meta
new file mode 100644
index 00000000..276c73c4
--- /dev/null
+++ b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/Play.cs.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: a8ffb889d35074d4fb08d8502155c0b2
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
diff --git a/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetEmissionRate.cs b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetEmissionRate.cs
new file mode 100644
index 00000000..2034a071
--- /dev/null
+++ b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetEmissionRate.cs
@@ -0,0 +1,48 @@
+using UnityEngine;
+
+namespace BehaviorDesigner.Runtime.Tasks.Basic.UnityParticleSystem
+{
+ [TaskCategory("Basic/ParticleSystem")]
+ [TaskDescription("Sets the emission rate of the Particle System.")]
+ public class SetEmissionRate : Action
+ {
+ [Tooltip("The GameObject that the task operates on. If null the task GameObject is used.")]
+ public SharedGameObject targetGameObject;
+ [Tooltip("The emission rate of the ParticleSystem")]
+ public SharedFloat emissionRate;
+
+ private ParticleSystem particleSystem;
+ private GameObject prevGameObject;
+
+ public override void OnStart()
+ {
+ var currentGameObject = GetDefaultGameObject(targetGameObject.Value);
+ if (currentGameObject != prevGameObject) {
+ particleSystem = currentGameObject.GetComponent<ParticleSystem>();
+ prevGameObject = currentGameObject;
+ }
+ }
+
+ public override TaskStatus OnUpdate()
+ {
+ if (particleSystem == null) {
+ Debug.LogWarning("ParticleSystem is null");
+ return TaskStatus.Failure;
+ }
+
+#if !(UNITY_5_1 || UNITY_5_2)
+ Debug.Log("Warning: SetEmissionRate is not used in Unity 5.3 or later.");
+#else
+ particleSystem.emissionRate = emissionRate.Value;
+#endif
+
+ return TaskStatus.Success;
+ }
+
+ public override void OnReset()
+ {
+ targetGameObject = null;
+ emissionRate = 0;
+ }
+ }
+} \ No newline at end of file
diff --git a/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetEmissionRate.cs.meta b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetEmissionRate.cs.meta
new file mode 100644
index 00000000..ac56602a
--- /dev/null
+++ b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetEmissionRate.cs.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: a8300eee629ad77419f2eb91477a0b62
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
diff --git a/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetEnableEmission.cs b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetEnableEmission.cs
new file mode 100644
index 00000000..eedcc59e
--- /dev/null
+++ b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetEnableEmission.cs
@@ -0,0 +1,49 @@
+using UnityEngine;
+
+namespace BehaviorDesigner.Runtime.Tasks.Basic.UnityParticleSystem
+{
+ [TaskCategory("Basic/ParticleSystem")]
+ [TaskDescription("Enables or disables the Particle System emission.")]
+ public class SetEnableEmission : Action
+ {
+ [Tooltip("The GameObject that the task operates on. If null the task GameObject is used.")]
+ public SharedGameObject targetGameObject;
+ [Tooltip("Enable the ParticleSystem emissions?")]
+ public SharedBool enable;
+
+ private ParticleSystem particleSystem;
+ private GameObject prevGameObject;
+
+ public override void OnStart()
+ {
+ var currentGameObject = GetDefaultGameObject(targetGameObject.Value);
+ if (currentGameObject != prevGameObject) {
+ particleSystem = currentGameObject.GetComponent<ParticleSystem>();
+ prevGameObject = currentGameObject;
+ }
+ }
+
+ public override TaskStatus OnUpdate()
+ {
+ if (particleSystem == null) {
+ Debug.LogWarning("ParticleSystem is null");
+ return TaskStatus.Failure;
+ }
+
+#if !(UNITY_5_1 || UNITY_5_2)
+ var emission = particleSystem.emission;
+ emission.enabled = enable.Value;
+#else
+ particleSystem.enableEmission = enable.Value;
+#endif
+
+ return TaskStatus.Success;
+ }
+
+ public override void OnReset()
+ {
+ targetGameObject = null;
+ enable = false;
+ }
+ }
+} \ No newline at end of file
diff --git a/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetEnableEmission.cs.meta b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetEnableEmission.cs.meta
new file mode 100644
index 00000000..d5d77a69
--- /dev/null
+++ b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetEnableEmission.cs.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: f7c295b4d24628146a885d21bf699993
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
diff --git a/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetGravityModifier.cs b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetGravityModifier.cs
new file mode 100644
index 00000000..e11dcd85
--- /dev/null
+++ b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetGravityModifier.cs
@@ -0,0 +1,46 @@
+#if UNITY_5_1 || UNITY_5_2 || UNITY_5_3 || UNITY_5_4
+using UnityEngine;
+
+namespace BehaviorDesigner.Runtime.Tasks.Basic.UnityParticleSystem
+{
+ [TaskCategory("Basic/ParticleSystem")]
+ [TaskDescription("Sets the gravity modifier of the Particle System.")]
+ public class SetGravityModifier : Action
+ {
+ [Tooltip("The GameObject that the task operates on. If null the task GameObject is used.")]
+ public SharedGameObject targetGameObject;
+ [Tooltip("The gravity modifier of the ParticleSystem")]
+ public SharedFloat gravityModifier;
+
+ private ParticleSystem particleSystem;
+ private GameObject prevGameObject;
+
+ public override void OnStart()
+ {
+ var currentGameObject = GetDefaultGameObject(targetGameObject.Value);
+ if (currentGameObject != prevGameObject) {
+ particleSystem = currentGameObject.GetComponent<ParticleSystem>();
+ prevGameObject = currentGameObject;
+ }
+ }
+
+ public override TaskStatus OnUpdate()
+ {
+ if (particleSystem == null) {
+ Debug.LogWarning("ParticleSystem is null");
+ return TaskStatus.Failure;
+ }
+
+ particleSystem.gravityModifier = gravityModifier.Value;
+
+ return TaskStatus.Success;
+ }
+
+ public override void OnReset()
+ {
+ targetGameObject = null;
+ gravityModifier = 0;
+ }
+ }
+}
+#endif \ No newline at end of file
diff --git a/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetGravityModifier.cs.meta b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetGravityModifier.cs.meta
new file mode 100644
index 00000000..8337a101
--- /dev/null
+++ b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetGravityModifier.cs.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: c1a6694791042df4ea2097a2508bd8de
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
diff --git a/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetLoop.cs b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetLoop.cs
new file mode 100644
index 00000000..27e49635
--- /dev/null
+++ b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetLoop.cs
@@ -0,0 +1,49 @@
+using UnityEngine;
+
+namespace BehaviorDesigner.Runtime.Tasks.Basic.UnityParticleSystem
+{
+ [TaskCategory("Basic/ParticleSystem")]
+ [TaskDescription("Sets if the Particle System should loop.")]
+ public class SetLoop : Action
+ {
+ [Tooltip("The GameObject that the task operates on. If null the task GameObject is used.")]
+ public SharedGameObject targetGameObject;
+ [Tooltip("Should the ParticleSystem loop?")]
+ public SharedBool loop;
+
+ private ParticleSystem particleSystem;
+ private GameObject prevGameObject;
+
+ public override void OnStart()
+ {
+ var currentGameObject = GetDefaultGameObject(targetGameObject.Value);
+ if (currentGameObject != prevGameObject) {
+ particleSystem = currentGameObject.GetComponent<ParticleSystem>();
+ prevGameObject = currentGameObject;
+ }
+ }
+
+ public override TaskStatus OnUpdate()
+ {
+ if (particleSystem == null) {
+ Debug.LogWarning("ParticleSystem is null");
+ return TaskStatus.Failure;
+ }
+
+#if UNITY_5_1 || UNITY_5_2 || UNITY_5_3 || UNITY_5_4
+ particleSystem.loop = loop.Value;
+#else
+ ParticleSystem.MainModule mainParticleSystem = particleSystem.main;
+ mainParticleSystem.loop = loop.Value;
+#endif
+
+ return TaskStatus.Success;
+ }
+
+ public override void OnReset()
+ {
+ targetGameObject = null;
+ loop = false;
+ }
+ }
+}
diff --git a/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetLoop.cs.meta b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetLoop.cs.meta
new file mode 100644
index 00000000..169ffad8
--- /dev/null
+++ b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetLoop.cs.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: b9fa90adc0377cc4592de00e410a4060
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
diff --git a/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetMaxParticles.cs b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetMaxParticles.cs
new file mode 100644
index 00000000..705c7919
--- /dev/null
+++ b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetMaxParticles.cs
@@ -0,0 +1,48 @@
+using UnityEngine;
+
+namespace BehaviorDesigner.Runtime.Tasks.Basic.UnityParticleSystem
+{
+ [TaskCategory("Basic/ParticleSystem")]
+ [TaskDescription("Sets the max particles of the Particle System.")]
+ public class SetMaxParticles : Action
+ {
+ [Tooltip("The GameObject that the task operates on. If null the task GameObject is used.")]
+ public SharedGameObject targetGameObject;
+ [Tooltip("The max particles of the ParticleSystem")]
+ public SharedInt maxParticles;
+
+ private ParticleSystem particleSystem;
+ private GameObject prevGameObject;
+
+ public override void OnStart()
+ {
+ var currentGameObject = GetDefaultGameObject(targetGameObject.Value);
+ if (currentGameObject != prevGameObject) {
+ particleSystem = currentGameObject.GetComponent<ParticleSystem>();
+ prevGameObject = currentGameObject;
+ }
+ }
+
+ public override TaskStatus OnUpdate()
+ {
+ if (particleSystem == null) {
+ Debug.LogWarning("ParticleSystem is null");
+ return TaskStatus.Failure;
+ }
+#if UNITY_5_1 || UNITY_5_2 || UNITY_5_3 || UNITY_5_4
+ particleSystem.maxParticles = maxParticles.Value;
+#else
+ ParticleSystem.MainModule mainParticleSystem = particleSystem.main;
+ mainParticleSystem.maxParticles = maxParticles.Value;
+#endif
+
+ return TaskStatus.Success;
+ }
+
+ public override void OnReset()
+ {
+ targetGameObject = null;
+ maxParticles = 0;
+ }
+ }
+}
diff --git a/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetMaxParticles.cs.meta b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetMaxParticles.cs.meta
new file mode 100644
index 00000000..8549f671
--- /dev/null
+++ b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetMaxParticles.cs.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: eadca930ad32a404886060ee43e4d802
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
diff --git a/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetPlaybackSpeed.cs b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetPlaybackSpeed.cs
new file mode 100644
index 00000000..a520a196
--- /dev/null
+++ b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetPlaybackSpeed.cs
@@ -0,0 +1,49 @@
+using UnityEngine;
+
+namespace BehaviorDesigner.Runtime.Tasks.Basic.UnityParticleSystem
+{
+ [TaskCategory("Basic/ParticleSystem")]
+ [TaskDescription("Sets the playback speed of the Particle System.")]
+ public class SetPlaybackSpeed : Action
+ {
+ [Tooltip("The GameObject that the task operates on. If null the task GameObject is used.")]
+ public SharedGameObject targetGameObject;
+ [Tooltip("The playback speed of the ParticleSystem")]
+ public SharedFloat playbackSpeed = 1;
+
+ private ParticleSystem particleSystem;
+ private GameObject prevGameObject;
+
+ public override void OnStart()
+ {
+ var currentGameObject = GetDefaultGameObject(targetGameObject.Value);
+ if (currentGameObject != prevGameObject) {
+ particleSystem = currentGameObject.GetComponent<ParticleSystem>();
+ prevGameObject = currentGameObject;
+ }
+ }
+
+ public override TaskStatus OnUpdate()
+ {
+ if (particleSystem == null) {
+ Debug.LogWarning("ParticleSystem is null");
+ return TaskStatus.Failure;
+ }
+
+#if UNITY_5_1 || UNITY_5_2 || UNITY_5_3 || UNITY_5_4
+ particleSystem.playbackSpeed = playbackSpeed.Value;
+#else
+ ParticleSystem.MainModule mainParticleSystem = particleSystem.main;
+ mainParticleSystem.simulationSpeed= playbackSpeed.Value;
+#endif
+
+ return TaskStatus.Success;
+ }
+
+ public override void OnReset()
+ {
+ targetGameObject = null;
+ playbackSpeed = 1;
+ }
+ }
+} \ No newline at end of file
diff --git a/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetPlaybackSpeed.cs.meta b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetPlaybackSpeed.cs.meta
new file mode 100644
index 00000000..1c0afbdb
--- /dev/null
+++ b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetPlaybackSpeed.cs.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 8f4d79e34ac8820458a2813895d3962d
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
diff --git a/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetStartColor.cs b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetStartColor.cs
new file mode 100644
index 00000000..498c96cc
--- /dev/null
+++ b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetStartColor.cs
@@ -0,0 +1,49 @@
+using UnityEngine;
+
+namespace BehaviorDesigner.Runtime.Tasks.Basic.UnityParticleSystem
+{
+ [TaskCategory("Basic/ParticleSystem")]
+ [TaskDescription("Sets the start color of the Particle System.")]
+ public class SetStartColor : Action
+ {
+ [Tooltip("The GameObject that the task operates on. If null the task GameObject is used.")]
+ public SharedGameObject targetGameObject;
+ [Tooltip("The start color of the ParticleSystem")]
+ public SharedColor startColor;
+
+ private ParticleSystem particleSystem;
+ private GameObject prevGameObject;
+
+ public override void OnStart()
+ {
+ var currentGameObject = GetDefaultGameObject(targetGameObject.Value);
+ if (currentGameObject != prevGameObject) {
+ particleSystem = currentGameObject.GetComponent<ParticleSystem>();
+ prevGameObject = currentGameObject;
+ }
+ }
+
+ public override TaskStatus OnUpdate()
+ {
+ if (particleSystem == null) {
+ Debug.LogWarning("ParticleSystem is null");
+ return TaskStatus.Failure;
+ }
+
+#if UNITY_5_1 || UNITY_5_2 || UNITY_5_3 || UNITY_5_4
+ particleSystem.startColor = startColor.Value;
+#else
+ ParticleSystem.MainModule mainParticleSystem = particleSystem.main;
+ mainParticleSystem.startColor = startColor.Value;
+#endif
+
+ return TaskStatus.Success;
+ }
+
+ public override void OnReset()
+ {
+ targetGameObject = null;
+ startColor = Color.white;
+ }
+ }
+} \ No newline at end of file
diff --git a/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetStartColor.cs.meta b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetStartColor.cs.meta
new file mode 100644
index 00000000..12432173
--- /dev/null
+++ b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetStartColor.cs.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: f91be163d0c01ec42bf120c267dcceea
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
diff --git a/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetStartDelay.cs b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetStartDelay.cs
new file mode 100644
index 00000000..e11bcdb1
--- /dev/null
+++ b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetStartDelay.cs
@@ -0,0 +1,49 @@
+using UnityEngine;
+
+namespace BehaviorDesigner.Runtime.Tasks.Basic.UnityParticleSystem
+{
+ [TaskCategory("Basic/ParticleSystem")]
+ [TaskDescription("Sets the start delay of the Particle System.")]
+ public class SetStartDelay : Action
+ {
+ [Tooltip("The GameObject that the task operates on. If null the task GameObject is used.")]
+ public SharedGameObject targetGameObject;
+ [Tooltip("The start delay of the ParticleSystem")]
+ public SharedFloat startDelay;
+
+ private ParticleSystem particleSystem;
+ private GameObject prevGameObject;
+
+ public override void OnStart()
+ {
+ var currentGameObject = GetDefaultGameObject(targetGameObject.Value);
+ if (currentGameObject != prevGameObject) {
+ particleSystem = currentGameObject.GetComponent<ParticleSystem>();
+ prevGameObject = currentGameObject;
+ }
+ }
+
+ public override TaskStatus OnUpdate()
+ {
+ if (particleSystem == null) {
+ Debug.LogWarning("ParticleSystem is null");
+ return TaskStatus.Failure;
+ }
+
+#if UNITY_5_1 || UNITY_5_2 || UNITY_5_3 || UNITY_5_4
+ particleSystem.startDelay = startDelay.Value;
+#else
+ ParticleSystem.MainModule mainParticleSystem = particleSystem.main;
+ mainParticleSystem.startDelay = startDelay.Value;
+#endif
+
+ return TaskStatus.Success;
+ }
+
+ public override void OnReset()
+ {
+ targetGameObject = null;
+ startDelay = 0;
+ }
+ }
+} \ No newline at end of file
diff --git a/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetStartDelay.cs.meta b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetStartDelay.cs.meta
new file mode 100644
index 00000000..fb4c01f5
--- /dev/null
+++ b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetStartDelay.cs.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 532026cf3b430c840897e66bdde5006e
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
diff --git a/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetStartLifetime.cs b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetStartLifetime.cs
new file mode 100644
index 00000000..9246543a
--- /dev/null
+++ b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetStartLifetime.cs
@@ -0,0 +1,49 @@
+using UnityEngine;
+
+namespace BehaviorDesigner.Runtime.Tasks.Basic.UnityParticleSystem
+{
+ [TaskCategory("Basic/ParticleSystem")]
+ [TaskDescription("Sets the start lifetime of the Particle System.")]
+ public class SetStartLifetime : Action
+ {
+ [Tooltip("The GameObject that the task operates on. If null the task GameObject is used.")]
+ public SharedGameObject targetGameObject;
+ [Tooltip("The start lifetime of the ParticleSystem")]
+ public SharedFloat startLifetime;
+
+ private ParticleSystem particleSystem;
+ private GameObject prevGameObject;
+
+ public override void OnStart()
+ {
+ var currentGameObject = GetDefaultGameObject(targetGameObject.Value);
+ if (currentGameObject != prevGameObject) {
+ particleSystem = currentGameObject.GetComponent<ParticleSystem>();
+ prevGameObject = currentGameObject;
+ }
+ }
+
+ public override TaskStatus OnUpdate()
+ {
+ if (particleSystem == null) {
+ Debug.LogWarning("ParticleSystem is null");
+ return TaskStatus.Failure;
+ }
+
+#if UNITY_5_1 || UNITY_5_2 || UNITY_5_3 || UNITY_5_4
+ particleSystem.startLifetime = startLifetime.Value;
+#else
+ ParticleSystem.MainModule mainParticleSystem = particleSystem.main;
+ mainParticleSystem.startLifetime = startLifetime.Value;
+#endif
+
+ return TaskStatus.Success;
+ }
+
+ public override void OnReset()
+ {
+ targetGameObject = null;
+ startLifetime = 0;
+ }
+ }
+} \ No newline at end of file
diff --git a/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetStartLifetime.cs.meta b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetStartLifetime.cs.meta
new file mode 100644
index 00000000..361689aa
--- /dev/null
+++ b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetStartLifetime.cs.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 311b9ed850b4e2243ae44487b9ece819
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
diff --git a/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetStartRotation.cs b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetStartRotation.cs
new file mode 100644
index 00000000..4cd78608
--- /dev/null
+++ b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetStartRotation.cs
@@ -0,0 +1,49 @@
+using UnityEngine;
+
+namespace BehaviorDesigner.Runtime.Tasks.Basic.UnityParticleSystem
+{
+ [TaskCategory("Basic/ParticleSystem")]
+ [TaskDescription("Sets the start rotation of the Particle System.")]
+ public class SetStartRotation : Action
+ {
+ [Tooltip("The GameObject that the task operates on. If null the task GameObject is used.")]
+ public SharedGameObject targetGameObject;
+ [Tooltip("The start rotation of the ParticleSystem")]
+ public SharedFloat startRotation;
+
+ private ParticleSystem particleSystem;
+ private GameObject prevGameObject;
+
+ public override void OnStart()
+ {
+ var currentGameObject = GetDefaultGameObject(targetGameObject.Value);
+ if (currentGameObject != prevGameObject) {
+ particleSystem = currentGameObject.GetComponent<ParticleSystem>();
+ prevGameObject = currentGameObject;
+ }
+ }
+
+ public override TaskStatus OnUpdate()
+ {
+ if (particleSystem == null) {
+ Debug.LogWarning("ParticleSystem is null");
+ return TaskStatus.Failure;
+ }
+
+#if UNITY_5_1 || UNITY_5_2 || UNITY_5_3 || UNITY_5_4
+ particleSystem.startRotation = startRotation.Value;
+#else
+ ParticleSystem.MainModule mainParticleSystem = particleSystem.main;
+ mainParticleSystem.startRotation = startRotation.Value;
+#endif
+
+ return TaskStatus.Success;
+ }
+
+ public override void OnReset()
+ {
+ targetGameObject = null;
+ startRotation = 0;
+ }
+ }
+} \ No newline at end of file
diff --git a/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetStartRotation.cs.meta b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetStartRotation.cs.meta
new file mode 100644
index 00000000..c995958e
--- /dev/null
+++ b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetStartRotation.cs.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: ae611ab09913de6438aeb81d7a621c51
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
diff --git a/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetStartSize.cs b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetStartSize.cs
new file mode 100644
index 00000000..87dbbe39
--- /dev/null
+++ b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetStartSize.cs
@@ -0,0 +1,49 @@
+using UnityEngine;
+
+namespace BehaviorDesigner.Runtime.Tasks.Basic.UnityParticleSystem
+{
+ [TaskCategory("Basic/ParticleSystem")]
+ [TaskDescription("Sets the start size of the Particle System.")]
+ public class SetStartSize : Action
+ {
+ [Tooltip("The GameObject that the task operates on. If null the task GameObject is used.")]
+ public SharedGameObject targetGameObject;
+ [Tooltip("The start size of the ParticleSystem")]
+ public SharedFloat startSize;
+
+ private ParticleSystem particleSystem;
+ private GameObject prevGameObject;
+
+ public override void OnStart()
+ {
+ var currentGameObject = GetDefaultGameObject(targetGameObject.Value);
+ if (currentGameObject != prevGameObject) {
+ particleSystem = currentGameObject.GetComponent<ParticleSystem>();
+ prevGameObject = currentGameObject;
+ }
+ }
+
+ public override TaskStatus OnUpdate()
+ {
+ if (particleSystem == null) {
+ Debug.LogWarning("ParticleSystem is null");
+ return TaskStatus.Failure;
+ }
+
+#if UNITY_5_1 || UNITY_5_2 || UNITY_5_3 || UNITY_5_4
+ particleSystem.startSize = startSize.Value;
+#else
+ ParticleSystem.MainModule mainParticleSystem = particleSystem.main;
+ mainParticleSystem.startSize = startSize.Value;
+#endif
+
+ return TaskStatus.Success;
+ }
+
+ public override void OnReset()
+ {
+ targetGameObject = null;
+ startSize = 0;
+ }
+ }
+} \ No newline at end of file
diff --git a/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetStartSize.cs.meta b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetStartSize.cs.meta
new file mode 100644
index 00000000..d697099c
--- /dev/null
+++ b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetStartSize.cs.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: d7be6a1da3f4f7a418e5739a6cc6e78e
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
diff --git a/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetStartSpeed.cs b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetStartSpeed.cs
new file mode 100644
index 00000000..52bd8072
--- /dev/null
+++ b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetStartSpeed.cs
@@ -0,0 +1,49 @@
+using UnityEngine;
+
+namespace BehaviorDesigner.Runtime.Tasks.Basic.UnityParticleSystem
+{
+ [TaskCategory("Basic/ParticleSystem")]
+ [TaskDescription("Sets the start speed of the Particle System.")]
+ public class SetStartSpeed : Action
+ {
+ [Tooltip("The GameObject that the task operates on. If null the task GameObject is used.")]
+ public SharedGameObject targetGameObject;
+ [Tooltip("The start speed of the ParticleSystem")]
+ public SharedFloat startSpeed;
+
+ private ParticleSystem particleSystem;
+ private GameObject prevGameObject;
+
+ public override void OnStart()
+ {
+ var currentGameObject = GetDefaultGameObject(targetGameObject.Value);
+ if (currentGameObject != prevGameObject) {
+ particleSystem = currentGameObject.GetComponent<ParticleSystem>();
+ prevGameObject = currentGameObject;
+ }
+ }
+
+ public override TaskStatus OnUpdate()
+ {
+ if (particleSystem == null) {
+ Debug.LogWarning("ParticleSystem is null");
+ return TaskStatus.Failure;
+ }
+
+#if UNITY_5_1 || UNITY_5_2 || UNITY_5_3 || UNITY_5_4
+ particleSystem.startSpeed = startSpeed.Value;
+#else
+ ParticleSystem.MainModule mainParticleSystem = particleSystem.main;
+ mainParticleSystem.startSpeed = startSpeed.Value;
+#endif
+
+ return TaskStatus.Success;
+ }
+
+ public override void OnReset()
+ {
+ targetGameObject = null;
+ startSpeed = 0;
+ }
+ }
+} \ No newline at end of file
diff --git a/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetStartSpeed.cs.meta b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetStartSpeed.cs.meta
new file mode 100644
index 00000000..f87bf954
--- /dev/null
+++ b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetStartSpeed.cs.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: b7716318475d3854a96729d1a7540d4a
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
diff --git a/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetTime.cs b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetTime.cs
new file mode 100644
index 00000000..41f2e9eb
--- /dev/null
+++ b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetTime.cs
@@ -0,0 +1,44 @@
+using UnityEngine;
+
+namespace BehaviorDesigner.Runtime.Tasks.Basic.UnityParticleSystem
+{
+ [TaskCategory("Basic/ParticleSystem")]
+ [TaskDescription("Sets the time of the Particle System.")]
+ public class SetTime : Action
+ {
+ [Tooltip("The GameObject that the task operates on. If null the task GameObject is used.")]
+ public SharedGameObject targetGameObject;
+ [Tooltip("The time of the ParticleSystem")]
+ public SharedFloat time;
+
+ private ParticleSystem particleSystem;
+ private GameObject prevGameObject;
+
+ public override void OnStart()
+ {
+ var currentGameObject = GetDefaultGameObject(targetGameObject.Value);
+ if (currentGameObject != prevGameObject) {
+ particleSystem = currentGameObject.GetComponent<ParticleSystem>();
+ prevGameObject = currentGameObject;
+ }
+ }
+
+ public override TaskStatus OnUpdate()
+ {
+ if (particleSystem == null) {
+ Debug.LogWarning("ParticleSystem is null");
+ return TaskStatus.Failure;
+ }
+
+ particleSystem.time = time.Value;
+
+ return TaskStatus.Success;
+ }
+
+ public override void OnReset()
+ {
+ targetGameObject = null;
+ time = 0;
+ }
+ }
+} \ No newline at end of file
diff --git a/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetTime.cs.meta b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetTime.cs.meta
new file mode 100644
index 00000000..2788eb15
--- /dev/null
+++ b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/SetTime.cs.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 103e78e9c755fe3469e63115eb1c0d80
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
diff --git a/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/Simulate.cs b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/Simulate.cs
new file mode 100644
index 00000000..fcf70cfb
--- /dev/null
+++ b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/Simulate.cs
@@ -0,0 +1,44 @@
+using UnityEngine;
+
+namespace BehaviorDesigner.Runtime.Tasks.Basic.UnityParticleSystem
+{
+ [TaskCategory("Basic/ParticleSystem")]
+ [TaskDescription("Simulate the Particle System.")]
+ public class Simulate : Action
+ {
+ [Tooltip("The GameObject that the task operates on. If null the task GameObject is used.")]
+ public SharedGameObject targetGameObject;
+ [Tooltip("Time to fastfoward the Particle System to")]
+ public SharedFloat time;
+
+ private ParticleSystem particleSystem;
+ private GameObject prevGameObject;
+
+ public override void OnStart()
+ {
+ var currentGameObject = GetDefaultGameObject(targetGameObject.Value);
+ if (currentGameObject != prevGameObject) {
+ particleSystem = currentGameObject.GetComponent<ParticleSystem>();
+ prevGameObject = currentGameObject;
+ }
+ }
+
+ public override TaskStatus OnUpdate()
+ {
+ if (particleSystem == null) {
+ Debug.LogWarning("ParticleSystem is null");
+ return TaskStatus.Failure;
+ }
+
+ particleSystem.Simulate(time.Value);
+
+ return TaskStatus.Success;
+ }
+
+ public override void OnReset()
+ {
+ targetGameObject = null;
+ time = 0;
+ }
+ }
+} \ No newline at end of file
diff --git a/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/Simulate.cs.meta b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/Simulate.cs.meta
new file mode 100644
index 00000000..c703cb24
--- /dev/null
+++ b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/Simulate.cs.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 24d79d661acf61e44918320624b49dd5
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
diff --git a/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/Stop.cs b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/Stop.cs
new file mode 100644
index 00000000..2ed84c15
--- /dev/null
+++ b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/Stop.cs
@@ -0,0 +1,41 @@
+using UnityEngine;
+
+namespace BehaviorDesigner.Runtime.Tasks.Basic.UnityParticleSystem
+{
+ [TaskCategory("Basic/ParticleSystem")]
+ [TaskDescription("Stop the Particle System.")]
+ public class Stop : Action
+ {
+ [Tooltip("The GameObject that the task operates on. If null the task GameObject is used.")]
+ public SharedGameObject targetGameObject;
+
+ private ParticleSystem particleSystem;
+ private GameObject prevGameObject;
+
+ public override void OnStart()
+ {
+ var currentGameObject = GetDefaultGameObject(targetGameObject.Value);
+ if (currentGameObject != prevGameObject) {
+ particleSystem = currentGameObject.GetComponent<ParticleSystem>();
+ prevGameObject = currentGameObject;
+ }
+ }
+
+ public override TaskStatus OnUpdate()
+ {
+ if (particleSystem == null) {
+ Debug.LogWarning("ParticleSystem is null");
+ return TaskStatus.Failure;
+ }
+
+ particleSystem.Stop();
+
+ return TaskStatus.Success;
+ }
+
+ public override void OnReset()
+ {
+ targetGameObject = null;
+ }
+ }
+} \ No newline at end of file
diff --git a/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/Stop.cs.meta b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/Stop.cs.meta
new file mode 100644
index 00000000..695ec19d
--- /dev/null
+++ b/Assets/ThirdParty/Behavior Designer/Runtime/Basic Tasks/ParticleSystem/Stop.cs.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: fd83617024d6bff44824a83b472db8e6
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData: