Posted on 16 Aug 2022, this text provides information on Bugs & Fixes related to General Tech. Please note that while accuracy is prioritized, the data presented might not be entirely correct or up-to-date. This information is offered for general knowledge and informational purposes only, and should not be considered as a substitute for professional advice.
The issue with my code is that the bullets will basically spill out of the player object but i cannot get them to shoot directly forward to hit the obstacles. Instead, as the player rolls each direction, the bullets come out the same set vector which is not what i want. I'd like the bullets to shoot along the x-axis only while instead, they shoot out of all sides depending on how the player rolls.
I've tried changing the bullet rotation and force, in the case that the bullet force altered the player direction and momentum. That failed so i removed the players forward force to test, and still no progress.
using UnityEngine;publicclassPlayerMovement:MonoBehaviour{publicRigidbody rb;publicfloat backwardForce =-60f;publicfloat forwardForce =100f;publicfloat sidewaysForce =1f;// Start is called before the first frame updatevoidStart(){
rb.AddForce(0,100,200);}// Update is called once per framevoidFixedUpdate(){//Movement force
rb.AddForce(0,0,50.0f*Time.deltaTime);if(Input.GetKey("a")){
rb.AddForce(-sidewaysForce *Time.deltaTime,0,0,ForceMode.VelocityChange);}elseif(Input.GetKey("d")){
rb.AddForce(sidewaysForce *Time.deltaTime,0,0,ForceMode.VelocityChange);}elseif(Input.GetKey("w")){
rb.AddForce(forwardForce *Time.deltaTime,0,0,ForceMode.Force);}elseif(Input.GetKey("s")){
rb.AddForce(backwardForce *Time.deltaTime,0,0,ForceMode.Force);}/*switch (Input.GetKeyDown())
{
// case Input.GetKeyDown("a"):
//a: rb.AddForce(sidewaysForce * Time.deltaTime, 0, 0);
}
}
}
publicclassBulletShoot:MonoBehaviour{//Reference to bullet emitterpublicGameObjectBullet_Emitter;//Reference to bullet prefabpublicGameObjectBullet;//Forward force of bulletpublicfloatBullet_Force;// = 10.0f;// Start is called before the first frame updatevoidStart(){}// Update is called once per framevoidUpdate(){//When "Space" key is pressed..if(Input.GetKey(
No matter what stage you're at in your education or career, TuteeHUB will help you reach the next level that
you're aiming for. Simply,Choose a subject/topic and get started in self-paced practice
sessions to improve your knowledge and scores.
manpreet
Best Answer
2 years ago
The issue with my code is that the bullets will basically spill out of the player object but i cannot get them to shoot directly forward to hit the obstacles. Instead, as the player rolls each direction, the bullets come out the same set vector which is not what i want. I'd like the bullets to shoot along the x-axis only while instead, they shoot out of all sides depending on how the player rolls.
I've tried changing the bullet rotation and force, in the case that the bullet force altered the player direction and momentum. That failed so i removed the players forward force to test, and still no progress.