- Home /
Chambering new round script not working
I'm currently working on a VR shooter and I'm going to have players chamber a new round by pulling back on the slide until it hits a certain position (by using Mathf.Clamp) and for whatever reason it doesn't seem to work on some guns. Like for my pistol I have the following values:
pos1 = 0 pos2 = 0.03 yClamp = 0 zClamp = -0.07574002 weapon = 1
And for my assault rifle I have:
pos1 = -0.01925273 pos2 = -0.01352 yClamp = 0.001681065 zClamp = 0.002941899 weapon = 2
I have 2 weapons so far that it does work for. Here are their values:
Shotgun:
pos1 = -0.05 pos2 = -0.03239 yClamp = 0 zClamp = -0.009643325 weapon = 4
Sniper:
pos1 = -0.2827 pos2 = -0.236904 yClamp = -0.02146969 zClamp = 0.001505414 weapon = 5
Here's my script:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Chamber : MonoBehaviour
{
public GameObject shellCasing;
public float forceToCasing = 5f;
public Gun gun;
public bool returnedToOriginalPosition;
public bool slidBack;
public float pos1;
public float pos2;
public float yClamp;
public float zClamp;
public int weapon;
/*Weapon key
* 1 - Pistol
* 2 - Assault Rifle
* 3 - Sub Machine Gun
* 4 - Shotgun
* 5 - Sniper
* 6 - Rocket Launcher
*/
public void Update()
{
if (slidBack == true && returnedToOriginalPosition == true)
{
gun.newShotChambered = true;
slidBack = false;
returnedToOriginalPosition = false;
Debug.Log("New round chambered");
}
transform.localPosition = new Vector3(Mathf.Clamp(transform.localPosition.x, pos1, pos2), Mathf.Clamp(transform.localPosition.y, yClamp, yClamp), Mathf.Clamp(transform.localPosition.z, zClamp, zClamp));
if (weapon == 5) //I just had to flip these because I had to flip the sniper chamber rotation
{
if (transform.localPosition.x == pos1) slidBack = true;
if (transform.localPosition.x == pos2 && slidBack == true) returnedToOriginalPosition = true;
}
else
{
if (transform.localPosition.x == pos2) slidBack = true;
if (transform.localPosition.x == pos1 && slidBack == true) returnedToOriginalPosition = true;
}
}
}
Any help is greatly appreciated.
Your answer
![](https://koobas.hobune.stream/wayback/20220613001422im_/https://answers.unity.com/themes/thub/images/avi.jpg)