Skip to content

Instantly share code, notes, and snippets.

private void Start()
{
_weaponAmmo = new WeaponAmmo(_weaponSettings);
}
private void OnEnable()
{
_controller = GetComponentInParent<SteamVR_TrackedController>();
_controller.TriggerClicked += HandleTriggerClicked;
_controller.Gripped += HandleGripClicked;
}
private void OnDisable()
{
_controller.TriggerClicked -= HandleTriggerClicked;
private void HandleGripClicked(object sender, ClickedEventArgs e)
{
_weaponAmmo.Reload();
}
private void HandleTriggerClicked(object sender, ClickedEventArgs e)
{
if (CanFire)
{
if (_weaponAmmo.TryTakeBullet())
private void Fire()
{
ResetWeaponRefreshTimer();
RaycastHit hitInfo;
var takeDamage = RaycastHelper.TryHitTarget<ITakeDamage>(_muzzlePoint, _weaponSettings.MaxRange, out hitInfo);
if (takeDamage != null)
DealDamageToDamageTaker(takeDamage);
else
private void ResetWeaponRefreshTimer()
{
_nextFireTime = Time.deltaTime + _weaponSettings.FireDelay;
}
private void DealDamageToDamageTaker(ITakeDamage shootable)
{
shootable.TakeDamage(GetDamage());
}
private void OnDrawGizmos()
{
Gizmos.color = Color.green;
Gizmos.DrawRay(_muzzlePoint.position, _muzzlePoint.forward);
}
using UnityEngine;
public class ShootableBox : MonoBehaviour, ITakeDamage
{
[SerializeField]
private int _initialHealth = 2;
[SerializeField]
private ParticleSystem _explosionParticle;
private int _currentHealth;
public event ClickedEventHandler MenuButtonClicked;
public event ClickedEventHandler MenuButtonUnclicked;
public event ClickedEventHandler TriggerClicked;
public event ClickedEventHandler TriggerUnclicked;
public event ClickedEventHandler SteamClicked;
public event ClickedEventHandler PadClicked;
public event ClickedEventHandler PadUnclicked;
public event ClickedEventHandler PadTouched;
public event ClickedEventHandler PadUntouched;
public event ClickedEventHandler Gripped;
using UnityEngine;
public class PrimitiveCreator : MonoBehaviour
{
private SteamVR_TrackedController _controller;
private PrimitiveType _currentPrimitiveType = PrimitiveType.Sphere;
private void OnEnable()
{
_controller = GetComponent<SteamVR_TrackedController>();
private SteamVR_TrackedController _controller;
private PrimitiveType _currentPrimitiveType = PrimitiveType.Sphere;
private void OnEnable()
{
_controller = GetComponent<SteamVR_TrackedController>();
_controller.TriggerClicked += HandleTriggerClicked;
_controller.PadClicked += HandlePadClicked;
}