From 60aa8e85d058fccb1fa5e3952975d03d99778c6a Mon Sep 17 00:00:00 2001 From: miepzerino <o.skotnik@gmail.com> Date: Wed, 27 Dec 2023 03:44:34 +0000 Subject: [PATCH] Added ironOre + dropable + pickup creation --- Assets/Scripts/TouchingDirections.cs | 64 +++++++++++++++++++++++--------- 1 files changed, 46 insertions(+), 18 deletions(-) diff --git a/Assets/Scripts/TouchingDirections.cs b/Assets/Scripts/TouchingDirections.cs index 01e3ab7..08bf06c 100644 --- a/Assets/Scripts/TouchingDirections.cs +++ b/Assets/Scripts/TouchingDirections.cs @@ -5,22 +5,24 @@ public class TouchingDirections : MonoBehaviour { public ContactFilter2D castFilter; - public float groundDistance = 0.05f; - public float wallDistance = 0.2f; + public float groundDistance = 0.01f; + public float wallDistance = 0.01f; public float ceilingDistance = 0.05f; - private Vector2 wallCheckDirection => gameObject.transform.localScale.x > 0 ? Vector2.right : Vector2.left; + //private Vector2 wallCheckDirection => gameObject.transform.localScale.x > 0 ? Vector2.right : Vector2.left; Rigidbody2D rb; public GameObject rotorGO; BoxCollider2D touchingCol; + //CapsuleCollider2D touchingCol; Animator animator; Animator animator_rotor; - RaycastHit2D[] groundHits = new RaycastHit2D[5]; - RaycastHit2D[] wallHits = new RaycastHit2D[5]; - RaycastHit2D[] ceilingHits = new RaycastHit2D[5]; + public RaycastHit2D[] groundHits = new RaycastHit2D[5]; + public RaycastHit2D[] wallHitsRight = new RaycastHit2D[5]; + public RaycastHit2D[] wallHitsLeft = new RaycastHit2D[5]; + public RaycastHit2D[] ceilingHits = new RaycastHit2D[5]; [SerializeField] private bool _isGrounded; @@ -31,22 +33,35 @@ set { _isGrounded = value; - animator.SetBool(AnimationStrings.Player.IsGrounded, value); - animator_rotor.SetBool(AnimationStrings.Player.IsGrounded, value); + animator.SetBool(AnimationStrings.Player.isGrounded, value); + animator_rotor.SetBool(AnimationStrings.Player.isGrounded, value); } } [SerializeField] - private bool _isAtWall; + private bool _isAtWallLeft; - public bool IsAtWall + public bool IsAtWallLeft { - get { return _isAtWall; } + get { return _isAtWallLeft; } set { - _isAtWall = value; - animator.SetBool(AnimationStrings.Player.IsAtWall, value); - animator_rotor.SetBool(AnimationStrings.Player.IsAtWall, value); + _isAtWallLeft = value; + animator.SetBool(AnimationStrings.Player.isAtWall, value); + animator_rotor.SetBool(AnimationStrings.Player.isAtWall, value); + } + } + [SerializeField] + private bool _isAtWallRight; + + public bool IsAtWallRight + { + get { return _isAtWallRight; } + set + { + _isAtWallRight = value; + animator.SetBool(AnimationStrings.Player.isAtWall, value); + animator_rotor.SetBool(AnimationStrings.Player.isAtWall, value); } } @@ -59,17 +74,24 @@ set { _isAtCeiling = value; - animator.SetBool(AnimationStrings.Player.IsAtCeiling, value); - animator_rotor.SetBool(AnimationStrings.Player.IsAtCeiling, value); + animator.SetBool(AnimationStrings.Player.isAtCeiling, value); + animator_rotor.SetBool(AnimationStrings.Player.isAtCeiling, value); } } - + public bool IsAtWall + { + get + { + return IsAtWallLeft || IsAtWallRight; + } + } void Awake() { rb = GetComponent<Rigidbody2D>(); touchingCol = rb.GetComponent<BoxCollider2D>(); + //touchingCol = rb.GetComponent<CapsuleCollider2D>(); animator = rb.GetComponent<Animator>(); animator_rotor = rotorGO.GetComponent<Animator>(); } @@ -81,8 +103,14 @@ void FixedUpdate() { + + //int contactsAmount = touchingCol.GetContacts(contacts); + //Debug.Log("contactsAmount: " + contactsAmount); IsGrounded = touchingCol.Cast(Vector2.down, castFilter, groundHits, groundDistance) > 0; - IsAtWall = touchingCol.Cast(wallCheckDirection, castFilter, wallHits, wallDistance) > 0; + IsAtWallLeft = touchingCol.Cast(Vector2.left, castFilter, wallHitsLeft, wallDistance) > 0; + IsAtWallRight = touchingCol.Cast(Vector2.right, castFilter, wallHitsRight, wallDistance) > 0; IsAtCeiling = touchingCol.Cast(Vector2.up, castFilter, ceilingHits, ceilingDistance) > 0; } + + //TODO getTileForDrillHere? } -- Gitblit v1.9.3