Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 14 Next capture
2021 2022 2023
2 captures
12 Jun 22 - 14 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 /
avatar image
0
Question by cjjacobs97 · Oct 04, 2017 at 08:13 PM · c#unity 5raycastphysics2d

Physics 2D Raycast is not working

I have a basic enemy that is supposed to move towards the player when the raycaster collides with the player. I have been at it for a couple of days and cannot figure out what I am doing wrong. Here is the code I have written.

void Update () { RaycastHit2D hit = Physics2D.Raycast (transform.position, transform.localScale.x * Vector2.right, sight); if(hit.collider != null && hit.collider.tag == "character"){ GetComponent ().AddForce(Vector3.up*force + (hit.collider.transform.position-transform.position)*force); Debug.Log ("Player nearby");

 }
 
 }

The debug log is not doing anything either and no matter what I change the tag to or if I even take the tag off it is not doing anything. Any help at all would be greatly appreciated!

Comment
Add comment · Show 1
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
avatar image BlakeSchreurs · Oct 04, 2017 at 08:28 PM 0
Share

First thing I ask any raycasting question: Does your player have a collider on it and active?

3 Replies

· Add your reply
  • Sort: 
avatar image
0

Answer by cjjacobs97 · Oct 05, 2017 at 04:12 AM

Yes, I have a collider on it and it is active. My player walks around and collides with the ground and other triggers, but the raycast coming off of this enemy is not detecting the player. I tried setting the tag to a different object and it detected that, but no matter what I have tried it will not detect my character.

Comment
Add comment · Share
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
avatar image
0

Answer by Tu-Le · Oct 05, 2017 at 04:46 AM

there are very many reasons that can make raycast not work as you wish, you should:

1st Debug when Hit.collider not null the name of hit.collider.gameobject

2nd, Check the position of Enemy on Editor, maybe it's lower than Player Collider

3rd, you use vector2.right as direction, you can try ignore local Scale, only vector2.right and watch if its work? (im afraid something local scale x not = 1).

4th, you should use layerMask for only find Player, the raycast only find 1 Hit, the nearest hit, that mean if the nearest hit not have Tag == Player, youre fail

in case you wanna find many Hit, use raycastall

Comment
Add comment · Show 4 · Share
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
avatar image cjjacobs97 · Oct 05, 2017 at 05:35 AM 0
Share

I debugged and nothing happens. If I change the tag to a ceratain other object it does debug though. I am using OnDrawGizmos so I can see my raycast and it is indeed touching the player. I got rid of the local scale and nothing happened still. Here is my code now witht he layer mask.

void Update () {

     RaycastHit2D hit = Physics2D.Raycast (transform.position, Vector2.right, sight,  Layer$$anonymous$$ask.NameToLayer ("player"));
 if(hit.collider != null && hit.collider.tag == "character")
 {
 Debug.Log ("Player Detected");
 GetComponent<Rigidbody2D>().AddForce(Vector3.up*force + (hit.collider.transform.position - transform.position)*force);
 
 }

} Still nothing, but If I check to see if the object is equal to null I get a null reference exception as soon as the game starts up.

avatar image Tu-Le · Oct 05, 2017 at 06:42 AM 0
Share

your code easy work for me :) check your setup project

image : https://imgur.com/a/Hws9O

avatar image cjjacobs97 Tu-Le · Oct 05, 2017 at 06:42 PM 0
Share

Ok, so I found out that if I start the game witht he player in the same position as the enemy it detects it, but once it moves out of the way it doesnt detect it again and if I start away from the enemy and walk to where it is standing it still does not detect it. I have tried loading into another scene and deleting everything except the character and enemy with no luck still

avatar image cjjacobs97 Tu-Le · Oct 06, 2017 at 12:24 AM 0
Share

Ok so I have found out why it is not working. I have colliders in each room of my game that act as camera bounds. If I delete the camera bounds or move them away from the enemy the raycast works. The colliders are not even on the same layer, but regardless of whether or not I select trigger or collider it stops the raycast from detecting the player. Here is the code I tried, but this stops detecting the player even if the collider is not there. void Update{

RaycastHit2D hit = Physics2D.Raycast (transform.position, transform.localScale.x * Vector2.right, sight, Layer$$anonymous$$ask.NameToLayer ("player"));

 if(hit.collider!= null && hit.collider.tag == "character"){

 Debug.Log("Player Detected");
         GetComponent<Rigidbody2D>().AddForce(Vector3.up*force + (hit.collider.transform.position - transform.position)*force);
     
 }
avatar image
0

Answer by Content1of_akind · Apr 21, 2019 at 09:16 PM

If you click the output icon, then your print, debug.log etc... Should show on the Console Output Window. Window > General > Console. I hope this would help cause this solved my issue with raycast not displaying on Console Window. Console Window: Output Icon(Exclamation Point inside a dialog bubble)


console-output-example.png (15.7 kB)
Comment
Add comment · Share
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

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

437 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 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 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 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

Change Transparency 1 Answer

Need help with OnUse() script! 1 Answer

Want to move object slowly to where the mouse clicks? 1 Answer

Break Block Like Minectaft 2 Answers

Unity android screen resolution 1 Answer


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