Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 12 Next capture
2021 2022 2023
1 capture
12 Jun 22 - 12 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
  • Help Room /
avatar image
0
Question by rfuhrer · Mar 06, 2016 at 07:42 PM · c#raycast2d-platformer

2d project a shadow below the player

I want to create a shadow in my 2d sidescroller game. Just a round circle that is under the players feet. I want the shadow to get more transparent the higher the player jumps.

so what I did is to cast a raycast 2D from the players feet to the ground and I moved it a bit behind the player to prevent the shadow to appear when the player is hanging on a ledge. It works fine so far but sometimes the shadow just keeps sticking on the players feet while jumping. I don't know why that is that way.

It works again when I reset the scene. Sometimes it works for minutes sometimes just for seconds.

Any idea?

 using UnityEngine;
 using System.Collections;
 using PlatformerPro;
 
 public class ShadowRaycast : MonoBehaviour {
 
     public Transform Shadow;
     public Transform Player;
     public float xOffset;
     private Vector2 raycastOrigin;
     /// <summary>
     /// The character reference.
     /// </summary>
     protected IMob animatable;
     public float opacityGrade;
     public SpriteRenderer shadow;
 
 
     /// <summary>
     /// Unity start hook.
     /// </summary>
     void Start()
     {
         // This is not elegant but its a simple and effective way to handle interfaces in Unity
         animatable = (IMob)gameObject.GetComponentInParent (typeof(IMob));
         if (animatable == null) Debug.LogError ("UnitySpriteDirectionFacer can't find the animatable reference");
         }
 
 
     // Update is called once per frame
     void Update () {
             if (animatable.LastFacedDirection == -1) {
             raycastOrigin = this.transform.position + new Vector3 (xOffset, 0f, 0f);
         }
         else raycastOrigin = this.transform.position + new Vector3 (-xOffset, 0f, 0f);
 
     
         RaycastHit2D hit = Physics2D.Raycast(raycastOrigin, -Vector2.up);
         Vector2 yPosition = hit.point;
         float distance = Mathf.Abs(hit.point.y - this.transform.position.y);
         Shadow.transform.position = yPosition; 
   
         if (distance > 6)
             distance = 6;
         
         opacityGrade = (distance/6-1)*-1;
 
         Debug.Log("The opacityGrade is: "+ opacityGrade);
         shadow.color = new Color(1f, 1f, 1f, opacityGrade);
 
     }
 }
 
Comment
Add comment
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

0 Replies

· Add your reply
  • Sort: 

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this Question

Answers Answers and Comments

131 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

Need help making a ledge climber. The problem, transform.position always returns to vector( 0, 0) 0 Answers

Inconsistent Jump Heights 1 Answer

One 2D Raycast Not Stopping Even Though Others Do? 0 Answers

how to check if an object is betwen enemy and player 1 Answer

How can I make a third person camera collision script? 2 Answers


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges