From d8e9a15a36f5285e4c635f0e1044c5bae1cf4f2f Mon Sep 17 00:00:00 2001
From: miepzerino <o.skotnik@gmail.com>
Date: Thu, 14 Dec 2023 22:57:28 +0000
Subject: [PATCH] Added more touching directions

---
 Assets/Scripts/TouchingDirections.cs |   37 +++++++++++++++++++++++++++++++++++++
 1 files changed, 37 insertions(+), 0 deletions(-)

diff --git a/Assets/Scripts/TouchingDirections.cs b/Assets/Scripts/TouchingDirections.cs
index cbf8a60..01e3ab7 100644
--- a/Assets/Scripts/TouchingDirections.cs
+++ b/Assets/Scripts/TouchingDirections.cs
@@ -6,6 +6,10 @@
 {
     public ContactFilter2D castFilter;
     public float groundDistance = 0.05f;
+    public float wallDistance = 0.2f;
+    public float ceilingDistance = 0.05f;
+
+    private Vector2 wallCheckDirection => gameObject.transform.localScale.x > 0 ? Vector2.right : Vector2.left;
 
     Rigidbody2D rb;
     public GameObject rotorGO;
@@ -15,6 +19,8 @@
     Animator animator_rotor;
 
     RaycastHit2D[] groundHits = new RaycastHit2D[5];
+    RaycastHit2D[] wallHits = new RaycastHit2D[5];
+    RaycastHit2D[] ceilingHits = new RaycastHit2D[5];
 
     [SerializeField]
     private bool _isGrounded;
@@ -29,6 +35,35 @@
             animator_rotor.SetBool(AnimationStrings.Player.IsGrounded, value);
         }
     }
+
+    [SerializeField]
+    private bool _isAtWall;
+
+    public bool IsAtWall
+    {
+        get { return _isAtWall; }
+        set
+        {
+            _isAtWall = value;
+            animator.SetBool(AnimationStrings.Player.IsAtWall, value);
+            animator_rotor.SetBool(AnimationStrings.Player.IsAtWall, value);
+        }
+    }
+
+    [SerializeField]
+    private bool _isAtCeiling;
+
+    public bool IsAtCeiling
+    {
+        get { return _isAtCeiling; }
+        set
+        {
+            _isAtCeiling = value;
+            animator.SetBool(AnimationStrings.Player.IsAtCeiling, value);
+            animator_rotor.SetBool(AnimationStrings.Player.IsAtCeiling, value);
+        }
+    }
+
 
 
     void Awake()
@@ -47,5 +82,7 @@
     void FixedUpdate()
     {
         IsGrounded = touchingCol.Cast(Vector2.down, castFilter, groundHits, groundDistance) > 0;
+        IsAtWall = touchingCol.Cast(wallCheckDirection, castFilter, wallHits, wallDistance) > 0;
+        IsAtCeiling = touchingCol.Cast(Vector2.up, castFilter, ceilingHits, ceilingDistance) > 0;
     }
 }

--
Gitblit v1.9.3