public void ToggleInventoryMode(bool on) { if (on) { gameObject.layer = RaycastLayers.LayerToInt(RaycastLayers.InventoryItemLayer); // Inventory Item Layer _isInventoryModeOn = true; _rigidbody.isKinematic = true; ToggleItemShine(false); ToggleInteractionTrigger(false); } else { gameObject.layer = RaycastLayers.LayerToInt(RaycastLayers.ItemLayer); // Item Layer _isInventoryModeOn = false; _rigidbody.isKinematic = false; ToggleInteractionTrigger(true); } }
IEnumerator ThrowGrenadeCo(Transform aimPoint) { yield return(new WaitForEndOfFrame()); if (_grenade != null) { _grenade.Count--; GameObject grenadeObject = Instantiate(_grenade.gameObject, transform.position, transform.rotation, null); Grenade grenade = grenadeObject.GetComponent <Grenade>(); Rigidbody rb = grenadeObject.GetComponent <Rigidbody>(); if (grenadeObject != null) { grenadeObject.SetActive(true); grenadeObject.layer = RaycastLayers.LayerToInt(RaycastLayers.GrenadeThrownLayer); // Grenade Thrown Layer } if (grenade != null) { grenade.SetExplosionMode(); grenade.SetExplosion(); } if (rb != null) { grenadeObject.GetComponent <Rigidbody>().AddForce((aimPoint.position - transform.position).normalized * GrenadeThrowForce, ForceMode.Impulse); grenadeObject.GetComponent <Rigidbody>().AddTorque(_grenade.transform.forward * GrenadeTorqueForce, ForceMode.Impulse); } if (OnGrenadeChanged != null) { OnGrenadeChanged.Invoke(); } } }