Advertisement
Guest User

Untitled

a guest
Nov 17th, 2019
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.63 KB | None | 0 0
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4.  
  5. public class Collision : MonoBehaviour
  6. {
  7. [Header("Layers")]
  8. public LayerMask groundLayer;
  9.  
  10. [Space]
  11.  
  12. public bool onGround;
  13. public bool onWall;
  14. public bool onRightWall;
  15. public bool onLeftWall;
  16. public int wallSide;
  17.  
  18. [Space]
  19.  
  20. [Header("Collisions")]
  21.  
  22. public float collisionRadius = 0.25f;
  23. public Vector2 bottomOffset, rightOffset, leftOffset;
  24. private Color debugCollisionColor = Color.green;
  25.  
  26. void Update()
  27. {
  28. onGround = Physics2D.OverlapCircle((Vector2)transform.position + bottomOffset, collisionRadius, groundLayer);
  29. onWall = Physics2D.OverlapCircle((Vector2)transform.position + rightOffset, collisionRadius, groundLayer)
  30. || Physics2D.OverlapCircle((Vector2)transform.position + leftOffset, collisionRadius, groundLayer);
  31.  
  32. onRightWall = Physics2D.OverlapCircle((Vector2)transform.position + rightOffset, collisionRadius, groundLayer);
  33. onLeftWall = Physics2D.OverlapCircle((Vector2)transform.position + leftOffset, collisionRadius, groundLayer);
  34.  
  35. wallSide = onRightWall ? -1 : 1;
  36. }
  37.  
  38. private void OnDrawGizmos()
  39. {
  40. Gizmos.color = debugCollisionColor;
  41.  
  42. var positions = new Vector2[] { bottomOffset, leftOffset, rightOffset };
  43.  
  44. Gizmos.DrawWireSphere((Vector2)transform.position + bottomOffset, collisionRadius);
  45. Gizmos.DrawWireSphere((Vector2)transform.position + leftOffset, collisionRadius);
  46. Gizmos.DrawWireSphere((Vector2)transform.position + rightOffset, collisionRadius);
  47.  
  48. }
  49. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement