Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 13 Next capture
2021 2022 2023
1 capture
13 Jun 22 - 13 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 samz · Jul 04, 2013 at 11:25 AM · raycastbulletshoot

Shoot with ray cast angle

My enemy is raycasting towards my player. The ray cast script is on a child gameObject of the enemy which is not rendered and it is rotating on the z axis depending on where the player is. This lets the raycast follow the player.

ok now my question is....when the raycast hits the player it shoots bullets. But i cant seem to make the bullet shoot at an angle, for example is the player is infront on the enemy but a little higher up, the enemy should look up (which it does) and shoot so the bullet goes towards the player. But the bullet just goes straight.

Heres my code which is called in the update function

 function Shoot()
 {
     dir = transform.TransformDirection(Vector3.right);
     
     // SHOOT BULLET AT AN ANGLE
     if ( Physics.Raycast (transform.position, dir, hit, distance) ) 
     {
             
         if(hit.collider.tag == "Player")
         {
             var newForce = hit.point * -speed;
             print(hit.point);
             
             Debug.DrawLine(transform.position, hit.transform.position, Color.green); 
             
             if( shootFire )
             {
                 shootFire = false;
             
                 var clone = Instantiate( projectile, transform.position, Quaternion.Euler(0,0,90) );
                 
                 clone.rigidbody.AddForce(newForce);
                 
                 projectile.transform.FindChild("CFXM_DoubleFlameB").particleSystem.Play();
                 
                 Destroy( clone.gameObject, 10 );
             
                 yield WaitForSeconds(2);
                 shootFire = true;
             }
         }
     }
 }
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

1 Reply

· Add your reply
  • Sort: 
avatar image
0

Answer by markpdolby · Jul 04, 2013 at 12:20 PM

You need to get the direction vector from the current position to the player's position, you can do this by doing hit.point - transform.position so in your code you would do:

var newForce = (hit.point - transform.position) * -speed;

and see if that works.

Comment
Add comment · Show 2 · 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 samz · Jul 04, 2013 at 12:59 PM 0
Share

unfortunately no...it still travels in a 180' angle as apposed to diagonal :(

avatar image samz · Jul 04, 2013 at 05:33 PM 0
Share

anybody???

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

16 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

Related Questions

Bullet Effect 2 Answers

shooting problem with raycasting 1 Answer

Need a script for a gun that shoots bullet using raycast 2 Answers

Ray curve for bullet gravity effect, or any way to make it 1 Answer

Raycast shooting problems 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