コード例 #1
0
	// Use this for initialization
	void Start () {

		audio = GetComponent<AudioSource> ();
		audio.clip = musicaTheme;
		audio.Play ();
		State = RoomManagerState.NotActivated;


		sizeX = this.RoomActivationBox.x * 0.9f / 2;
		sizeZ = this.RoomActivationBox.z * 0.9f / 2;
		MinX = this.transform.position.x - sizeX;
		MaxX = this.transform.position.x + sizeX;
		MinZ = this.transform.position.z - sizeZ;
		MaxZ = this.transform.position.z + sizeZ;
	}
コード例 #2
0
	// Update is called once per frame
	void Update () {
		
		audio1 = Sala1.GetComponent<RoomManager> ().audioisplaying;
		audio2 = Sala2.GetComponent<RoomManager> ().audioisplaying;
		audio3 = Sala3.GetComponent<RoomManager> ().audioisplaying;
		audioisplaying = audio.clip == musicaCombate;

		if (audio1 || audio2 || audio3) {
			audio.Stop ();
		}
		else if(!audio.isPlaying && State == RoomManagerState.Activated) {
			audio.clip = musicaCombate;
			audio.Play ();
			audio.volume = 1f;
		} else if (audioisplaying && State == RoomManagerState.Finished) {
			audio.Stop ();
			audio.clip = musicaTheme;
			audio.Play ();
			audio.volume = 1f;
		}
		else if (!audio.isPlaying) {
			audio.clip = musicaTheme;
			audio.Play ();
			audio.volume = 1f;
		}




		switch(State)
		{
		case RoomManagerState.NotActivated:

			// Trocar para Eventos e Maquina de Estado
			if (PlayerManager.Instance.IsPlayerInside(new Vector2(transform.position.x, transform.position.z), new Vector2(DoorActivationBox.x, DoorActivationBox.z), false))
			{
				OpenDoors(EnterDoors);

				if (PlayerManager.Instance.IsPlayerInside(new Vector2(transform.position.x, transform.position.z), new Vector2(RoomActivationBox.x, RoomActivationBox.z), true))
				{				
					CloseDoors(EnterDoors);

					// ATIVA A SALA
					State = RoomManagerState.Activated;
				}
			}
			else
			{
				CloseDoors(EnterDoors);
			}

			break;
		case RoomManagerState.Activated:

			bool _finished = true;

			// Inicializa os spawners
			for(int i = 0; i < Spawners.Length; i++)
			{
				if (Spawners[i] != null)
				{
					switch(Spawners[i].State)
					{
					case RoomSpawnerState.NotActivate:
						Spawners [i].State = RoomSpawnerState.Activating;
						for (i = 1000; i > 0; i--) {
							volume -= 0.001f;
							audio.volume = volume;
						}	
						audio.Stop ();
						if (!(audio1 || audio2 || audio3)) {
							audio.clip = musicaCombate;
							audio.Play ();
							audio.volume = 1f; 
						}
						break;
					default :break;
					}

					_finished = _finished && Spawners[i].State == RoomSpawnerState.Finished;
					if (_finished)
						this.State = RoomManagerState.Finished;
				}
			}

			break;
		case RoomManagerState.Finished:

			OpenDoors(ExitDoors);

			break;
		}
	}