So, I have the basic look around and shoot function, but it only shoots straight. I want it to be able to shoot up and down too, but I don’t know how to do that. Could someone help me out?
Shoot Script:
using UnityEngine;
using System.Collections;
public class Shoot : MonoBehaviour
{
[Range (0, 50)]
public int Change_Despawn_Bullet;
[Range(0, 50)]
public int Bullet_Forward_Force;
[Range(0, 50)]
public int WaitTimeRelaod;
[Range(0, 100)]
public int ClipSize_Number = 12;
[Range(0, 100)]
public int AmmoSize_Number = 36;
public Transform playerTransform;
public float offset = 90;
private GameObject tempGameObject;
public GameObject Bullet;
public GameObject Bullet_Spawner;
private Damage_Heal ammo_clip;
private void Start()
{
ammo_clip = GetComponent<Damage_Heal>();
tempGameObject = new GameObject();
ammo_clip.UpdateAmmo_ClipBar();
ammo_clip.AmmoSize = AmmoSize_Number;
ammo_clip.ClipSize = ClipSize_Number;
if (playerTransform == null)
{
playerTransform = GameObject.FindWithTag("Player").transform;
}
}
public void Update()
{
ammo_clip.UpdateAmmo_ClipBar();
tempGameObject.transform.rotation = transform.rotation;
if (Input.GetKeyDown("r"))
{
StartCoroutine("Reload_Animation");
}
RaycastHit hit = new RaycastHit();
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
if ((Physics.Raycast(ray, out hit)) &&
(Bullet_Spawner != null) &&
(Bullet != null) &&
(ammo_clip != null) &&
(ammo_clip.ClipSize > 0) &&
(Input.GetButtonDown("Fire1")))
{
Gun_Controll(hit);
}
}
IEnumerator Reload_Animation()
{
while ((ammo_clip != null) && ammo_clip.ClipSize >= 0 && ammo_clip.ClipSize < 12 && ammo_clip.AmmoSize > 0)
{
yield return new WaitForSeconds(WaitTimeRelaod);
ammo_clip.AmmoSize -= 1;
ammo_clip.ClipSize += 1;
ammo_clip.UpdateAmmo_ClipBar();
}
}
public void Gun_Controll(RaycastHit hit)
{
GameObject Temporary_Bullet_Handler;
Temporary_Bullet_Handler = Instantiate(Bullet, Bullet_Spawner.transform.position, Bullet_Spawner.transform.rotation) as GameObject;
Temporary_Bullet_Handler.transform.Rotate(Vector3.left * 90);
Rigidbody Temporary_RigidBody;
Temporary_RigidBody = Temporary_Bullet_Handler.GetComponent<Rigidbody>();
Temporary_RigidBody.AddForce(tempGameObject.transform.forward * Bullet_Forward_Force * 100);
Destroy(Temporary_Bullet_Handler, Change_Despawn_Bullet);
ammo_clip.ClipSize -= 1;
ammo_clip.UpdateAmmo_ClipBar();
}
}