using System.Collections;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using UnityEngine;
public class MainMenu : MonoBehaviour
{
private static MainMenu instance;
public GUIStyle gUIStyle;
public Rect rectStartGame;
public Rect rectExitGame;
public Rect rectOpinions;
public Rect backgroundPicRect;
public bool opinionsIsSelect;
public Texture backgroundTex;
public Rect musicToggle;
public Rect soundToggle;
public bool musicToggleIsSelect;
public bool soundToggleIsSelect;
public Rect volumeRect;
public GUIStyle volumeGUIStyle;
float volume = 50f;
AudioSource musicAudioSource;
public AudioClip musicClip;
private void OnGUI()
{
GUI.DrawTexture(backgroundPicRect, backgroundTex);
if (GUI.Button(rectStartGame, "开始游戏", gUIStyle))
{
HidePannel();
SignIn.ShowPannel();
}
opinionsIsSelect = GUI.Toggle(rectOpinions, opinionsIsSelect, "设置", gUIStyle);
if (opinionsIsSelect)
{
musicToggleIsSelect = GUI.Toggle(musicToggle, musicToggleIsSelect, "音乐开关", gUIStyle);
soundToggleIsSelect = GUI.Toggle(soundToggle, soundToggleIsSelect, "音效开关", gUIStyle);
if (musicToggleIsSelect)
{
musicAudioSource = this.gameObject.GetComponent<AudioSource>();
if (musicAudioSource == null)
{
musicAudioSource= this.gameObject.AddComponent<AudioSource>();
}
else
{
musicAudioSource.clip = musicClip;
volume = GUI.HorizontalSlider(volumeRect, volume, 0, 1);
musicAudioSource.volume = volume;
musicAudioSource.Play();
musicAudioSource.loop = true;
}
}
else if (musicAudioSource != null)
{
musicAudioSource.Stop();
}
}
if (GUI.Button(rectExitGame, "结束游戏", gUIStyle))
{
QuitMenu.ShowPannel();
}
}
private void Awake()
{
instance = this;
}
public static void ShowPannel()
{
instance.gameObject.SetActive(true);
}
public static void HidePannel()
{
instance.gameObject.SetActive(false);
}
}
---------------------
using System.Collections;
using System.Collections.Generic;
using Unity.VisualScripting;
using UnityEngine;
public class QuitMenu : MonoBehaviour
{
Rect quitMenu = new Rect(200, 150, 200, 100);
Rect yesQuit = new Rect(20, 40, 50, 20);
Rect cancelQuit = new Rect(125, 40, 50, 20);
bool inThisMenu = false;
private static QuitMenu instance;
private void Awake()
{
instance = this;
HidePannel();
}
private void OnGUI()
{
inThisMenu = true;
quitMenu = GUI.ModalWindow(1, quitMenu, DrawMenu, "是否退出");
}
void DrawMenu(int id)
{
switch (id)
{
case 1:
if (GUI.Button(yesQuit, "退出"))
{
Application.Quit();
}
if (GUI.Button(cancelQuit, "取消"))
{
HidePannel();
}
GUI.DragWindow();
break;
}
}
public static void ShowPannel()
{
instance.gameObject.SetActive(true);
}
private static void HidePannel()
{
instance.gameObject.SetActive(false);
}
}