81 lines
2.2 KiB
C#
81 lines
2.2 KiB
C#
using UnityEngine;
|
|
using System.Collections;
|
|
|
|
public class ManagerSuaraBermain : MonoBehaviour
|
|
{
|
|
[Header("--- SPEAKER UTAMA ---")]
|
|
public AudioSource speakerUtama;
|
|
|
|
// Variabel static ini kunci ingatannya bos
|
|
public static bool sudahPernahMenyapa = false;
|
|
|
|
[Header("--- PENGATURAN WAKTU ---")]
|
|
public float waktuTungguSapaan = 1.0f;
|
|
|
|
[Header("--- SUARA SAPAAN AWAL ---")]
|
|
public AudioClip sapaanPilihGame;
|
|
|
|
[Header("--- SUARA KLIK UMUM ---")]
|
|
public AudioClip kasetKlikUmum;
|
|
|
|
void Start()
|
|
{
|
|
// Narator cuma bunyi kalau belum pernah nyapa di sesi ini
|
|
if (!sudahPernahMenyapa)
|
|
{
|
|
StartCoroutine(JedaSapaanAwal());
|
|
sudahPernahMenyapa = true;
|
|
}
|
|
}
|
|
|
|
IEnumerator JedaSapaanAwal()
|
|
{
|
|
yield return new WaitForSeconds(waktuTungguSapaan);
|
|
if (speakerUtama != null && sapaanPilihGame != null)
|
|
{
|
|
speakerUtama.PlayOneShot(sapaanPilihGame);
|
|
}
|
|
}
|
|
|
|
// ==========================================
|
|
// FUNGSI BARU: MATIKAN SUARA MENU SECARA PAKSA
|
|
// ==========================================
|
|
public void HentikanPaksaSuara()
|
|
{
|
|
StopAllCoroutines();
|
|
if (speakerUtama != null)
|
|
{
|
|
speakerUtama.Stop();
|
|
}
|
|
}
|
|
|
|
// ==========================================
|
|
// MODIFIKASI: RESET SAAT KEMBALI KE MENU PILIH
|
|
// ==========================================
|
|
public void TombolKlikUmum()
|
|
{
|
|
if (speakerUtama != null && kasetKlikUmum != null)
|
|
{
|
|
speakerUtama.PlayOneShot(kasetKlikUmum);
|
|
}
|
|
|
|
// --- JURUS RESET BOS ---
|
|
// Kalau bos pencet tombol ini buat balik ke Scene Pilih Level,
|
|
// kita set jadi false lagi biar nanti pas masuk ke scene bermain dia nyapa lagi.
|
|
sudahPernahMenyapa = false;
|
|
}
|
|
|
|
public void PutarSuaraStage(AudioClip kaset)
|
|
{
|
|
if (kaset == null) return;
|
|
|
|
GameObject speakerGaib = new GameObject("SpeakerGaib_" + kaset.name);
|
|
AudioSource sumberSuara = speakerGaib.AddComponent<AudioSource>();
|
|
|
|
sumberSuara.clip = kaset;
|
|
sumberSuara.Play();
|
|
|
|
DontDestroyOnLoad(speakerGaib);
|
|
Destroy(speakerGaib, kaset.length);
|
|
}
|
|
} |