默认计划
2342人加入学习
(4人评价)
【唐老狮】Unity中的UI系统之GUI
价格 ¥ 109.00
承诺服务
该课程属于 Unity3d实战就业路线课程套餐
请加入后再学习

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 bool opinionsIsSelect;

    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()
    {
        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)
            {
                if (musicAudioSource == null)
                {
                    musicAudioSource= this.gameObject.AddComponent<AudioSource>();
                    musicAudioSource.clip = musicClip;
                    volume = GUI.HorizontalSlider(volumeRect, volume, 0, 1);
                    musicAudioSource.volume = volume;
                    musicAudioSource.Play();
                    musicAudioSource.loop = true;
                }
                else
                {
                    musicAudioSource.clip = musicClip;
                    volume = GUI.HorizontalSlider(volumeRect, volume, 0, 1);
                    musicAudioSource.volume = volume;
                    musicAudioSource.loop = true;
                    musicAudioSource.Play();
                }
            }
            else if (musicAudioSource != null)
            {
                musicAudioSource.Stop();
            }
        }
        if (GUI.Button(rectExitGame, "结束游戏", gUIStyle))
        {
            Application.Quit();
        }
    }

    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 UnityEngine;
using UnityEngine.SceneManagement;

public class SignIn : MonoBehaviour
{
    private static SignIn instance;

    public GUIStyle headLine;
    public GUIStyle button;
    public Rect userAddressRect;
    public Rect passwordRect;
    public Rect headLineRect;
    public Rect confirmbuttonRect;
    public Rect backToMainMenuRect;
    public Rect informationRect;

    string userAddress = "请输入用户名";
    string password = "*";
    string infomation = "请输入密码";

    private void OnGUI()
    {
        GUI.Label(headLineRect, "登陆界面", headLine);
        GUI.Label(informationRect, infomation, headLine);
        userAddress = GUI.TextField(userAddressRect, userAddress);
        password = GUI.PasswordField(passwordRect, password, '*');
        if(GUI.Button(confirmbuttonRect, "确定"))
        {
            if (password == "8888" && userAddress == "Admin")
            {
                SceneManager.LoadScene("GameScene");
            }
            else
            {
                infomation = "用户名或密码错误";
            }
        }
        if (GUI.Button(backToMainMenuRect, "返回"))
        {
            HidePannel();
            MainMenu.ShowPannel();
        }
    }
    private void Awake()
    {
        instance = this;
        HidePannel();
    }
    public static void ShowPannel()
    {
        instance.gameObject.SetActive(true);
    }


    public static void HidePannel()
    {
        instance.gameObject.SetActive(false);
    }
}

[展开全文]

输入框:

一.普通输入

GUI.TextField(Rect,输入的值,字符串最大长度);

返回输入的值,所以用法和复选框差不多

inputStr = GUI.TextField(Rect,inputStr,MaxLength)

二.密码输入

inputStr = GUI.PasswordField(Rect,inputStr,'一个表示密码的单字符');

拖动条:

三.水平拖动条

float value = GUI.HorizontalSlier(Rect,value(返回值),最小值,最大值);

可以再加三个GUIstyle,分别是按钮,按钮更精细的设置,背景条。

四.竖直拖动条

API:VerticalSlider();使用方法和水平一致

 

 

 

[展开全文]

输入框

普通输入

GUI.TextField(rect,文本,最大输入字符串的长度);

返回值string

 

密码输入

GUI.PasswordField(rect,文本,替代字符);

 

拖动条

水平拖动条

GUI.HorizontalSlider(rect,float返回值,最小值,最大值);

 

竖直拖动条

GUI.VerticalSlider(rect,float返回值,最小值,最大值);

[展开全文]

授课教师

游戏开发前端主程

课程特色

视频(31)
下载资料(30)

学员动态

roscorpioot 加入学习
muqianke 加入学习
逐梦鸢行 加入学习
sszs 加入学习