Default Movement Added
This commit is contained in:
parent
b0442c2af9
commit
92d4871184
|
@ -16,7 +16,12 @@ namespace Syntriax.Modules.Movement.Implementations
|
||||||
|
|
||||||
rigid = GetComponent<Rigidbody2D>();
|
rigid = GetComponent<Rigidbody2D>();
|
||||||
groundTrigger = GetComponentInChildren<IGroundTrigger>();
|
groundTrigger = GetComponentInChildren<IGroundTrigger>();
|
||||||
|
|
||||||
|
if (groundTrigger != null)
|
||||||
|
{
|
||||||
groundTrigger.OnTriggered += OnGroundTrigger;
|
groundTrigger.OnTriggered += OnGroundTrigger;
|
||||||
|
CanTakeOver = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnGroundTrigger(bool isGrounded)
|
private void OnGroundTrigger(bool isGrounded)
|
||||||
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace Syntriax.Modules.Movement.Implementations
|
||||||
|
{
|
||||||
|
public class DefaultMovement : MovementBase
|
||||||
|
{
|
||||||
|
public override void ApplyMovement() { }
|
||||||
|
public override void Move(float x = 0, float y = 0, float z = 0) { }
|
||||||
|
protected override void OnActivated()
|
||||||
|
=> Debug.LogWarning("Default Movement is activated, this movement has no implementation, please add a Movement that you can use as a fallback with it's \"CanTakeOver\" value set to true if this was not intentional");
|
||||||
|
protected override void OnDeactivated() { }
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: c4380a0ed16452042ae61e9cf53a0e07
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -10,6 +10,8 @@ namespace Syntriax.Modules.Movement.Implementations
|
||||||
protected IGroundTrigger groundTrigger = null;
|
protected IGroundTrigger groundTrigger = null;
|
||||||
protected Rigidbody2D rigid = null;
|
protected Rigidbody2D rigid = null;
|
||||||
|
|
||||||
|
private void Awake() => CanTakeOver = true;
|
||||||
|
|
||||||
protected override void Start()
|
protected override void Start()
|
||||||
{
|
{
|
||||||
base.Start();
|
base.Start();
|
||||||
|
@ -18,9 +20,10 @@ namespace Syntriax.Modules.Movement.Implementations
|
||||||
groundTrigger = GetComponentInChildren<IGroundTrigger>();
|
groundTrigger = GetComponentInChildren<IGroundTrigger>();
|
||||||
|
|
||||||
if (groundTrigger != null)
|
if (groundTrigger != null)
|
||||||
|
{
|
||||||
groundTrigger.OnTriggered += OnGroundTrigger;
|
groundTrigger.OnTriggered += OnGroundTrigger;
|
||||||
else
|
CanTakeOver = false;
|
||||||
CanTakeOver = true;
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnGroundTrigger(bool isGrounded)
|
private void OnGroundTrigger(bool isGrounded)
|
||||||
|
|
|
@ -38,6 +38,9 @@ namespace Syntriax.Modules.Movement
|
||||||
|
|
||||||
protected virtual void Start()
|
protected virtual void Start()
|
||||||
{
|
{
|
||||||
|
if (GetComponent<Implementations.DefaultMovement>() == null)
|
||||||
|
gameObject.AddComponent<Implementations.DefaultMovement>();
|
||||||
|
|
||||||
RecacheMovements();
|
RecacheMovements();
|
||||||
toggleState = GetComponent<IToggleState>();
|
toggleState = GetComponent<IToggleState>();
|
||||||
}
|
}
|
||||||
|
@ -73,11 +76,6 @@ namespace Syntriax.Modules.Movement
|
||||||
ActiveMovement = movement;
|
ActiveMovement = movement;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Debug.LogWarning("No IMovement found with \"CanTakeOver\" value set to true, setting the last IMovement as the ActiveMovement. Please have an IMovement that you can use as a fallback with it's \"CanTakeOver\" value always set to true.", this);
|
|
||||||
|
|
||||||
try { ActiveMovement = Movements[Movements.Count - 1]; }
|
|
||||||
catch (System.Exception) { Debug.LogWarning("Movement Controller component needs at least one Monobehaviour attached that implements IMovement interface", this); }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Move(float x = 0, float y = 0, float z = 0)
|
public void Move(float x = 0, float y = 0, float z = 0)
|
||||||
|
|
Loading…
Reference in New Issue