Compare commits
	
		
			3 Commits
		
	
	
		
			bca2922a58
			...
			d57961f5f1
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| d57961f5f1 | |||
| c8105122fb | |||
| f2faa86f65 | 
| @@ -1,4 +1,4 @@ | ||||
| # Trigger | ||||
|  | ||||
| ## Dependencies | ||||
| 1. [ToggleState Module](https://git.syntriax.com/Syntriax/ToggleState) | ||||
| 1. [State Module](https://git.syntriax.com/Syntriax/State) | ||||
|   | ||||
| @@ -11,7 +11,7 @@ namespace Syntriax.Modules.Trigger | ||||
|         private void OnDrawGizmosSelected() | ||||
|         { | ||||
|             if (UnityEditor.EditorApplication.isPlaying) | ||||
|                 Gizmos.color = previousTriggerCount > 0 ? Color.green : Color.red; | ||||
|                 Gizmos.color = previousTriggerCount > 0 && StateEnable.IsEnabled ? Color.green : Color.red; | ||||
|             else | ||||
|                 Gizmos.color = TriggerCount > 0 ? Color.green : Color.red; | ||||
|             Gizmos.DrawWireCube(transform.position, transform.lossyScale); | ||||
|   | ||||
| @@ -11,7 +11,7 @@ namespace Syntriax.Modules.Trigger | ||||
|         private void OnDrawGizmosSelected() | ||||
|         { | ||||
|             if (UnityEditor.EditorApplication.isPlaying) | ||||
|                 Gizmos.color = previousTriggerCount > 0 ? Color.green : Color.red; | ||||
|                 Gizmos.color = previousTriggerCount > 0 && StateEnable.IsEnabled ? Color.green : Color.red; | ||||
|             else | ||||
|                 Gizmos.color = TriggerCount > 0 ? Color.green : Color.red; | ||||
|             Gizmos.matrix = transform.localToWorldMatrix; | ||||
|   | ||||
| @@ -11,7 +11,7 @@ namespace Syntriax.Modules.Trigger | ||||
|         private void OnDrawGizmosSelected() | ||||
|         { | ||||
|             if (UnityEditor.EditorApplication.isPlaying) | ||||
|                 Gizmos.color = previousTriggerCount > 0 ? Color.green : Color.red; | ||||
|                 Gizmos.color = previousTriggerCount > 0 && StateEnable.IsEnabled ? Color.green : Color.red; | ||||
|             else | ||||
|                 Gizmos.color = TriggerCount > 0 ? Color.green : Color.red; | ||||
|  | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| using Syntriax.Modules.ToggleState; | ||||
| using Syntriax.Modules.State; | ||||
|  | ||||
| namespace Syntriax.Modules.Trigger | ||||
| { | ||||
| @@ -13,7 +13,7 @@ namespace Syntriax.Modules.Trigger | ||||
|  | ||||
|         private void FixedUpdate() | ||||
|         { | ||||
|             if (!ToggleStateMember.IsToggledNullChecked()) | ||||
|             if (!StateEnable.IsEnabledNullChecked()) | ||||
|                 return; | ||||
|  | ||||
|             IsTrigerred = colliderTrigger.Check(); | ||||
|   | ||||
| @@ -45,5 +45,17 @@ namespace Syntriax.Modules.Trigger | ||||
|  | ||||
|             return true; | ||||
|         } | ||||
|  | ||||
| #if UNITY_EDITOR | ||||
|         private State.IStateEnable stateEnable = null; | ||||
|         public State.IStateEnable StateEnable | ||||
|         { | ||||
|             get | ||||
|             { | ||||
|                 stateEnable = stateEnable ?? GetComponent<State.IStateEnable>() ?? gameObject.AddComponent<State.StateEnableMonoBehaviour>(); | ||||
|                 return stateEnable; | ||||
|             } | ||||
|         } | ||||
| #endif | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -1,14 +1,14 @@ | ||||
| using System; | ||||
| using Syntriax.Modules.ToggleState; | ||||
| using Syntriax.Modules.State; | ||||
|  | ||||
| namespace Syntriax.Modules.Trigger | ||||
| { | ||||
|     public interface ITrigger | ||||
|     { | ||||
|         /// <summary> | ||||
|         /// Member <see cref="IToggleState"/> to switch on or off | ||||
|         /// <see cref="IStateEnable"/> to switch on or off | ||||
|         /// </summary> | ||||
|         IToggleState ToggleStateMember { get; } | ||||
|         IStateEnable StateEnable { get; } | ||||
|  | ||||
|         /// <summary> | ||||
|         /// Called everytime the IsTrigerred field is changed | ||||
|   | ||||
| @@ -1,22 +1,43 @@ | ||||
| using System; | ||||
| using Syntriax.Modules.ToggleState; | ||||
| using Syntriax.Modules.State; | ||||
| using UnityEngine; | ||||
|  | ||||
| namespace Syntriax.Modules.Trigger | ||||
| { | ||||
|     public class TriggerBase : MonoBehaviour, ITrigger | ||||
|     { | ||||
|         public IToggleState ToggleStateMember { get; protected set; } = new ToggleStateMember(true); | ||||
|  | ||||
|         public Action<bool> OnTriggerStateChanged { get; set; } = null; | ||||
|  | ||||
|         private IStateEnable stateEnable = null; | ||||
|         public IStateEnable StateEnable | ||||
|         { | ||||
|             get | ||||
|             { | ||||
|                 if (stateEnable == null) | ||||
|                 { | ||||
|                     stateEnable = GetComponent<IStateEnable>() ?? gameObject.AddComponent<StateEnableMonoBehaviour>(); | ||||
|                     stateEnable.OnEnabledChanged += OnEnabledChanged; | ||||
|                 } | ||||
|                 return stateEnable; | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         private void OnEnabledChanged(bool enabled) | ||||
|         { | ||||
|             if (enabled) | ||||
|                 return; | ||||
|  | ||||
|             _isTrigerred = false; | ||||
|             OnTriggerStateChanged?.Invoke(false); | ||||
|         } | ||||
|  | ||||
|         private bool _isTrigerred = false; | ||||
|         public bool IsTrigerred | ||||
|         { | ||||
|             get => _isTrigerred; | ||||
|             protected set | ||||
|             { | ||||
|                 if (value == _isTrigerred || !ToggleStateMember.IsToggledNullChecked()) | ||||
|                 if (value == _isTrigerred || !StateEnable.IsEnabledNullChecked()) | ||||
|                     return; | ||||
|  | ||||
|                 _isTrigerred = value; | ||||
|   | ||||
| @@ -1,6 +1,6 @@ | ||||
| { | ||||
|   "name": "com.syntriax.trigger", | ||||
|   "version": "0.6.4", | ||||
|   "version": "0.7.0", | ||||
|   "displayName": "Trigger Module", | ||||
|   "unity": "2019.1", | ||||
|   "documentationUrl": "https://git.syntriax.com/Syntriax/Trigger.git", | ||||
|   | ||||
		Reference in New Issue
	
	Block a user