- Home /
Unity 2D Shoot towards mouse position
Does anyone know a easy answer to shoot at mouse position? Thanks!
Hi, if you google “Shoot to mouse position” you find some good examples. Here is a good solution I found: https://answers.unity.com/questions/513772/how-to-shoot-a-bullet-to-curser-position.html
Answer by someguywithamouse · May 31, 2018 at 01:37 PM
If you're talking about a top-down shooter or platformer, then just FYI I was wondering the same thing.
Here's my idea. I haven't tested it myself so you may need to change it up a bit:
My guess is to start by using the PointerEventData.position() property. Write a script to do the following when the shoot keybind is pressed:
Spawn the bullet at the location of the player. If you want it to fire from the barrel of an item the character/vehicle is holding, you can perform a calculation based on the player position and where the end of the barrel or firing end is relative to the player DO NOT spawn the bullet as a child object. If you do, it will follow the player's movement and they can control it in mid-air. Not good.
Immediately after the projectile is spawned, tell it to go towards a certain position; in this case, whatever the value of PointerEventData.position() is. You can use Unity's built-in methods of doing this, however Lerp and other methods it offers may not be the best option for this type of movement, from my experience. If possible you could maybe try attaching a script/behavior that moves the bullet towards/away from the X and Y axis a certain amount each frame. Maybe assign a list variable to each one to represent the velocity, and depending on the name or instance of the bullet spawned you can make the script choose a certain velocity in memory.
For example: If the mouse is facing North-east from the player's position, then we can tell the bullet to jump by 5 on the X axis and 5 on the Y axis each frame. If it were to be southward of the player, then we can make it go by -10 on Y and 0 on X each frame.
Your answer
Follow this Question
Related Questions
Bullet speed changes depending on how close and far I click the mouse button 2 Answers
Getting 2D projectiles that fire in the direction of the mouse position to work in unity 5? 0 Answers
Trying to make an enemy fire at the player 1 Answer
How can I fix this randomly rotating gun to an unknown degrees? 1 Answer