namespace VRTK.Examples { using UnityEngine; public class RealGun_Slide : VRTK_InteractableObject { private float restPosition; private float fireTimer = 0f; private float fireDistance = 0.05f; private float boltSpeed = 0.01f; public void Fire() { fireTimer = fireDistance; } protected override void Awake() { base.Awake(); restPosition = transform.localPosition.z; } protected override void Update() { base.Update(); if (transform.localPosition.z >= restPosition) { transform.localPosition = new Vector3(transform.localPosition.x, transform.localPosition.y, restPosition); } if (fireTimer == 0 && transform.localPosition.z < restPosition && !IsGrabbed()) { transform.localPosition = new Vector3(transform.localPosition.x, transform.localPosition.y, transform.localPosition.z + boltSpeed); } if (fireTimer > 0) { transform.localPosition = new Vector3(transform.localPosition.x, transform.localPosition.y, transform.localPosition.z - boltSpeed); fireTimer -= boltSpeed; } if (fireTimer < 0) { fireTimer = 0; } } } }