IEnumerator Walk() { currentState = soundState.WAIT; yield return(new WaitForSeconds(timeToWalk)); soundEffects[2].Play(); currentState = soundState.WALK; }
IEnumerator Break() { currentState = soundState.WAIT; yield return(new WaitForSeconds(timeToWindowbreak)); soundEffects[1].Play(); currentState = soundState.BREAK; }
IEnumerator Nock() { currentState = soundState.WAIT; yield return(new WaitForSeconds(timeToNock)); soundEffects[0].Play(); currentState = soundState.NOCK; }
private void Awake() { if (_instance == null) { _instance = this; } else { Destroy(this.gameObject); } }
// Update is called once per frame void Update() { switch (currentState) { case soundState.NOCK: if (!isCoroutine) { StartCoroutine("Nock"); isCoroutine = true; } else if (!soundEffects[0].isPlaying) { currentState = soundState.BREAK; isCoroutine = false; } break; case soundState.BREAK: if (!isCoroutine) { StartCoroutine("Break"); isCoroutine = true; } else if (!soundEffects[1].isPlaying) { currentState = soundState.WALK; isCoroutine = false; } break; case soundState.WALK: var soundPosition = new Vector2(walkingSound.transform.position.x, walkingSound.transform.position.z); var playerPosition = new Vector2(player.transform.position.x, player.transform.position.z); if (Vector2.Distance(soundPosition, playerPosition) > reWalkDistance) { if (!soundEffects[2].isPlaying) { soundEffects[2].Play(); invisibleMan.SetActive(true); manAnimation.SetBool("isWalk", true); } var tempPosition = Vector3.Lerp(walkingSound.transform.position, player.transform.position, moveSpeed * Time.deltaTime); walkingSound.transform.position = new Vector3(tempPosition.x, walkingSound.transform.position.y, tempPosition.z); } else if (Vector2.Distance(soundPosition, playerPosition) <= walkingCircleRadius) { if (soundEffects[2].isPlaying) { soundEffects[2].Stop(); manAnimation.SetBool("isWalk", false); invisibleMan.SetActive(false); } if (!soundEffects[3].isPlaying) { int rnd = Random.Range(0, 180); if (rnd == 1) { soundEffects[3].Play(); } } } break; default: break; } }
// Use this for initialization void Start() { currentState = soundState.NOCK; manAnimation = invisibleMan.GetComponent <Animator>(); }