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 /
  • Help Room /
avatar image
0
Question by MunchinBen · May 26, 2020 at 04:14 PM · 2d gamestrange ioctop down shooterhorizontalgun script

HELP 2D Top Down Shooter Bullets Only go Horizontal

I have been looking at tutorials and looking on forms but I can't either find someone with the same problem or a solution to it. I am trying to make a 2D Top down shooter but when I fire the gun the bullet only moves horizontally. Also if you shoot straight up or straight down the bullet speeds are the fastest. When it is gun is diagonal it has little to no speed. Also the bullets are not appearing on the screen/game they are only appearing in the scene. They only appear in the game in Attempt 2 (labeled in the code.)

Here is my GunCode that can either be attached to a gun held by the player or on the player making them move:

 using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
 
 public class GunCode : MonoBehaviour
 {
     public Transform gunPoint;
     public GameObject bulletPreFab;
     public float bulletSpeed = 20f;
     public float bulletRangeSec = 2f;
 
     // Update is called once per frame
     void Update()
     {
         LookMouse();
         if(Input.GetButtonDown("Fire1"))
         {
             Shoot();
         }
     }
 
     void LookMouse()
     {
         
         //Grabs the position of the mouse in a Vector3
         Vector3 mousePos = Input.mousePosition;
         //Makes it so the psoition is relative the the mouse in the world and not anywhere on the screen
         mousePos = Camera.main.ScreenToWorldPoint(mousePos);
         /*Finds the direction by taking the 
          * x/y positions of the mouse and subtracting them from the position of the object
         */
         Vector2 direction = new Vector2(mousePos.x - transform.position.x, mousePos.y - transform.position.y);
         //Changes the transform of the object
         transform.right = direction;
     }
 
     //Called when we are shooting
     void Shoot()
     {
         //Grabs the position of the mouse in a Vector3
         Vector3 mousePos = Input.mousePosition;
 
         Debug.Log("Shoot");
         Debug.Log(gunPoint.up);
 
         //Creates the bullet
         GameObject bullet = Instantiate(bulletPreFab, gunPoint.position, gunPoint.rotation);
         //Gets the rigidbody of the gameobject/bullet
         Rigidbody2D rb = bullet.GetComponent<Rigidbody2D>();
         //Adds force to the bullet making it move
 
         //Attempt 1
         rb.AddForce(gunPoint.up * bulletSpeed, ForceMode2D.Impulse);
 
         //Attempt 2
         //bullet.transform.position = Vector2.MoveTowards(bullet.transform.position, mousePos, bulletSpeed * Time.deltaTime);
 
         //Attempt 3
         //rb.velocity = gunPoint.up * bulletSpeed;
 
         //Attempt 4
         //rb.velocity = gunPoint.forward * bulletSpeed;
 
         //Attempt 5
         //rb.velocity = transform.forward * bulletSpeed;
 
         Destroy(bullet, bulletRangeSec);
     }
 }
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

0 Replies

· Add your reply
  • Sort: 

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

235 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

Related Questions

Enemy pathfinding script for a 2D top down shooter game 0 Answers

I am creating 2D top down shooter game but i am stuck at the movement. Help! 1 Answer

2D top down shooter can only aim to the top right (mouse aim) 0 Answers

How do I give my top down game bullet spread? 1 Answer

How to make movement speed decrease for 2D Top-down shooting game? 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