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 buzgata · Feb 07, 2018 at 12:26 AM · raycastbulletsidescrollertransform.forwardside-scrolling

Really need some help with my bullets firing opposite and not following rotation.

Hi, I've posted this before. I have a script that shoots my bullets backwards (please look at attached GIF to see what happens). I think it's because transform.forward is meant to be used in first-person games, not side scrolling shooters. I was thinking of trying the Raycast method to make the bullets follow the Raycast but I was thinking maybe a small change in code might help. The cannon rotates too so I need the bullets to fly straight to the right while following rotation. Thanks so much for your help, this has been killing me for months!!! Here's the Code and GIF.

https://1drv.ms/i/s!AmyWRzQWVcyPg4QBP8AUzSWWS2FHrg

 using UnityEngine;
 using System.Collections;
 
 public class Bullet : MonoBehaviour {
     public float CannonSpeed;
     public GameObject bulletSpawn;
     public GameObject bulletInstance;
     public float Bullet_Forward_Force;
     public float bulletTimer;
     public float minAngle, maxAngle;
 
     // Use this for initialization
     void Start () {
     
     }
 
     Quaternion ClampRotationAroundXAxis(Quaternion q, float min, float max)
 
 {
         q.x /= q.w;
         q.y /= q.w;
         q.z /= q.w;
         q.w = 1.0f;
 
         float angleX = 2.0f * Mathf.Rad2Deg * Mathf.Atan(q.x);
         angleX = Mathf.Clamp(angleX, min, max);
         q.x = Mathf.Tan(0.5f * Mathf.Deg2Rad * angleX);
         return q;
     }
     
     // Update is called once per frame
     void Update () {
 
     transform.rotation = ClampRotationAroundXAxis(transform.rotation, minAngle, maxAngle);
 
         if (Input.GetKey (KeyCode.Q)) 
 
         {
             transform.Rotate(Vector3.left * Time.deltaTime * CannonSpeed);
         }
 
 
 
 
 
 
         if (Input.GetKey (KeyCode.A))
 
         {
             transform.Rotate(Vector3.right * Time.deltaTime * CannonSpeed);
         }
 
 
 
         bulletTimer -= Time.deltaTime;
         if (bulletTimer <=0){
 
             bulletTimer = 0;
         }
     
         if (Input.GetKey(KeyCode.Tab) && bulletTimer == 0)
             
         {
             GameObject Temporary_Bullet_Handler;
             Temporary_Bullet_Handler = Instantiate(bulletInstance,bulletSpawn.transform.position,bulletSpawn.transform.rotation) as GameObject;
             bulletTimer = 0.2f;
             //Sometimes bullets may appear rotated incorrectly due to the way its pivot was set from the original modeling package.
             //This is EASILY corrected here, you might have to rotate it from a different axis and or angle based on your particular mesh.
             Temporary_Bullet_Handler.transform.Rotate(Vector3.left * 90);
 
             //Retrieve the Rigidbody component from the instantiated Bullet and control it.
             Rigidbody Temporary_RigidBody;
             Temporary_RigidBody = Temporary_Bullet_Handler.GetComponent<Rigidbody>();
 
             //Tell the bullet to be "pushed" forward by an amount set by Bullet_Forward_Force.
             Temporary_RigidBody.AddForce(transform.forward * Bullet_Forward_Force);
 
             //Basic Clean Up, set the Bullets to self destruct after 10 Seconds, I am being VERY generous here, normally 3 seconds is plenty.
             Destroy(Temporary_Bullet_Handler, 4.0f);
 
         }
     
     }
 }
  

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

104 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

Related Questions

Why is my Player slowing down between two Tilemap Colliders? 1 Answer

How can I create Raycast bullet innaccuracy as a cone? 2 Answers

How do you make bullet Spread? 0 Answers

Can't get raycast to mousePosition 0 Answers

Can some one help me with how the physics are effected when i break the for loop in bullet penetration 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