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 EdjofGlory · Apr 09, 2019 at 07:58 AM · collider2d gamephysics2dforce

Game Object is moving towards the left when fire button is pressed.

I'm currently making a Space Invader clone as a practice I used Rigidbody on the ship. The problem that I'm getting is whenever I pressed the fire button the Ship moves towards the left every time it shoots. Choosing Kinematic fixes this, however this ignores the box collider that I placed on to act as a border for the ship.

I know that there are better ways to execute this properly but I'm currently experimenting if there is a way to remove the force.

My question is how can I remove the force being added to the ship?

Code:

 using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
 [RequireComponent(typeof(Rigidbody2D))]
 public class ship_control : MonoBehaviour
 {
     public float moveSpeed;
     private Rigidbody2D ship;
 
     public GameObject shot;
     public Transform shotSpawn;
     public float fireRate;
 
     private float nextFire;
 
     // Start is called before the first frame update
     void Start()
     {
  
         ship = GetComponent<Rigidbody2D>();
         
     }
 
     // Update is called once per frame
     void Update()
     {
         if (Input.GetAxisRaw("Horizontal")>0.5f||Input.GetAxisRaw("Horizontal")<-0.5)
         {
             ship.velocity = new Vector2 (Input.GetAxisRaw("Horizontal") * moveSpeed, ship.velocity.y);
         }
 
         if (Input.GetAxisRaw("Horizontal")<0.5f&&Input.GetAxisRaw("Horizontal")>-0.5)
         {
             ship.velocity = new Vector2(0f, ship.velocity.y);
         }
 
         if (Input.GetButton("Fire1")&&Time.time>nextFire)
         {
            
             nextFire = Time.time + fireRate;
             Instantiate(shot,shotSpawn.position,shotSpawn.rotation);
         }
 
         
 
         
     }
 }
 

Comment
Add comment · Show 1
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 Chris333 · Apr 09, 2019 at 09:07 AM 0
Share

I would advise you to take a look into the 2D shooter tutorial series. It explains exactly how to move, shoot and set boundaries in a proper way. It helped me a lot at the beginning. https://unity3d.com/de/learn/tutorials/projects/space-shooter-tutorial/moving-player?playlist=17147

2 Replies

· Add your reply
  • Sort: 
avatar image
1

Answer by highpockets · Apr 09, 2019 at 08:12 AM

Does your projectile spawn inside the collider of the ship?? Try offsetting the spawn position a bit or scaling down the ship’s collider

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 EdjofGlory · Apr 09, 2019 at 08:45 AM 0
Share

Yes I tried playing with the collider and it does affect the movement, thank you for that hint. How do I change the spawn position of the bullet lets say above the ship? Currently the bullet is spawning inside the ship or in the same layer the ship it's on.

avatar image highpockets EdjofGlory · Apr 09, 2019 at 09:08 AM 0
Share

I’m assu$$anonymous$$g that you are shooting in the forward direction of the ship (the local z/blue axis), depending how far away you want it to spawn. You use the transform.forward which is a normalized (1 unit in length) vector and multiply it by the distance away that you want it to spawn and add that to the transform.position.

Or you can place an empty game object at the exact spot that you want to spawn the bullet and make that a child of your ship, then just spawn at the empty game object’s location. I changed my comment to an answer as it appears that was the issue

avatar image
0

Answer by zakkaiokenx10 · Apr 09, 2019 at 09:10 AM

Make sure your not spawning the bullet inside the ship's collider. saying that youre spawning at a spawnshot gameobject's location, move spawnshot out of the collider of the ship

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

155 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

Related Questions

How do I make a tractor beam affect my player? 2 Answers

How do I make bullets pass through some game objects? 1 Answer

Hitting Collider,Not Being Effected ? 1 Answer

Destroying an object on collide depending on the impulse magnitude. 0 Answers

force trigger to detect at x time 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