// Start is called before the first frame update void Awake() { mGameObject = gameObject; originalPos = transform.position; rg = GetComponent <Rigidbody2D>(); aimingLine = Instantiate(aimingLinePrefab, transform).GetComponent <AimingLine>(); }
// Use this for initialization void Start() { cannonCollider = this.GetComponent <CircleCollider2D>(); aimingLine = GetComponent <AimingLine>(); inputManager = GameObject.Find("Director").GetComponent <UnifiedInput>(); }
private void HandleStateTransitionSideEffect(GuardState oldState, GuardState newState) { switch (oldState) { case GuardState.FarReady: aimingLine.Stop(); break; case GuardState.FarShoot: laser.Stop(); laser = null; break; case GuardState.Hit: attackEnabled = true; break; } switch (newState) { case GuardState.Turning: HeadingRight = !HeadingRight; velocity.x = 0f; break; case GuardState.FarReady: stateEndTime = Time.time + FarReadyDelay; aimingLine = Instantiate(AimingLinePrefab, transform); break; case GuardState.NearReady: if (oldState == GuardState.FarReady) { stateEndTime = Mathf.Min(stateEndTime, Time.time + NearReadyDelay); } else { stateEndTime = Time.time + NearReadyDelay; } break; case GuardState.FarShoot: stateEndTime = Time.time + FarShootDelay; laser = Instantiate(LaserPrefab, transform); SoundEffectManager.Instance.Play(FarShootSound); break; case GuardState.NearShoot: stateEndTime = Time.time + NearShootDelay; for (int i = 0; i < NearShootParticles; i++) { Instantiate(ParticlePrefab, transform); } SoundEffectManager.Instance.Play(NearShootSound); break; case GuardState.BackJumping: BackJump(); break; case GuardState.Hit: stateEndTime = Time.time + HitDelay; attackEnabled = false; break; case GuardState.Dead: attackEnabled = false; break; } }