Rewrite
- Movement & Controller - Special Actions - ToggleState - ColliderChecker - and 2D Implementations
This commit is contained in:
@@ -1,7 +0,0 @@
|
||||
namespace Syntriax.Modules.Movement.ColliderCheck
|
||||
{
|
||||
public class ColliderCheckFactory : TypeFactoryBaseMonoBehaviour<ColliderCheckFactory, IColliderCheck>
|
||||
{
|
||||
protected override int InitialCapacity => 8;
|
||||
}
|
||||
}
|
@@ -1,4 +0,0 @@
|
||||
namespace Syntriax.Modules.Movement.ColliderCheck
|
||||
{
|
||||
public interface IGroundCheck : IColliderCheck { }
|
||||
}
|
@@ -1,11 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2cbb917bc29d63241aa50c7fe8dc141d
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
4
ColliderCheck/Ground/IGroundTrigger.cs
Normal file
4
ColliderCheck/Ground/IGroundTrigger.cs
Normal file
@@ -0,0 +1,4 @@
|
||||
namespace Syntriax.Modules.Movement.ColliderTrigger
|
||||
{
|
||||
public interface IGroundTrigger : IColliderTrigger { }
|
||||
}
|
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a878fb141e25e954c9b73eff8657605a
|
||||
guid: 91b4c4b7439cfcb448a15d0f2ce12ff9
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
@@ -1,4 +0,0 @@
|
||||
namespace Syntriax.Modules.Movement.ColliderCheck
|
||||
{
|
||||
public class TwoDimensionalBoxChildGroundCheck : TwoDimensionalBoxChildColliderCheck, IGroundCheck { }
|
||||
}
|
@@ -0,0 +1,4 @@
|
||||
namespace Syntriax.Modules.Movement.ColliderTrigger
|
||||
{
|
||||
public class TwoDimensionalBoxChildGroundTrigger : TwoDimensionalBoxChildColliderTrigger, IGroundTrigger { }
|
||||
}
|
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b1da221e5cee86a429230fca11bdf8dd
|
||||
guid: 1213a467d17883844b2dc54d266cf211
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
@@ -1,10 +0,0 @@
|
||||
using UnityEngine;
|
||||
|
||||
namespace Syntriax.Modules.Movement.ColliderCheck
|
||||
{
|
||||
public interface IColliderCheck
|
||||
{
|
||||
LayerMask ColliderMask { get; set; }
|
||||
bool IsColliderDetected { get; }
|
||||
}
|
||||
}
|
@@ -1,8 +1,8 @@
|
||||
namespace Syntriax.Modules.Movement.ColliderCheck
|
||||
namespace Syntriax.Modules.Movement.ColliderTrigger
|
||||
{
|
||||
public static class IColliderCheckExtensions
|
||||
public static class IColliderTriggerExtensions
|
||||
{
|
||||
public static bool IsCollided(this IColliderCheck colliderCheck)
|
||||
=> colliderCheck == null ? true : colliderCheck.IsColliderDetected;
|
||||
public static bool IsTriggeredNullChecked(this IColliderTrigger colliderCheck)
|
||||
=> colliderCheck == null ? true : colliderCheck.IsTrigerred;
|
||||
}
|
||||
}
|
||||
|
12
ColliderCheck/IColliderTrigger.cs
Normal file
12
ColliderCheck/IColliderTrigger.cs
Normal file
@@ -0,0 +1,12 @@
|
||||
using UnityEngine;
|
||||
using UnityEngine.Events;
|
||||
|
||||
namespace Syntriax.Modules.Movement.ColliderTrigger
|
||||
{
|
||||
public interface IColliderTrigger
|
||||
{
|
||||
LayerMask ColliderMask { get; set; }
|
||||
bool IsTrigerred { get; }
|
||||
UnityEvent<bool> OnTriggered { get; }
|
||||
}
|
||||
}
|
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 164c4b9411986c14e8012b2e7fdd2a6a
|
||||
guid: 8ab2264f0e385af4d8decc8750297a9e
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
@@ -1,22 +1,40 @@
|
||||
using UnityEngine;
|
||||
using UnityEngine.Events;
|
||||
|
||||
namespace Syntriax.Modules.Movement.ColliderCheck
|
||||
namespace Syntriax.Modules.Movement.ColliderTrigger
|
||||
{
|
||||
public class TwoDimensionalBoxChildColliderCheck : MonoBehaviour, IColliderCheck, IState
|
||||
public class TwoDimensionalBoxChildColliderTrigger : MonoBehaviour, IColliderTrigger
|
||||
{
|
||||
[SerializeField] private LayerMask colliderMask = 0;
|
||||
private bool _isTrigerred = false;
|
||||
|
||||
public LayerMask ColliderMask { get => colliderMask; set => colliderMask = value; }
|
||||
|
||||
public bool IsColliderDetected
|
||||
=> StateEnabled ? Physics2D.OverlapBox(transform.position, transform.localScale, 0, ColliderMask) != null : true;
|
||||
public UnityEvent<bool> OnTriggered { get; protected set; } = null;
|
||||
public bool IsTrigerred
|
||||
{
|
||||
get => _isTrigerred;
|
||||
protected set
|
||||
{
|
||||
bool isNewValue = _isTrigerred != value;
|
||||
|
||||
public bool StateEnabled { get; set; } = true;
|
||||
_isTrigerred = value;
|
||||
|
||||
if (isNewValue)
|
||||
OnTriggered.Invoke(value);
|
||||
}
|
||||
}
|
||||
|
||||
protected void Awake()
|
||||
=> OnTriggered = new UnityEvent<bool>();
|
||||
|
||||
protected void FixedUpdate()
|
||||
=> IsTrigerred = Physics2D.OverlapBox(transform.position, transform.localScale, 0, ColliderMask) != null;
|
||||
|
||||
#if UNITY_EDITOR
|
||||
private void OnDrawGizmosSelected()
|
||||
{
|
||||
Gizmos.color = IsColliderDetected ? Color.green : Color.red;
|
||||
Gizmos.color = IsTrigerred ? Color.green : Color.red;
|
||||
Gizmos.DrawWireCube(transform.position, transform.lossyScale);
|
||||
}
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user