Guest User

BallShadow

a guest
Jan 15th, 2019
150
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.14 KB | None | 0 0
  1. public class BallShadow : MonoBehaviour
  2. {
  3.     [SerializeField]
  4.     private GameObject blobShadow;
  5.     [SerializeField]
  6.     LayerMask hitLayerMask;
  7.  
  8.     private float MAXDISTANCE = 10f;
  9.     private float MAXWIDTH = 0.5f;
  10.     private float MAXHIGHT = 0.2f;
  11.  
  12.     private SpriteRenderer shadowSpr;
  13.  
  14.     void Start()
  15.     {
  16.         shadowSpr = blobShadow.GetComponent<SpriteRenderer>();
  17.     }
  18.  
  19.     // Update is called once per frame
  20.     void Update()
  21.     {
  22.         RaycastHit2D hit = Physics2D.Raycast(transform.position, Vector2.down, Mathf.Infinity, hitLayerMask);
  23.  
  24.         if (hit.collider.CompareTag("ground"))
  25.         {
  26.             blobShadow.transform.position = hit.point;
  27.  
  28.             // DISTANCE AND PERCENT OF MAXDISTANCE
  29.             float distance = Mathf.Abs(hit.point.y - transform.position.y);
  30.             float percent = distance / MAXDISTANCE;
  31.  
  32.             // SHADOW
  33.             blobShadow.transform.localScale = new Vector3(MAXWIDTH - (MAXWIDTH * percent), MAXHIGHT - (MAXHIGHT * percent), 1);
  34.             Color c = Color.black;
  35.             c.a = .5f - .5f * percent;
  36.             shadowSpr.color = c;
  37.         }
  38.     }
  39. }
Advertisement
Add Comment
Please, Sign In to add comment