예제 #1
0
            public Implementation(GameObject gameObject, FireableWeaponBehavior behavior)
                : base(gameObject, behavior)
            {
                _light = gameObject.GetComponentsInChildren <Light>().First();
                _audio = gameObject.GetComponentsInChildren <AudioSource>().First();

                _state = FireableWeaponState.None;
            }
예제 #2
0
            private IEnumerator FireWeapon()
            {
                _state = FireableWeaponState.Fired;

                var light = _light;
                var audio = _audio;

                light.enabled = true;
                audio.Play();

                yield return(new WaitForSeconds(0.05f));

                light.enabled = false;

                _state = FireableWeaponState.None;
            }
예제 #3
0
 /// <inheritdoc />
 public void TransitionToState(FireableWeaponState state)
 {
     Behavoir.StartCoroutine(FireWeapon());
 }
예제 #4
0
 /// <inheritdoc />
 public bool CanEnterState(FireableWeaponState state)
 {
     return(_state == FireableWeaponState.None);
 }