• 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
Question by army666 · Dec 21, 2018 at 06:36 AM · c#fpsaiminggun script

how to make bullet go straight to middle of the screen

Hello, i know t$$anonymous$$s question has been asked before, but non of those answers solved my problem, so i decided to ask myself.

i want the bullet to go straight to middle of the screen where my crosshair is. i set the crosshair to middle of the screen using Screen.width / 2 and Screen.height / 2

and i wrote t$$anonymous$$s line of code to instantiate the bullet when firing

 var bullet = Instantiate(_bulletPrefab, _bulletEmitter.transform.position, _bulletEmitter.transform.rotation);

_bulletPrefab is a bullet prefab _bulletEmitter is a place holder, where the bullet should be created at, right in front of the gun

and i use t$$anonymous$$s line of code to move the bullet

 bullet.GetComponent<Rigidbody>().velocity = bullet.transform.right * 10

the _bulletEmitter might be a problem, maybe it's not pointing to middle of the screen but how do i know?? it's not just about human eyes, from what i see 1 pixel can make a difference to where the bullet is going, and to my eyes the emitter is pointing to middle of the screen.

what seems to be the problem here ?

can i tell the bullet to go to Screen.width and height / 2 no matter where the emitter is pointing at in my c# script ?

please tell me your ideas and tips thank you so much for reading my question

Comment
lsugzdinis

People who like this

1 Show 0
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

3 Replies

· Add your reply
  • Sort: 
avatar image
Best Answer

Answer by Hellium · Dec 21, 2018 at 07:02 AM

 // Drag & drop the main camera in the inspector
 public Camera Camera;
 
 private void Shoot()
 {
      // Create a ray from the camera going through the middle of your screen
     Ray ray = Camera.ViewportPointToRay(new Vector3(0.5F, 0.5F, 0));
     RaycastHit $$anonymous$$t ;

     // Check whether your are pointing to somet$$anonymous$$ng so as to adjust the direction
     Vector3 targetPoint ;
     if (Physics.Raycast(ray, out $$anonymous$$t))
         targetPoint = $$anonymous$$t.point;
     else
         targetPoint = ray.GetPoint( 1000 ) ; // You may need to change t$$anonymous$$s value according to your needs

     // Create the bullet and give it a velocity according to the target point computed before
     var bullet = Instantiate(_bulletPrefab, _bulletEmitter.transform.position, _bulletEmitter.transform.rotation);
     bullet.GetComponent<Rigidbody>().velocity = ( targetPoint - _bulletEmitter.transform.position ).normalized * 10
 }


 
Comment
army666
diegodimap
lsugzdinis
Thrower220

People who like this

4 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 army666 · Dec 21, 2018 at 12:09 PM 0
Share

hello, thanks for the answer. what is that out hit part ?

avatar image Hellium army666 · Dec 21, 2018 at 01:11 PM 1
Share

The out keyword gives the possibility to the Raycast function to store information about the "collision" into the variable hit (which I forgot to declare, I will fix the code)

avatar image

Answer by toddisarockstar · Dec 21, 2018 at 07:06 AM

First of all never use devision unless you have to when programing. depending on the CPU its estimated that multiplication is 4 - 10 times faster than devision depending on the CPU. Proficiency is a good habit in game development so it should be Screenwidth * .5f instead of dividing by two.

anyways, screen position and world position are two entirely different t$$anonymous$$ngs so you need special conversions. you can do a raycast into the scene with a screen position. here is a raycast from the mouse position but you could replace the mouse position with a screen coordinate:

link text

there is also t$$anonymous$$s option: link text

Comment
army666

People who like this

1 Show 1 · 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 army666 · Dec 22, 2018 at 01:30 PM 0
Share

thank you my man, great answer.

avatar image

Answer by army666 · Dec 22, 2018 at 02:46 PM

i finally solved my problem, so i write what i did to fix it, in order to help other people who may have same issue.

the main problem was because my crosshair wasn't in exact middle of the screen, after 2 days of trying and trying i decided to take an screen shot and check to see w$$anonymous$$ch one is not centered crosshair or the bullet, and yes it was crosshair.

i worked on my crosshair code and image file and found out that when i use GUI.DrawTexture(new Rect(Screen.width * 0.5f, Screen.height * 0.5f , 15f, 15f, _crossHair); unity puts the crosshair image in exact center of the screen but in fact, the left edge and upper edge of the image will be in center of the screen, but what i wanted was to put the center of the crosshair in center of the screen. so i changed my code to:

 [SerializeField] private Texture2D _crossHair;
 [SerializeField] private float _crossHairWidth;
 [SerializeField] private float _crossHairHeight;
 
 
 private void OnGUI() {
 
         GUI.DrawTexture(new Rect((Screen.width * 0.5f) - (_crossHairWidth * 0.5f)
        ,(Screen.height * 0.5f) - (_crossHairHeight  * 0.5f)
             , _crossHairWidth, _crossHairHeight), _crossHair);
         
     }

i hope it makes sense and helps someone.

Comment

People who like this

0 Show 0 · 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.

Welcome to Unity Answers

If you’re new to Unity Answers, please check our User Guide to help you navigate through our website and refer to our FAQ for more information.

Before posting, make sure to check out our Knowledge Base for commonly asked Unity questions.

Check our Moderator Guidelines if you’re a new moderator and want to work together in an effort to improve Unity Answers and support our users.

Follow this Question

Answers Answers and Comments

644 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 avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image 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

How can I teleport the player when a bonus level timer runs out? 0 Answers

Need Help Fixing Camera 0 Answers

What is the standard direction of a character relative to its own axis? 1 Answer

Shooting exactly to the center of screen 0 Answers

Partial synchronization of camera with the bone of the head or other object 0 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