Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class BallShadow : MonoBehaviour
- {
- [SerializeField]
- private GameObject blobShadow;
- [SerializeField]
- LayerMask hitLayerMask;
- private float MAXDISTANCE = 10f;
- private float MAXWIDTH = 0.5f;
- private float MAXHIGHT = 0.2f;
- private SpriteRenderer shadowSpr;
- void Start()
- {
- shadowSpr = blobShadow.GetComponent<SpriteRenderer>();
- }
- // Update is called once per frame
- void Update()
- {
- RaycastHit2D hit = Physics2D.Raycast(transform.position, Vector2.down, Mathf.Infinity, hitLayerMask);
- if (hit.collider.CompareTag("ground"))
- {
- blobShadow.transform.position = hit.point;
- // DISTANCE AND PERCENT OF MAXDISTANCE
- float distance = Mathf.Abs(hit.point.y - transform.position.y);
- float percent = distance / MAXDISTANCE;
- // SHADOW
- blobShadow.transform.localScale = new Vector3(MAXWIDTH - (MAXWIDTH * percent), MAXHIGHT - (MAXHIGHT * percent), 1);
- Color c = Color.black;
- c.a = .5f - .5f * percent;
- shadowSpr.color = c;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment