protected virtual void Awake() { _trailRenderer = GetComponent <TrailRenderer>(); trailSettings.InitRenderer(ref _trailRenderer); _trailRenderer.emitting = false; _ibSpriteTrigger = GetComponent <IBSpriteTrigger>(); _ibSpriteTrigger.Disable(); }
protected IEnumerator ExeAttackCoroutine() { _isFollowing = false; _isAttacking = true; ResetPositionAndRotation(); EnableTrail(attackTrailSettings); EnterCharacterSyncState(); while (_commandBufferCount > 0) { _ibSpriteTrigger.Enable(); if (attackSound) { _audioSource.PlayOneShot(attackSound.Source); } float timeStart = Time.time; float timeDiff; float lerp; do { yield return(null); timeDiff = Time.time - timeStart; lerp = timeDiff / thrustDuration; transform.position = Vector3.Lerp(InitialPosition, ThrustPosition, lerp); } while (timeDiff < thrustDuration); if (thrustBackMode == ThrustBackMode.Immediate) { yield return(null); ResetPositionAndRotation(); } else { timeStart = Time.time; do { yield return(null); timeDiff = Time.time - timeStart; lerp = timeDiff / thrustDuration; transform.position = Vector3.Lerp(ThrustPosition, InitialPosition, lerp); } while (timeDiff < thrustDuration); ResetPositionAndRotation(); } _ibSpriteTrigger.Disable(); _commandBufferCount--; } _isCommandBufferFull = false; ExitCharacterSyncState(); DisableTrail(); _attackCoroutine = null; _isAttacking = false; characterController.StartStaminaRecovery(); }
public void Recycle() { _trailRenderer.Clear(); _trailRenderer.emitting = false; ownerCollider = null; DetectionSettings = null; OnDetectCharacterEnter = null; OnDetectCharacterExit = null; _ibSpriteTrigger.Disable(); _fired = false; }