Skip to content
Snippets Groups Projects
Commit 58d5c796 authored by Matthewit Dechatech's avatar Matthewit Dechatech
Browse files

Jump clearance, changing collider size

parent 1d2c2d85
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -130,7 +130,6 @@ GameObject:
serializedVersion: 4
m_Component:
- 4: {fileID: 424606}
- 61: {fileID: 6187064}
- 50: {fileID: 5083970}
- 114: {fileID: 11405618}
- 114: {fileID: 11453498}
Loading
Loading
@@ -177,6 +176,22 @@ GameObject:
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!1 &166310
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
serializedVersion: 4
m_Component:
- 4: {fileID: 438320}
- 61: {fileID: 6118484}
m_Layer: 0
m_Name: Collider
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!1 &174442
GameObject:
m_ObjectHideFlags: 1
Loading
Loading
@@ -292,7 +307,7 @@ GameObject:
- 4: {fileID: 404068}
- 114: {fileID: 11487382}
m_Layer: 0
m_Name: __Generated Sensors__
m_Name: Sensors
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
Loading
Loading
@@ -393,11 +408,12 @@ Transform:
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 151248}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 2.67700005, y: 1.64400005, z: 0}
m_LocalPosition: {x: -.5, y: 3.13000011, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 411496}
- {fileID: 404068}
- {fileID: 438320}
m_Father: {fileID: 0}
m_RootOrder: 0
--- !u!4 &425550
Loading
Loading
@@ -424,6 +440,18 @@ Transform:
m_Children: []
m_Father: {fileID: 404068}
m_RootOrder: 13
--- !u!4 &438320
Transform:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 166310}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 424606}
m_RootOrder: 2
--- !u!4 &440814
Transform:
m_ObjectHideFlags: 1
Loading
Loading
@@ -560,19 +588,19 @@ Rigidbody2D:
m_SleepingMode: 1
m_CollisionDetection: 0
m_Constraints: 0
--- !u!61 &6187064
--- !u!61 &6118484
BoxCollider2D:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 151248}
m_GameObject: {fileID: 166310}
m_Enabled: 1
m_Material: {fileID: 0}
m_IsTrigger: 1
m_UsedByEffector: 0
m_Offset: {x: 0, y: 0}
serializedVersion: 2
m_Size: {x: .200000003, y: .400000006}
m_Size: {x: 1, y: 1}
--- !u!95 &9594506
Animator:
serializedVersion: 3
Loading
Loading
@@ -649,6 +677,8 @@ MonoBehaviour:
m_Calls: []
m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine, Version=0.0.0.0, Culture=neutral,
PublicKeyToken=null
Interrupted: 0
InterruptTimer: 0
ControlState: {fileID: 0}
ActiveMoves: []
AvailableMoves: []
Loading
Loading
@@ -691,6 +721,7 @@ MonoBehaviour:
ActiveBool: Jumping
AvailableBool:
ActivateInput: Jump
ClearanceHeight: .25
ActivateSpeed: 3.9000001
ReleaseSpeed: 2.4000001
Used: 0
Loading
Loading
@@ -819,7 +850,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: a7406431d84d33e44b62e26a55c3d66c, type: 3}
m_Name:
m_EditorClassIdentifier:
DefaultSideOffset: .00999999978
BoxCollider: {fileID: 6118484}
TopLeft: {fileID: 463510}
TopLeftStart: {fileID: 496620}
TopCenter: {fileID: 414772}
Loading
Loading
Loading
Loading
@@ -4564,6 +4564,96 @@ Prefab:
Transform:
m_PrefabParentObject: {fileID: 414336, guid: 5940b610296105e48a4040356aac62d1, type: 2}
m_PrefabInternal: {fileID: 97873584}
--- !u!1 &827905786
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 4
m_Component:
- 4: {fileID: 827905787}
- 114: {fileID: 827905789}
- 114: {fileID: 827905788}
m_Layer: 0
m_Name: Current
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &827905787
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 827905786}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -3.08999991, y: 2.8599999, z: 0}
m_LocalScale: {x: 2, y: 2, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 21
--- !u!114 &827905788
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 827905786}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: bae0667ace6f357418712b1dbfd576cc, type: 3}
m_Name:
m_EditorClassIdentifier:
Power: 25
TargetVelocity: {x: 2.5, y: 2.5}
WorkOnGround: 1
PullOffGround: 0
WorkInAir: 1
AccountForGravity: 1
AccountForFriction: 1
--- !u!114 &827905789
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 827905786}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: b01dbcc34cf2c5d45afd038db0e70191, type: 3}
m_Name:
m_EditorClassIdentifier:
TriggerFromChildren: 1
OnEnter:
m_PersistentCalls:
m_Calls: []
m_TypeName: Hedgehog.Core.Triggers.TriggerEvent, Assembly-CSharp, Version=0.0.0.0,
Culture=neutral, PublicKeyToken=null
OnStay:
m_PersistentCalls:
m_Calls: []
m_TypeName: Hedgehog.Core.Triggers.TriggerEvent, Assembly-CSharp, Version=0.0.0.0,
Culture=neutral, PublicKeyToken=null
OnExit:
m_PersistentCalls:
m_Calls: []
m_TypeName: Hedgehog.Core.Triggers.TriggerEvent, Assembly-CSharp, Version=0.0.0.0,
Culture=neutral, PublicKeyToken=null
IgnoreLayers: 1
OnAreaEnter:
m_PersistentCalls:
m_Calls: []
m_TypeName: Hedgehog.Core.Triggers.AreaEvent, Assembly-CSharp, Version=0.0.0.0,
Culture=neutral, PublicKeyToken=null
OnAreaStay:
m_PersistentCalls:
m_Calls: []
m_TypeName: Hedgehog.Core.Triggers.AreaEvent, Assembly-CSharp, Version=0.0.0.0,
Culture=neutral, PublicKeyToken=null
OnAreaExit:
m_PersistentCalls:
m_Calls: []
m_TypeName: Hedgehog.Core.Triggers.AreaEvent, Assembly-CSharp, Version=0.0.0.0,
Culture=neutral, PublicKeyToken=null
--- !u!1001 &833482737
Prefab:
m_ObjectHideFlags: 0
Loading
Loading
@@ -6149,7 +6239,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 8579349f574e1ea4b8b3c238ef8a81ba, type: 3}
m_Name:
m_EditorClassIdentifier:
FollowTarget: {fileID: 1408644792}
FollowTarget: {fileID: 0}
Smoothness: 0
RotateToGravity: 1
RotationSmoothness: .200000003
Loading
Loading
@@ -8883,10 +8973,6 @@ Transform:
- {fileID: 482065367}
m_Father: {fileID: 1854168905}
m_RootOrder: 1
--- !u!4 &1408644792 stripped
Transform:
m_PrefabParentObject: {fileID: 424606, guid: dbca39c759708bb4dbdc512f0b2a13b2, type: 2}
m_PrefabInternal: {fileID: 1923966913}
--- !u!1001 &1410070964
Prefab:
m_ObjectHideFlags: 0
Loading
Loading
Loading
Loading
@@ -231,7 +231,7 @@ public override void OnInspectorGUI()
if (ShowEvents)
{
HedgehogEditorGUIUtility.DrawProperties(serializedObject, "OnCrush", "OnAttach",
"OnDetach", "OnSteepDetach");
"OnDetach", "OnSteepDetach", "OnPerformMove", "OnInterruptedMove");
}
#endregion
#region Debug Foldout
Loading
Loading
Loading
Loading
@@ -535,6 +535,14 @@ public void Awake()
AutoFlip = AutoRotate = FacingForward = true;
AttachLock = DetachLock = false;
EnterControlState(AirControl);
OnCrush = OnCrush ?? new UnityEvent();
OnAttach = OnAttach ?? new UnityEvent();
OnCollide = OnCollide ?? new PlatformCollisionEvent();
OnPerformMove = OnPerformMove ?? new ControllerMoveEvent();
OnInterruptedMove = OnInterruptedMove ?? new ControllerMoveEvent();
OnDetach = OnDetach ?? new UnityEvent();
OnSteepDetach = OnSteepDetach ?? new UnityEvent();
}
 
public void Update()
Loading
Loading
using UnityEngine;
using Hedgehog.Core.Utils;
using UnityEngine;
 
namespace Hedgehog.Core.Actors
{
Loading
Loading
@@ -7,7 +8,11 @@ namespace Hedgehog.Core.Actors
/// </summary>
public class HedgehogSensors : MonoBehaviour
{
public float DefaultSideOffset = 0.01f;
/// <summary>
/// This box collider will be modified based on the shape of the sensors.
/// </summary>
[Tooltip("This box collider will be modified based on the shape of the sensors.")]
public BoxCollider2D BoxCollider;
 
// These sensors are used for hit detection with ceilings.
public Transform TopLeft;
Loading
Loading
@@ -134,5 +139,27 @@ public float LedgeWidth
}
}
#endregion
public void FixedUpdate()
{
if (BoxCollider == null || !BoxCollider) return;
UpdateCollider();
}
public void UpdateCollider()
{
var center = new Vector3(
(CenterLeft.position.x + CenterRight.position.x)/2.0f,
(TopCenter.position.y + BottomCenter.position.y)/2.0f,
Center.position.z
);
var size = new Vector2(
Vector2.Distance(CenterLeft.position, CenterRight.position),
Vector2.Distance(BottomCenter.position, TopCenter.position)
);
BoxCollider.transform.position = center;
BoxCollider.transform.eulerAngles = Center.transform.eulerAngles;
BoxCollider.size = size;
}
}
}
Loading
Loading
@@ -8,7 +8,7 @@ public class JumpEditor : MoveEditor
{
protected override void DrawControlProperties()
{
HedgehogEditorGUIUtility.DrawProperties(serializedObject, "ActivateInput");
HedgehogEditorGUIUtility.DrawProperties(serializedObject, "ActivateInput", "ClearanceHeight");
}
 
protected override void DrawPhysicsProperties()
Loading
Loading
Loading
Loading
@@ -13,6 +13,12 @@ public class Jump : Move
[SerializeField]
[Tooltip("Input string used for activation.")]
public string ActivateInput;
/// <summary>
/// Height above the controller's center that must be clear to allow jumping, in units.
/// </summary>
[Tooltip("Height above the controller's center that must be clear to allow jumping, in units.")]
public float ClearanceHeight;
#endregion
#region Physics
/// <summary>
Loading
Loading
@@ -37,11 +43,15 @@ public class Jump : Move
[Tooltip("Whether a jump happened. If false, the controller didn't leave the ground by jumping.")]
public bool Used;
 
private Transform _clearanceSensorLeft;
private Transform _clearanceSensorRight;
public override void Reset()
{
base.Reset();
 
ActivateInput = "Jump";
ClearanceHeight = 0.25f;
 
ActivateSpeed = 3.9f;
ReleaseSpeed = 2.4f;
Loading
Loading
@@ -50,10 +60,31 @@ public override void Reset()
public override void Awake()
{
base.Awake();
Used = false;
}
 
public override void Start()
{
base.Start();
CreateClearanceSensors();
}
protected void CreateClearanceSensors()
{
if(_clearanceSensorLeft) Destroy(_clearanceSensorLeft.gameObject);
if (_clearanceSensorRight) Destroy(_clearanceSensorRight.gameObject);
var offset = (Controller.Sensors.TopCenter.position - Controller.Sensors.Center.position).normalized
*ClearanceHeight;
_clearanceSensorLeft = new GameObject {name = "Clearance Left"}.transform;
_clearanceSensorLeft.transform.SetParent(Controller.Sensors.transform);
_clearanceSensorLeft.transform.position = Controller.Sensors.TopLeftStart.position + offset;
_clearanceSensorRight = new GameObject {name = "Clearance Right"}.transform;
_clearanceSensorRight.transform.SetParent(Controller.Sensors.transform);
_clearanceSensorRight.transform.position = Controller.Sensors.TopRightStart.position + offset;
}
public void OnEnable()
{
Controller.OnAttach.AddListener(OnAttach);
Loading
Loading
@@ -67,11 +98,14 @@ public void OnDisable()
public void OnAttach()
{
Used = false;
End();
}
 
public override bool Available()
{
return !Controller.IsActive<Duck>() && Controller.Grounded;
return !Controller.IsActive<Duck>() && Controller.Grounded &&
!Controller.TerrainCast(_clearanceSensorLeft.position, _clearanceSensorRight.transform.position,
ControllerSide.Top);
}
 
public override bool InputActivate()
Loading
Loading
@@ -93,14 +127,8 @@ public override void OnActiveEnter(State previousState)
Controller.ForcePerformMove<Roll>();
}
 
public override void OnActiveUpdate()
{
if (Controller.Grounded) End();
}
public override void OnActiveExit()
{
if (Animator == null) return;
if (Controller.Grounded) return;
 
if (Controller.RelativeVelocity.y > ActivateSpeed)
Loading
Loading
Loading
Loading
@@ -50,7 +50,7 @@ public enum State
public virtual void Reset()
{
Controller = GetComponent<HedgehogController>();
Animator = GetComponent<Animator>();
Animator = Animator ?? Controller == null ? null : Controller.Animator;
 
ActiveTrigger = AvailableBool = "";
}
Loading
Loading
@@ -58,6 +58,8 @@ public virtual void Reset()
public virtual void Awake()
{
Controller = Controller ?? GetComponent<HedgehogController>();
Animator = Animator ?? Controller.Animator;
CurrentState = State.Unavailable;
InputActivated = false;
}
Loading
Loading
Loading
Loading
@@ -179,7 +179,7 @@ public void BubbleEvent(HedgehogController controller, Transform area, bool isEx
 
public void OnTriggerEnter2D(Collider2D collider2D)
{
var controller = collider2D.GetComponent<HedgehogController>();
var controller = collider2D.GetComponentInParent<HedgehogController>();
if (controller == null) return;
NotifyCollision(controller, transform);
BubbleEvent(controller, transform);
Loading
Loading
@@ -187,7 +187,7 @@ public void OnTriggerEnter2D(Collider2D collider2D)
 
public void OnTriggerStay2D(Collider2D collider2D)
{
var controller = collider2D.GetComponent<HedgehogController>();
var controller = collider2D.GetComponentInParent<HedgehogController>();
if (controller == null) return;
NotifyCollision(controller, transform);
BubbleEvent(controller, transform);
Loading
Loading
@@ -195,7 +195,7 @@ public void OnTriggerStay2D(Collider2D collider2D)
 
public void OnTriggerExit2D(Collider2D collider2D)
{
var controller = collider2D.GetComponent<HedgehogController>();
var controller = collider2D.GetComponentInParent<HedgehogController>();
if (controller == null) return;
NotifyCollision(controller, transform, true);
BubbleEvent(controller, transform, true);
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment