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 /
avatar image
0
Question by coolbudy1998 · Jul 29, 2018 at 11:49 AM · shootingenemy aiprecision

Enemy AI shoot precision

I have a huge enemy AI measuring 50*50*50 and a player of size 1*1*1. The enemy is shooting but it's raycast rarely hits the player. He is shooting somewhere else. How to maintain the precision and accurateness?? Here is the raycasting script. Where do I need to edit??

void ShootTheTarget() { enemyaudio.Play(); //plays the gunshot audio during gunshot

     RaycastHit enemyhit;                                                           //enemyhit stores info about raycast which hits the target
     if (Physics.Raycast(transform.position, target.position, out enemyhit, 40f))   //actual ray which travels
     {
         //if works if we hit something
         

         Debug.Log(enemyhit.transform.name);
         PlayerTracker playerspotted = enemyhit.transform.GetComponent<PlayerTracker>();        //PlayerScript is Player's script name
                                                                                                //if it hits on player then only if condition is true becoz of this PlayerScript
         if (playerspotted != null )
         {
             Debug.Log(hero.bulletcount);                                       //or playerspotted.bulletcount;
             playerspotted.PlayerDamage(10f);                                   //here target acts as object(reference) of TargetScript
         }
     }
   
 }
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

2 Replies

· Add your reply
  • Sort: 
avatar image
1
Best Answer

Answer by Zarenityx · Jul 29, 2018 at 02:03 PM

I might be misreading your code, but it appears you are trying to send a raycast from transform.position towards target.position?
Physics.Raycast() takes a starting position and a direction to cast the ray. If you are trying to cast a ray from transform.position to target.position, what you want is

 Physics.Raycast(transform.position,(target.position-transform.position), out enemyhit, 40f)

(Note the (target.position-transform.position) here. If using this far from the origin, you might want to normalize this as well. This is the direction from transform.position to target.position, and is what you should be passing to your raycast).

Additionally, if you are trying to hit the player a certain percentage of the time, have you considered using specifically the direction of the player a certain percentage of the time, and the rest of the time choosing another random direction? It might simplify things and would feel more consistent to your players.

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 coolbudy1998 · Jul 29, 2018 at 03:11 PM

It worked perfectly!! Thanks man!

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

89 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

Related Questions

Enemy Shooting In wrong Direction. 2 Answers

get enemy to chase and shoot at player wherever hes facing. 0 Answers

Make AI Shoot at Player 0 Answers

How do I make the enemy stop walking and shoot the player? 1 Answer

Trying to make an enemy fire at the player 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