• 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 jhartman1 · Dec 08, 2017 at 08:10 AM · c#2d-platformerprojectile

Cant get my projectile to fire to the left

I'm creating a platform game and I manage to get a projectile to fire to the right but now I cant get it to fire left I have 4 scripts to manage the projectile

The player script: public LevelManager levelManager; //how fast the spider moves [SerializeField] public float MoveSpeed = 4f;
private Transform myTransform; // reference to the object's transform

 float previousPositionX;
 public float jumpPower;
 bool grounded = false;
 public Projectile Bullet;
 //rate of fire
 [SerializeField]
 public float FireRate = 0.5f;
 //time since last shot
 private float FireTimer = 0.0f;
 [SerializeField]
 WeaponsContoller myWeapon;
 [SerializeField]
 int MaxLives = 1;
 //The current lives remaining for the player
 private int CurLives =1; 

 private SpriteRenderer mySpriteRenderer;
 // Use this for initialization
 void Start () {
     myTransform = transform;
     previousPositionX = myTransform.position.x;
     mySpriteRenderer = GetComponent<SpriteRenderer> ();
     myWeapon = GetComponentInChildren<WeaponsContoller> ();
 }

 // FixedUpdate is called once per physics tick/frame
 void Update () {
     Rigidbody2D rb2d = gameObject.GetComponent<Rigidbody2D>();

     if (Input.GetKey (KeyCode.RightArrow)) 
     {
         Vector3 position = this.transform.position;
         position.x++;
         this.transform.position = position;
         mySpriteRenderer.flipX= false;
     }
     if (Input.GetKey (KeyCode.LeftArrow)) 
     {
         Vector3 position = this.transform.position;
         position.x--;
         this.transform.position = position;
         mySpriteRenderer.flipX = true;
     }

     if (Input.GetKey (KeyCode.Space)) {
         if (grounded) {
             GetComponent<Rigidbody2D> ().velocity = new Vector2 (GetComponent<Rigidbody2D> ().velocity.x, jumpPower);
             //Bottom code causes delay jump, sorta like glide, could be useful for gliding feature
             //GetComponent<Rigidbody2D> ().position= new Vector2 (GetComponent<Rigidbody2D> ().position.x, MoveSpeed );
         }
     }
     if (Input.GetKey (KeyCode.B)) {
         Vector3 position = this.transform.position;
         position.x++;
         this.transform.position = position;
     } 
     else if (Input.GetKey (KeyCode.B & KeyCode.LeftArrow)) {
         Vector3 position = this.transform.position;
         position.x--;
         this.transform.position = position;
     } 
     
 }
 void UpdateFiring()
 {
     // Accumualte time each frame. When the fire key is pressed, we check if enough time has passed.
     FireTimer += Time.deltaTime;

     //Detect if the fire button has been pressed.
     if (Input.GetKeyDown(KeyCode.F))
         Debug.Log("button was hit");
     {
         // Has the Fire timer exceeded the amount of time between the spawning of projectiles?
         if (FireTimer > FireRate)
         {
             //Reset the timre so it will start counting from scratch for the next shot.
             FireTimer = 0;

             //Call the function which handles the spawning of projectiles.
             DoWeaponFire();

             print("The fire button has been pressed!");
         }
     }
 }
 //check if grounded
 void OnTriggerEnter2D(Collider2D col)
 {
     grounded = true;    
     if (col.gameObject.tag == "Enemy") {
         levelManager.RespawnPlayer ();

     }
 }
 void OnTriggerExit2D()
 {
     grounded = false;
 }
 void DoWeaponFire(){
     print ("the \"DoWeaponFire\" function has been called");

     Instantiate (Bullet, transform.position, transform.rotation);
 } 
      
 void LateUpdate()
 {
     previousPositionX = myTransform.position.x;
 }

}

the weapon controller : [SerializeField] public GameObject myBullet;

 [SerializeField]
 //firerate of the multishot
 float fireRate = 0.3f;

 [SerializeField]
 float offset = 0.5f;


 [SerializeField]
 public int maxAmmo = 100;
 public int curAmmo;
  
  
 private Vector3 axis;

 private Vector3 pos;

 // Use this for initialization
 void Start()
 {
     curAmmo = maxAmmo;
 }

 void Update()
 {
     if (Input.GetKeyDown(KeyCode.F))
     {
         InstantiateBullet();
     }
 }

 public void ModUnload()
 {
     curAmmo = 0;
 }

 void InstantiateBullet()
 {
     Instantiate(myBullet,transform.position,Quaternion.identity);
 }

 void InstantiateBullet(Vector3 pos)
 {
     if (curAmmo > 0)
     {
         Instantiate(myBullet, pos, transform.rotation);
         curAmmo--;
     }
 }


 public void ModReload()
 {
     curAmmo = maxAmmo;
 }

 public void SingleFire()
 {
     InstantiateBullet();
 }


Shooting script:

 public Vector3 bulletOffset = new Vector3 (5 , 0, 0);
 public float fire = 1f;
 float cooldown = 0;

 public GameObject bulletPrefab;

 // Update is called once per frame
 void Update () {
     cooldown -= Time.deltaTime;

     if (Input.GetKeyDown(KeyCode.F) && cooldown <= 0) {
         //shoot
         Debug.Log("fire!");
         cooldown = fire;

         Vector3 offset = new Vector3 (1, 0, 0);

         Instantiate (bulletPrefab, transform.position + offset, transform.rotation);

     }
 }

and shooting direction:

 public float fullSpeed = 5f;
  
 // Update is called once per frame
 void Update () {
     Vector3 pos = transform.right;
     pos.x +=  fullSpeed * Time.deltaTime;
     transform.position = pos;

 }
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.

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

424 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

Related Questions

Multiple Cars not working 1 Answer

Distribute terrain in zones 3 Answers

My script for movinfg character in 2D dosen't work. 1 Answer

Double jump 2D Platformer 1 Answer

2D multi touch 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