From 8139cd89a52559cdd906cd5866dcc55dbd7003a7 Mon Sep 17 00:00:00 2001
From: miepzerino <o.skotnik@gmail.com>
Date: Fri, 15 Dec 2023 20:14:49 +0000
Subject: [PATCH] Merge branch 'release/v_0.0.1'
---
Assets/Scripts/TouchingDirections.cs | 88 ++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 88 insertions(+), 0 deletions(-)
diff --git a/Assets/Scripts/TouchingDirections.cs b/Assets/Scripts/TouchingDirections.cs
new file mode 100644
index 0000000..4a26280
--- /dev/null
+++ b/Assets/Scripts/TouchingDirections.cs
@@ -0,0 +1,88 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+public class TouchingDirections : MonoBehaviour
+{
+ 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;
+
+ BoxCollider2D touchingCol;
+ Animator animator;
+ Animator animator_rotor;
+
+ RaycastHit2D[] groundHits = new RaycastHit2D[5];
+ RaycastHit2D[] wallHits = new RaycastHit2D[5];
+ RaycastHit2D[] ceilingHits = new RaycastHit2D[5];
+
+ [SerializeField]
+ private bool _isGrounded;
+
+ public bool IsGrounded
+ {
+ get { return _isGrounded; }
+ set
+ {
+ _isGrounded = value;
+ animator.SetBool(AnimationStrings.Player.isGrounded, value);
+ 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()
+ {
+ rb = GetComponent<Rigidbody2D>();
+ touchingCol = rb.GetComponent<BoxCollider2D>();
+ animator = rb.GetComponent<Animator>();
+ animator_rotor = rotorGO.GetComponent<Animator>();
+ }
+ // Start is called before the first frame update
+ void Start()
+ {
+
+ }
+
+ 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.10.0