private void Update()
    {
        if (ThrowMode == null || ThrowFill == null)
        {
            return;
        }

        ThrowMode.text = "Detonation Mode : " + CurrentMode.ToString();

        ThrowFill.fillAmount = ThrowingForce / MaxThrowingTime;

        if (Input.GetKeyUp(KeyCode.Y))
        {
            if (CurrentMode == DetonationMode.Delay)
            {
                CurrentMode = DetonationMode.TriggerAndSticky;
            }
            else if (CurrentMode == DetonationMode.Trigger)
            {
                CurrentMode = DetonationMode.Delay;
            }
            else if (CurrentMode == DetonationMode.None)
            {
                CurrentMode = DetonationMode.Trigger;
            }
            else if (CurrentMode == DetonationMode.TriggerAndSticky)
            {
                CurrentMode = DetonationMode.None;
            }
        }

        if (Input.GetKey(ThrowKey))
        {
            if (ThrowingForce < MaxThrowingTime)
            {
                ThrowingForce += Time.deltaTime;
            }

            Throwing = true;
        }

        if (Input.GetKeyUp(ThrowKey))
        {
            if (Throwing)
            {
                GameObject Temp = Instantiate(Projectile, transform.position, Quaternion.identity);

                if (transform.GetComponentInParent <Collider>() != null)
                {
                    Physics.IgnoreCollision(Temp.GetComponent <Collider>(), transform.GetComponentInParent <Collider>());
                }

                Temp.GetComponent <Rigidbody>().AddForce(transform.forward * 500 * ThrowingForce);

                Temp.GetComponent <Rigidbody>().AddRelativeTorque(Vector3.one * Random.Range(0, 360) * 500 * ThrowingForce);

                Temp.GetComponent <Demo_DetonatorProjectile>().Detonation = CurrentMode;

                ThrowingForce = 0;
            }

            Throwing = false;
        }
    }
 private void Awake()
 {
     CurrentMode = DetonationMode.Delay;
 }