Unity 3D UGUI Toggle用法教程


UGUI Toggle用法教程


本文提供全流程,中文翻譯。

Chinar 堅持將簡單的生活方式,帶給世人!

(擁有更好的閱讀體驗 —— 高分辨率用戶請根據需求調整網頁縮放比例)



Chinar —— 心分享、心創新!

助力快速理解 UGUI Toggle 組件用法

為新手節省寶貴的時間,避免采坑!


Chinar 教程效果:
這里寫圖片描述



全文高清圖片,點擊即可放大觀看 (很多人竟然不知道)


1

Description —— 說明


我們在項目開發的時候,有時需要一個按鈕,來模擬 / 控制開關

此時,如果用 Button 的話,作為開發者還需要自己寫一些判定邏輯

來告訴電腦,這個 Button 按鈕是打開、還是關閉


眾所周知,作為程序員、開發者都是比較懶的

能寫10行代碼實現的功能,絕不寫11行,才是一個標准程序員的信仰!

由此: Toggle 組件誕生了,方便且簡單的解決了上述問題

用法上和 Button 幾乎沒有區別,且動態的了模擬現實中開關按鈕,為開發者提供了一個良好的解決方案

舉個栗子黑白88
由簡入深,下面我們先來了解下 Toggle 組件

附上開關組教程—— Unity 3D UGUI Toggle Group用法教程


2

Create Toggle —— 創建開關組件


強大的 Unity 在降低開發難度的路上,真是越走越遠,甩的同行看不見屁股(有點誇張了)

Unity 提供了非常簡單的創建 Toggle 方式:


我們只需要右鍵點擊層次列表→ UI Toggle 即可完成創建

( 也可以自己搭建自己的模板,然后掛載 Toggle 組件是一樣的 )

運行就可以直接看效果
舉個栗子黑白88
這里寫圖片描述


3

Custom Template —— 可自定義調節模板


如圖,可自由調節顏色/自由更換布局或是圖片
舉個栗子黑白88
這里寫圖片描述


4

Toggle —— 組件說明


Toggle 組件與 Button 不同之處:

1. Graphic :用來控制 Toggle 開關圖片的顯示/隱藏

2. IsOn :用來表示 Toggle 開關狀態

3. Group :用來表示 Toggle 所屬開關組/群(后邊會講到)

其他幾乎完全一致
舉個栗子黑白88
這里寫圖片描述


5

OnChangeValue —— 值改變時調用


當我們將需要調用的方法,手動添加到 OnChangeValue

發現跟 Button 一樣,每點一下都會調用一次方法
舉個栗子黑白88
手動添加監聽方法:

using UnityEngine;


/// <summary>
/// Chinar專用測試類
/// </summary>
public class ChinarDemo : MonoBehaviour
{
    /// <summary>
    /// 綁定監聽事件方法
    /// </summary>
    public void ListenInFunction()
    {
        print("調用");
    }
}

如果 代碼動態添加監聽,就無需在界面 OnChangeValue 手動添加

using UnityEngine;
using UnityEngine.UI;


/// <summary>
/// Chinar專用測試類
/// </summary>
public class ChinarDemo : MonoBehaviour
{
    void Start()
    {
        //找到組件,動態添加,Lambda表達式,精簡!
        //與手動添加效果一致
        GameObject.Find("Toggle").GetComponent<Toggle>().onValueChanged.AddListener(isOn => print("調用"));
    }
}

運行/測試結果:
這里寫圖片描述


6

OnChangeValue IsOn —— (開關)控制監聽調用


Toggle 組件與 Button 不同之處:

上邊說到: IsOn :用來表示 Toggle 開關狀態

那么當我們將需要調用的方法,進行開關的邏輯判定,手動添加到 OnChangeValue

就跟 Button 不一樣了,不是每次都會調用,具體取決於函數邏輯

注意: IsOn 默認狀態,就是運行后 開關按鈕(Toggle)的默認狀態
舉個栗子黑白88
手動添加監聽方法:

using UnityEngine;


/// <summary>
/// Chinar專用測試類
/// </summary>
public class ChinarDemo : MonoBehaviour
{
    /// <summary>
    /// 監聽方法:可手動/動態綁定
    /// </summary>
    /// <param name="isOn"></param>
    public void OnClick(bool isOn)
    {
        if (isOn)
        {
            print("開");
        }
        else
        {
            print("關");
        }
    }
}

如果 代碼動態添加監聽,就無需在界面 OnChangeValue 手動添加

using UnityEngine;
using UnityEngine.UI;


/// <summary>
/// Chinar專用測試類
/// </summary>
public class ChinarDemo : MonoBehaviour
{
    void Start()
    {
        //找到組件,動態添加監聽,Lambda表達式,精簡!
        GameObject.Find("Toggle").GetComponent<Toggle>().onValueChanged.AddListener(isOn => print(isOn ? "開" : "關"));
    }
}

運行/測試結果:
這里寫圖片描述


7

Attention IsOn/Graphic —— 注意 IsOn!


注意: IsOn 默認狀態,就是運行后 開關按鈕(Toggle)的默認狀態

Graphic:開關替換圖片,可根據需求自由設定

IsOn True/False 決定圖片是否顯示/隱藏
舉個栗子黑白88
這里寫圖片描述
至此:Toggle組件用法教程結束


支持

May Be —— 搞開發,總有一天要做的事!


擁有自己的服務器,無需再找攻略!

Chinar 提供一站式教程,閉眼式創建!

為新手節省寶貴時間,避免采坑!


先點擊領取 —— 阿里全產品優惠券 (享受最低優惠)


1 —— 雲服務器超全購買流程 (新手必備!)

2 —— 阿里ECS雲服務器自定義配置 - 購買教程(新手必備!)

3—— Windows 服務器配置、運行、建站一條龍 !

4 —— Linux 服務器配置、運行、建站一條龍 !





技術交流群:806091680 ! Chinar 歡迎你的加入


END

本博客為非營利性個人原創,除部分有明確署名的作品外,所刊登的所有作品的著作權均為本人所擁有,本人保留所有法定權利。違者必究

對於需要復制、轉載、鏈接和傳播博客文章或內容的,請及時和本博主進行聯系,留言,Email: ichinar@icloud.com

對於經本博主明確授權和許可使用文章及內容的,使用時請注明文章或內容出處並注明網址
>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM