private void Update() { if (fadeIn && state == mState.active) { audioSource.volume += 0.001f; if (audioSource.volume >= targetVol) { audioSource.volume = targetVol; state = mState.inactive; } } if (fadeOut && state == mState.active) { audioSource.volume -= 0.001f; if (audioSource.volume <= 0f) { audioSource.Stop(); audioSource.volume = targetVol; state = mState.inactive; } } }
public void FadeOut(float vol) { targetVol = vol; state = mState.active; fadeIn = false; fadeOut = true; }
public void ChangeState() { if (mCurrentState == mState.waiting) { mCurrentState = mState.wait; } }
public void FadeIn(AudioClip audioClip, float vol) { audioSource.clip = audioClip; audioSource.Play(); state = mState.active; targetVol = vol; fadeIn = true; fadeOut = false; }
// Use this for initialization void Start() { EnemyState = mState.Idle; contactTime = Time.time; proximityRangeIdle = new Vector3(6, 4, 6); proximityRangeAngery = new Vector3(10, 4, 10); proximityRangeContact = new Vector3(1, 2, 1); speed = .5f; distToPlayer = transform.position - player.transform.position; SetDistText(); }
// Update is called once per frame void Update() { switch (EnemyState) { case mState.Angery: transform.position = Vector3.MoveTowards(transform.position, player.transform.position, speed); //move towards player if (!isNearPlayer(proximityRangeAngery)) //check if player is within angery range { EnemyState = mState.Idle; } if (isNearPlayer(proximityRangeContact)) { contactTime = Time.time; EnemyState = mState.Stunned; } break; case mState.Idle: if (isNearPlayer(proximityRangeIdle)) //check if player is within idle range { EnemyState = mState.Angery; } break; case mState.Stunned: if (getElapsedTime(contactTime) > 1.5) { EnemyState = mState.Angery; } //freeze for 3 seconds, then go back to being angery break; case mState.Dying: //destroy this object with a dying animation gameObject.SetActive(false); break; } }
private void STM(mState state, ref float _time) { switch (state) { case mState.moving: Move(walker.MoveToDirection(shouldSmooth)); if (!shouldSmooth && walker.closeToWaypoint()) { currentState = (shouldPause ? mState.paused : mState.rotating); walker.SetRotation(); } break; case mState.paused: _time += deltaTime; if (_time >= pauseTime) { currentState = mState.rotating; _time = 0; } GetComponent <Animator>().SetFloat("Walk", 0f); break; case mState.rotating: _time = Mathf.Min(rotationTime, _time + deltaTime); walker.Rotate(_time, rotationTime); if (_time >= rotationTime) { currentState = mState.moving; _time = 0; GetComponent <Animator>().SetFloat("Walk", speed); } break; } }
public IEnumerator Scroll() { switch (mCurrentState) { case mState.start: gameObject.transform.position = Vector3.Lerp(gameObject.transform.position, mWaitPos, Time.deltaTime * mScrollingSpeed); if (Vector3.Distance(gameObject.transform.position, mWaitPos) < 0.2f) { mCurrentState = mState.waiting; } break; case mState.waiting: if (mContinuous) { yield return(new WaitForSeconds(2.0f)); mCurrentState = mState.wait; } break; case mState.wait: gameObject.transform.position = Vector3.Lerp(gameObject.transform.position, mEndPos, Time.deltaTime * mScrollingSpeed); if (Vector3.Distance(gameObject.transform.position, mEndPos) < 0.5f) { mCurrentState = mState.end; } break; case mState.end: gameObject.transform.position = mStartPos; mCurrentState = mState.start; gameObject.transform.parent.GetComponent <ScrollerManager>().IncreaseIndex(); yield break; } }