Question by
Get_me_outOf_here · May 16 at 11:11 PM ·
mouseshooter
Mouse sensitivity breaking some how
In my code, which not using camera movement is an error, that break multiply sensitivity in large amount.
I have no idea, where is the issue;
Code:
using UnityEngine;
using TMPro;
public class GunSystem : MonoBehaviour
{
//Gun stats
public int damage;
public float timeBetweenShooting, spread, range, reloadTime, timeBetweenShots;
public int magazineSize, bulletsPerTap;
public bool allowButtonHold;
int bulletsLeft, bulletsShot;
private bool isAiming;
float currentSpread;
//bools
bool shooting, readyToShoot;
[HideInInspector]
public bool reloading;
//aiming
public float speedDebuffer = 3f;
public Transform aimPos;
// -0.213 0.105 -0.27
//Reference
public Transform fpsCam;
public Transform attackPoint;
public RaycastHit rayHit;
//Graphics
public GameObject muzzleFlash, bulletHoleGraphic;
//public CamShake camShake;
//public float camShakeMagnitude, camShakeDuration;
public TextMeshProUGUI text;
public Animator animator;
public string shootSoundName;
bool wasActive;
private void Awake()
{
bulletsLeft = magazineSize;
readyToShoot = true;
}
private void Update()
{
if(gameObject.activeSelf == true && wasActive == false)
{
animator.Play("Standart");
}
MyInput();
//SetText
text.SetText(bulletsLeft + " / " + magazineSize);
}
private void LateUpdate()
{
wasActive = gameObject.activeSelf;
}
private void MyInput()
{
if (allowButtonHold) shooting = Input.GetKey(KeyCode.Mouse0);
else shooting = Input.GetKeyDown(KeyCode.Mouse0);
if (Input.GetKeyDown(KeyCode.R) && bulletsLeft < magazineSize && !reloading) Reload();
//Shoot
if (readyToShoot && shooting && !reloading && bulletsLeft > 0){
bulletsShot = bulletsPerTap;
Shoot();
}
if (Input.GetMouseButtonDown(1))
{
isAiming = true;
//transform.rotation = aimPos.rotation;
transform.Translate(aimPos.localPosition);
}
else if(Input.GetMouseButtonUp(1))
{
isAiming = false;
transform.Translate(aimPos.localPosition.x * -1, aimPos.localPosition.y * -1, aimPos.localPosition.z * -1); ;
transform.Translate(transform.localPosition.x * -1, transform.localPosition.y * -1, transform.localPosition.z * -1);
}
if (isAiming)
{
FindObjectOfType<SimpleRecoil>().currentRecoilUp.x = -1f;
FindObjectOfType<PlayerMovement>().debuffed = true;
FindObjectOfType<PlayerMovement>().debuffSpeed = speedDebuffer;
currentSpread = 0.02f;
}
else
{
FindObjectOfType<SimpleRecoil>().currentRecoilUp = FindObjectOfType<SimpleRecoil>().recoilUp;
FindObjectOfType<PlayerMovement>().debuffed = false;
currentSpread = spread;
}
}
private void Shoot()
{
FindObjectOfType<AudioManager>().Play(shootSoundName);
FindObjectOfType<SimpleRecoil>().AddRecoil();
readyToShoot = false;
//Spread
float x = Random.Range(-currentSpread, currentSpread);
float y = Random.Range(-currentSpread, currentSpread);
//Calculate Direction with Spread
Vector3 direction = fpsCam.transform.forward + new Vector3(x, y, 0);
//RayCast
if (Physics.Raycast(fpsCam.transform.position, direction, out rayHit, range))
{
if (rayHit.collider.GetComponent<HealthScript>() == true)
{
rayHit.collider.GetComponent<HealthScript>().TakeDamage(damage);
}
else
{
Instantiate(bulletHoleGraphic, rayHit.point, Quaternion.LookRotation(rayHit.normal));
}
}
//ShakeCamera
//camShake.Shake(camShakeDuration, camShakeMagnitude);
//Graphics
Instantiate(muzzleFlash, attackPoint.position, Quaternion.identity);
bulletsLeft--;
bulletsShot--;
Invoke("ResetShot", timeBetweenShooting);
if(bulletsShot > 0 && bulletsLeft > 0)
{
Invoke("Shoot", timeBetweenShots);
}
}
private void ResetShot()
{
readyToShoot = true;
}
private void Reload()
{
reloading = true;
animator.SetTrigger("HideWeapon");
Invoke("ReloadFinished", reloadTime);
}
private void ReloadFinished()
{
FindObjectOfType<AudioManager>().Play("Reload");
animator.SetBool("GetWeapon", true);
bulletsLeft = magazineSize;
reloading = false;
}
}
Comment
Your answer
Follow this Question
Related Questions
Event on mouse up 2 Answers
Confine mouse to a plane 1 Answer
Mouse Click Plays an Animation 1 Answer
Mouse-Keyboard Not Working - New User 1 Answer
Mouse Issues 1 Answer