国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【Unity之UI編程】如何用UGUI搭建一個(gè)登錄注冊(cè)面板

這篇具有很好參考價(jià)值的文章主要介紹了【Unity之UI編程】如何用UGUI搭建一個(gè)登錄注冊(cè)面板。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

unity記住密碼,顯示密碼,# unity實(shí)戰(zhàn)基礎(chǔ),# UnityUI篇,unity,ui,游戲引擎


?????個(gè)人主頁:@元宇宙-秩沅

????? hallo 歡迎 點(diǎn)贊?? 收藏? 留言?? 加關(guān)注?!

????? 本文由 秩沅 原創(chuàng)

????? 收錄于專欄UI_Unity專欄

unity記住密碼,顯示密碼,# unity實(shí)戰(zhàn)基礎(chǔ),# UnityUI篇,unity,ui,游戲引擎


?習(xí)題總結(jié)專題篇?



??UML

unity記住密碼,顯示密碼,# unity實(shí)戰(zhàn)基礎(chǔ),# UnityUI篇,unity,ui,游戲引擎
unity記住密碼,顯示密碼,# unity實(shí)戰(zhàn)基礎(chǔ),# UnityUI篇,unity,ui,游戲引擎


??? ****


??(1.)開始面板交互(提示面板)


unity記住密碼,顯示密碼,# unity實(shí)戰(zhàn)基礎(chǔ),# UnityUI篇,unity,ui,游戲引擎

  • 邏輯:沒有輸入賬號(hào)密碼按下登錄的時(shí)候打開提示面板,按下確定后返回并移除面板(淡入淡出效果顯示)

unity記住密碼,顯示密碼,# unity實(shí)戰(zhàn)基礎(chǔ),# UnityUI篇,unity,ui,游戲引擎

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.UI;
//-------------------------------------
//—————————————————————————————————————
//___________項(xiàng)目:       ______________
//___________功能: 開始面板
//___________創(chuàng)建者:秩沅_______________
//_____________________________________
//-------------------------------------
public class LoginPanel : BasePanel 
{
    private CanvasGroup PanelGroup;

    //控件
    InputField InputAC, InputPW;

    Toggle Toggle1 ,Toggle2;

    string userName, password;

    protected override void Awake()
    {
        base.Awake();
        PanelGroup = GetComponent<CanvasGroup>();
        if (!PanelGroup)
        {
            PanelGroup = gameObject.AddComponent<CanvasGroup>();
        }
         InputAC = GetControl<InputField>("InputAC");
         InputPW = GetControl<InputField>("InputPW");
         Toggle1 = GetControl<Toggle>("Toggle1");
         Toggle2 = GetControl<Toggle>("Toggle2");
        userName = InputAC.text;
        password = InputPW.text;

    }

    private  void Start()
    {     
        AllEvent();
    }

    public override void ShowMe()
    {
        Fade(true , PanelGroup);
        base.ShowMe();

        //面板數(shù)據(jù)初始化
        InputAC.text = LoginData.GetInstance().userName;     
        Toggle1.isOn = LoginData.GetInstance().autoRP;

        //如果記住密碼就顯示密碼否則未空格,trycatch是防止空?qǐng)?bào)錯(cuò)
        try { InputPW.text = Toggle1.isOn ? LoginData.GetInstance().password  : ""; }
        catch { }

        Toggle2.isOn = LoginData.GetInstance().atoLoginl;
        if (Toggle2.isOn)
        {
            Debug.Log("自動(dòng)登錄");
        }
    }
    /// <summary>
    /// 重寫隱藏方法
    /// </summary>
    public override void HideMe()
    {
        Fade(false, PanelGroup);//進(jìn)行淡出的效果
        base.HideMe();


       
    }
    /// <summary>
    /// 添加控件監(jiān)聽事件
    /// </summary>
    private void AllEvent()
    {
       
        try
        {
            //登錄按鈕的事件監(jiān)聽
            GetControl<Button>("ButtonS").onClick.AddListener(() =>
            {
                userName = GetControl<InputField>("InputAC").text;
                password = GetControl<InputField>("InputPW").text;
                //當(dāng)點(diǎn)擊登陸時(shí)
                //1.如果賬號(hào)密碼為空
                if (userName == "" || password == "")
                {
                      UIContorl.GetInstance().ChangeTipPanel("賬號(hào)或密碼不能為空! 請(qǐng)重新輸入"); //顯示提示面板
                }

                //2.不為空驗(yàn)證
                else
                {
                    PlayerData palyerData = DataContorl.GetInstance().ReadData(userName);
              
                        //驗(yàn)證成功
                        if (DataContorl.GetInstance().Tip(userName, password))
                        {

                            UIContorl.GetInstance().ChangeTipPanel("登錄成功"); //顯示提示面板

                        //記錄臨時(shí)數(shù)據(jù)
                        LoginData.GetInstance().userName  = InputAC.text;
                        LoginData.GetInstance().password  = InputPW.text;
                    }
                    else 
                        {
                            UIContorl.GetInstance().ChangeTipPanel("賬號(hào)或密碼錯(cuò)誤請(qǐng)重新輸入");
                        }


                    //記錄臨時(shí)數(shù)據(jù)
                    LoginData.GetInstance().userName = userName;
                    LoginData.GetInstance().password = password;
                }

            });

            //注冊(cè)按鈕的事件監(jiān)聽
            GetControl<Button>("ButtonR").onClick.AddListener( ()=>
            {
                UIManager.GetInstance().ShowPanel<ReginstPanel>("ReginstPanel");//顯示注冊(cè)面板
                UIManager.GetInstance().RemovePanel("LoginPanel");//隱藏登錄面板
            });

            //記住密碼監(jiān)聽
            GetControl<Toggle>("Toggle1").onValueChanged.AddListener ((isOn)=> {

                if (!isOn)
                {
                    GetControl<Toggle>("Toggle2").isOn = false;
                    LoginData.GetInstance().atoLoginl = false;
                }
                //記錄臨時(shí)數(shù)據(jù)
                LoginData.GetInstance().autoRP  = isOn;

            });

            //自動(dòng)登錄監(jiān)聽
            GetControl<Toggle>("Toggle2").onValueChanged.AddListener((isOn) => {

                if (isOn)
                {
                    GetControl<Toggle>("Toggle1").isOn = true;
                    LoginData.GetInstance().autoRP = true;
                }
                //記錄臨時(shí)數(shù)據(jù)
                LoginData.GetInstance().atoLoginl = isOn;

            });

        }
        catch
        {
            Debug.Log("沒有獲取到");
        }


    }
}


??(2.)開始面板交互(開關(guān))


unity記住密碼,顯示密碼,# unity實(shí)戰(zhàn)基礎(chǔ),# UnityUI篇,unity,ui,游戲引擎

  • 邏輯:自動(dòng)登錄和記住密碼之間的邏輯,取消記住密碼自動(dòng)登錄一并取消,點(diǎn)擊自動(dòng)登錄,記住密碼一并勾選
 //記住密碼監(jiān)聽
            GetControl<Toggle>("Toggle1").onValueChanged.AddListener ((isOn)=> {

                if (!isOn)
                {
                    GetControl<Toggle>("Toggle2").isOn = false;
                    LoginData.GetInstance().atoLoginl = false;
                }
                //記錄臨時(shí)數(shù)據(jù)
                LoginData.GetInstance().autoRP  = isOn;

            });

            //自動(dòng)登錄監(jiān)聽
            GetControl<Toggle>("Toggle2").onValueChanged.AddListener((isOn) => {

                if (isOn)
                {
                    GetControl<Toggle>("Toggle1").isOn = true;
                    LoginData.GetInstance().autoRP = true;
                }
                //記錄臨時(shí)數(shù)據(jù)
                LoginData.GetInstance().atoLoginl = isOn;

            });

??(3.)注冊(cè)面板交互(相同賬號(hào))


  • 邏輯:注冊(cè)時(shí),存在相同賬號(hào)的提示

unity記住密碼,顯示密碼,# unity實(shí)戰(zhàn)基礎(chǔ),# UnityUI篇,unity,ui,游戲引擎

 //確定按鈕監(jiān)聽
        GetControl<Button>("ButtonR").onClick.AddListener(() =>
        {

            string userName = InputAC.text;
            string password = InputPW.text;
           
            //如果存在相同賬號(hào)名
            if (DataContorl.GetInstance().TipSame (userName))
            {
                UIContorl.GetInstance().ChangeTipPanel("該賬號(hào)已存在!請(qǐng)重新注冊(cè)");
                InputAC.text = "";
                InputPW.text = "";
            }
            else
            {
                PlayerData playerData = new PlayerData();
                playerData.registerData.Add(userName, password);
                DataContorl.GetInstance().SaveData(userName, playerData);

                UIManager.GetInstance().ShowPanel<LoginPanel>("LoginPanel");
                UIContorl.GetInstance().ChangeTipPanel("注冊(cè)成功請(qǐng)返回登錄");
                UIManager.GetInstance().RemovePanel("ReginstPanel");
            }
           
            Debug.Log(Application.persistentDataPath );

        });

??(4.)注冊(cè)面板交互(成功注冊(cè))


  • 注冊(cè)成功,提示窗口,并返回登錄界面

unity記住密碼,顯示密碼,# unity實(shí)戰(zhàn)基礎(chǔ),# UnityUI篇,unity,ui,游戲引擎



??(5.)數(shù)據(jù)交互方式(Json)


unity記住密碼,顯示密碼,# unity實(shí)戰(zhàn)基礎(chǔ),# UnityUI篇,unity,ui,游戲引擎

  • 數(shù)據(jù)管理器
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
//-------------------------------------
//—————————————————————————————————————
//___________項(xiàng)目:       ______________
//___________功能:  數(shù)據(jù)管理
//___________創(chuàng)建者:______秩沅______
//_____________________________________
//-------------------------------------
public class DataContorl : SingleManager<DataContorl>
{
 
    /// <summary>
    /// 用Json序列化存儲(chǔ)數(shù)據(jù)
    /// </summary>
    /// <param name="name"></param>
    public void SaveData(string name, PlayerData data)
    {
        JsonManager.Instance.SaveData(data, name);
    }

    public PlayerData ReadData(string name)
    {
       return  JsonManager.Instance.LoadData<PlayerData>(name);
    }

    //供外部調(diào)用識(shí)別賬號(hào)密碼是否正確
    public bool Tip(string userName, string password)
    {
        try
        {
            string pass = ReadData(userName).registerData[userName];
            Debug.Log(pass);
            if (userName != null && pass == password)
            {
                return true;
            }
            else return false;
        }
        catch
        { return false; }
    }

    //供外部調(diào)用識(shí)別注冊(cè)時(shí)是否有相同的賬號(hào)
    public bool TipSame(string userName)
    {
        Debug.Log("該賬號(hào)已注冊(cè)");
       return  ReadData(userName).registerData.ContainsKey(userName);
    }
}

  • Json管理器
using LitJson;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using UnityEngine;

public enum JsonType
{
    JsonUtlity,
    LitJson,
}

public class JsonManager
{
    private static JsonManager instance = new JsonManager();
    public static JsonManager Instance => instance;

    private JsonManager() { }

    public void SaveData(object data, string fileName, JsonType type = JsonType.LitJson)
    {
      
        string path = Application.persistentDataPath + "/" + fileName + ".json";
        string jsonStr = "";

        switch (type)
        {
            case JsonType.JsonUtlity:
                jsonStr = JsonUtility.ToJson(data);
                break;
            case JsonType.LitJson:
                jsonStr = JsonMapper.ToJson(data);
                break;
        }
        
        File.WriteAllText(path, jsonStr);
    }


    public T LoadData<T>(string fileName, JsonType type = JsonType.LitJson) where T : new()
    {
        //先判斷 是否存在streamingAssets中
        string path = Application.streamingAssetsPath + "/" + fileName + ".json";

        //如果不存在默認(rèn)文件 就從 persistentDataPath文件夾中去尋找
        if (!File.Exists(path))
            path = Application.persistentDataPath + "/" + fileName + ".json";
        //如果讀寫文件夾中都還沒有 那就返回一個(gè)默認(rèn)對(duì)象
        if (!File.Exists(path))
            return new T();

        //進(jìn)行反序列化
        string jsonStr = File.ReadAllText(path);
        //數(shù)據(jù)對(duì)象
        T data = default(T);
        switch (type)
        {
            case JsonType.JsonUtlity:
                data = JsonUtility.FromJson<T>(jsonStr);
                break;
            case JsonType.LitJson:
                data = JsonMapper.ToObject<T>(jsonStr);
                break;
        }

        //把對(duì)象返回出去
        return data;
    }
}


??(6.)數(shù)據(jù)加密Md5


unity記住密碼,顯示密碼,# unity實(shí)戰(zhàn)基礎(chǔ),# UnityUI篇,unity,ui,游戲引擎

  • 進(jìn)入

??(7.)登錄面板交互(成功登錄)


unity記住密碼,顯示密碼,# unity實(shí)戰(zhàn)基礎(chǔ),# UnityUI篇,unity,ui,游戲引擎

/// <summary>
    /// 添加控件監(jiān)聽事件
    /// </summary>
    private void AllEvent()
    {
       
        try
        {
            //登錄按鈕的事件監(jiān)聽
            GetControl<Button>("ButtonS").onClick.AddListener(() =>
            {
                userName = GetControl<InputField>("InputAC").text;
                password = GetControl<InputField>("InputPW").text;
                //當(dāng)點(diǎn)擊登陸時(shí)
                //1.如果賬號(hào)密碼為空
                if (userName == "" || password == "")
                {
                      UIContorl.GetInstance().ChangeTipPanel("賬號(hào)或密碼不能為空! 請(qǐng)重新輸入"); //顯示提示面板
                }

                //2.不為空驗(yàn)證
                else
                {
                    PlayerData palyerData = DataContorl.GetInstance().ReadData(userName);
              
                        //驗(yàn)證成功
                        if (DataContorl.GetInstance().Tip(userName, password))
                        {

                            UIContorl.GetInstance().ChangeTipPanel("登錄成功"); //顯示提示面板

                        //記錄臨時(shí)數(shù)據(jù)
                        LoginData.GetInstance().userName  = InputAC.text;
                        LoginData.GetInstance().password  = InputPW.text;
                    }
                    else 
                        {
                            UIContorl.GetInstance().ChangeTipPanel("賬號(hào)或密碼錯(cuò)誤請(qǐng)重新輸入");
                        }


                    //記錄臨時(shí)數(shù)據(jù)
                    LoginData.GetInstance().userName = userName;
                    LoginData.GetInstance().password = password;
                }

            });

??(8.)登錄面板交互(開關(guān)邏輯連帶)


  • 邏輯:當(dāng)點(diǎn)擊記住密碼時(shí),下一次登錄會(huì)自動(dòng)顯示賬號(hào)和密碼,當(dāng)不顯示時(shí)只會(huì)顯示賬號(hào),當(dāng)然每次的面板的臨時(shí)數(shù)據(jù)都由一個(gè)單例對(duì)象LoginData進(jìn)行臨時(shí)保存

  • unity記住密碼,顯示密碼,# unity實(shí)戰(zhàn)基礎(chǔ),# UnityUI篇,unity,ui,游戲引擎

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
//-------------------------------------
//—————————————————————————————————————
//___________項(xiàng)目:       ______________
//___________功能:    臨時(shí)記住登錄面板數(shù)據(jù)
//___________創(chuàng)建者:  ________秩沅_______
//_____________________________________
//-------------------------------------
public class LoginData :SingleManager<LoginData>
{
    //登錄數(shù)據(jù)
    //1.用戶名和密碼
    public string userName;
    public string password;
    //2.記住密碼和自動(dòng)登錄
    public bool autoRP;
    public bool atoLoginl;
}

public override void ShowMe()
    {
        Fade(true , PanelGroup);
        base.ShowMe();

        //面板數(shù)據(jù)初始化
        InputAC.text = LoginData.GetInstance().userName;     
        Toggle1.isOn = LoginData.GetInstance().autoRP;

        //如果記住密碼就顯示密碼否則未空格,trycatch是防止空?qǐng)?bào)錯(cuò)
        try { InputPW.text = Toggle1.isOn ? LoginData.GetInstance().password  : ""; }
        catch { }

        Toggle2.isOn = LoginData.GetInstance().atoLoginl;
        if (Toggle2.isOn)
        {
            Debug.Log("自動(dòng)登錄");
        }
    }
    /// <summary>
    /// 添加控件監(jiān)聽事件
    /// </summary>
    private void AllEvent()
    {
       
        try
        {
            //登錄按鈕的事件監(jiān)聽
            GetControl<Button>("ButtonS").onClick.AddListener(() =>
            {
                userName = GetControl<InputField>("InputAC").text;
                password = GetControl<InputField>("InputPW").text;
                //當(dāng)點(diǎn)擊登陸時(shí)
                //1.如果賬號(hào)密碼為空
                if (userName == "" || password == "")
                {
                      UIContorl.GetInstance().ChangeTipPanel("賬號(hào)或密碼不能為空! 請(qǐng)重新輸入"); //顯示提示面板
                }

                //2.不為空驗(yàn)證
                else
                {
                    PlayerData palyerData = DataContorl.GetInstance().ReadData(userName);
              
                        //驗(yàn)證成功
                        if (DataContorl.GetInstance().Tip(userName, password))
                        {

                            UIContorl.GetInstance().ChangeTipPanel("登錄成功"); //顯示提示面板

                        //記錄臨時(shí)數(shù)據(jù)
                        LoginData.GetInstance().userName  = InputAC.text;
                        LoginData.GetInstance().password  = InputPW.text;
                    }
                    else 
                        {
                            UIContorl.GetInstance().ChangeTipPanel("賬號(hào)或密碼錯(cuò)誤請(qǐng)重新輸入");
                        }


                    //記錄臨時(shí)數(shù)據(jù)
                    LoginData.GetInstance().userName = userName;
                    LoginData.GetInstance().password = password;
                }

            });

            //注冊(cè)按鈕的事件監(jiān)聽
            GetControl<Button>("ButtonR").onClick.AddListener( ()=>
            {
                UIManager.GetInstance().ShowPanel<ReginstPanel>("ReginstPanel");//顯示注冊(cè)面板
                UIManager.GetInstance().RemovePanel("LoginPanel");//隱藏登錄面板
            });

            //記住密碼監(jiān)聽
            GetControl<Toggle>("Toggle1").onValueChanged.AddListener ((isOn)=> {

                if (!isOn)
                {
                    GetControl<Toggle>("Toggle2").isOn = false;
                    LoginData.GetInstance().atoLoginl = false;
                }
                //記錄臨時(shí)數(shù)據(jù)
                LoginData.GetInstance().autoRP  = isOn;

            });

            //自動(dòng)登錄監(jiān)聽
            GetControl<Toggle>("Toggle2").onValueChanged.AddListener((isOn) => {

                if (isOn)
                {
                    GetControl<Toggle>("Toggle1").isOn = true;
                    LoginData.GetInstance().autoRP = true;
                }
                //記錄臨時(shí)數(shù)據(jù)
                LoginData.GetInstance().atoLoginl = isOn;

            });

        }
        catch
        {
            Debug.Log("沒有獲取到");
        }


    }

?相關(guān)文章?


? 軟件設(shè)計(jì)師高頻考點(diǎn)大全?

? unity之c#專題篇—系統(tǒng)強(qiáng)基?



你們的點(diǎn)贊?? 收藏? 留言?? 關(guān)注?是我持續(xù)創(chuàng)作,輸出優(yōu)質(zhì)內(nèi)容的最大動(dòng)力!文章來源地址http://www.zghlxwxcb.cn/news/detail-818666.html

到了這里,關(guān)于【Unity之UI編程】如何用UGUI搭建一個(gè)登錄注冊(cè)面板的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Unity優(yōu)化之UI篇(UGUI)

    Unity優(yōu)化之UI篇(UGUI)

    ????????在Unity中UI優(yōu)化的核心問題就是重繪和批處理之間的平衡。雖然說可以通過一些簡(jiǎn)單的技巧單方面地減少批次或者減少重繪,但進(jìn)行過一波優(yōu)化之后,最終還是要面臨批次和重繪的平衡問題。 ????????Canvas是UGUI的基本組件,它生成表示放置在其上的 UI 元素的網(wǎng)

    2024年02月04日
    瀏覽(22)
  • Unity--UGUI創(chuàng)建基本的UI

    Unity--UGUI創(chuàng)建基本的UI

    隨著UI系統(tǒng)的引入,已添加了新組件,這些組件將有助于創(chuàng)建特定于GUI的功能。其中一些元素包括文本,圖像,按鈕等。在本教程中,您將學(xué)習(xí)創(chuàng)建和使用基本UI。 通過Unity的用戶界面(UI)系統(tǒng),可以控制諸如:文本,圖像,按鈕和其他用戶控件之類的元素,這些元素將為用

    2024年04月12日
    瀏覽(21)
  • Unity UGUI事件輸入,點(diǎn)擊UI無反應(yīng)

    Unity UGUI事件輸入,點(diǎn)擊UI無反應(yīng)

    之前被一個(gè)特別低級(jí)的UI點(diǎn)擊問題卡了好久,記錄一下,避免之后再犯同樣的錯(cuò)誤。 UI事件輸入未接受到的原因無非就幾個(gè),一一排查總能找到原因。 1、若是直接使用的unity組件中的按鈕,但是點(diǎn)擊按鈕沒有反應(yīng)。 ? ? ? ? 1)查找是否被其他UI遮擋 ? ? ? ? 2)查找是否接收

    2024年04月13日
    瀏覽(17)
  • Unity UGUI一鍵綁定UI控件工具(編輯器拓展)

    Unity UGUI一鍵綁定UI控件工具(編輯器拓展)

    全為一鍵生成 實(shí)現(xiàn)自動(dòng)生成代碼綁定UI控件 并生成字典保存UI控件 減少自己拖拽 和手動(dòng)書寫過程 適用動(dòng)態(tài)加載面板 建議搭配UI框架使用 根據(jù)當(dāng)前選中的gameobject 查找其下方是否有對(duì)應(yīng)類型的控件 有就保存到字典中 然后通過向上遞歸拼湊地址,然后生成到粘貼板 直接粘貼到目

    2024年04月23日
    瀏覽(32)
  • Unity3D學(xué)習(xí)之UI系統(tǒng)——UGUI

    Unity3D學(xué)習(xí)之UI系統(tǒng)——UGUI

    3.2.1 Screen Space -Overlay 覆蓋模式 3.2.2 Screen Space - Camera 攝像機(jī)模式 創(chuàng)建專門的攝像機(jī)渲染UI 并讓主攝像機(jī)不渲染UI層 3.2.3 World Space 寬高 * 縮放系數(shù) = UI界面大小 參考分辨率 圖片格式要改為Sprite 恒定像素模式計(jì)算公式 會(huì)根據(jù)當(dāng)前分辨率 和 參考分辨率的比率自動(dòng)計(jì)算UI的縮放量

    2024年02月21日
    瀏覽(118)
  • Unity中UI方案。IMGUI、UIElement、UGUI、NGUI

    Unity中UI方案。IMGUI、UIElement、UGUI、NGUI

    引言 ? ? ? ? unity中有很多ui方案,各種方案有什么優(yōu)勢(shì)劣勢(shì),這里一一列舉一下,知識(shí)擴(kuò)充一下。 UI方案 適用范圍 IMGUI 僅用于Editor擴(kuò)展,或運(yùn)行時(shí)Debug UIElement 可用于發(fā)布運(yùn)行時(shí)和Editor UGUI Runtime,兩大主流 UI 解決方案之一 NGUI Runtime,兩大主流 UI 解決方案之一,現(xiàn)已較少

    2024年02月09日
    瀏覽(23)
  • 【unity插件】Shader實(shí)現(xiàn)UGUI的特效——UIEffect為 Unity UI 提供視覺效果組件

    【unity插件】Shader實(shí)現(xiàn)UGUI的特效——UIEffect為 Unity UI 提供視覺效果組件

    一般的shader無法直接使用在UI上,需要在shader中定義特定的面板參數(shù),今天就來推薦github上大佬做的一套開源的一系列UGUI,Shader實(shí)現(xiàn)的特效——UIEffect 為 Unity UI 提供視覺效果組件。 https://github.com/Ankh4396/UIEffect 讓我們用效果來裝飾你的UI!您可以根據(jù)需要從腳本和檢查器中控

    2024年02月04日
    瀏覽(61)
  • 【unity之UI專題】—UI如此簡(jiǎn)單之UGUI六大組件(GIF思維導(dǎo)圖詳解)

    【unity之UI專題】—UI如此簡(jiǎn)單之UGUI六大組件(GIF思維導(dǎo)圖詳解)

    ?????個(gè)人主頁 :@元宇宙-秩沅 ????? hallo 歡迎 點(diǎn)贊?? 收藏? 留言?? 加關(guān)注?! ????? 本文由 秩沅 原創(chuàng) ????? 收錄于專欄 : unity常用API ?? ScreenSpace —overlay(覆蓋模式) UI組件一直顯示在屏幕前,覆蓋所有 對(duì)應(yīng)圖示: ?? ScreenSpace—Camera 攝像機(jī)模式 攝像機(jī)不

    2023年04月11日
    瀏覽(52)
  • Unity實(shí)現(xiàn)一個(gè)可擴(kuò)展的UGUI無限滑動(dòng)列表控件

    Unity實(shí)現(xiàn)一個(gè)可擴(kuò)展的UGUI無限滑動(dòng)列表控件

    12月20日新增 增加一個(gè)可收縮的滑動(dòng)列表,適用于游戲中的任務(wù)系統(tǒng),成就等 使用說明 創(chuàng)建時(shí)需要兩個(gè)模板slot,一個(gè)是button,另一個(gè)則是btn下顯示的cell 配置如下圖添加 ExpandableView 腳本,新增的IsDefaultExpand用來控制是否展開 11月28日新增 增加可調(diào)節(jié)的頂部間隙和左側(cè)間隙 采

    2024年01月19日
    瀏覽(23)
  • 【Unity 3D】UI系統(tǒng)中UGUI各個(gè)組件的詳細(xì)講解(附源碼 超詳細(xì))

    UI設(shè)計(jì)又稱界面設(shè)計(jì),是指對(duì)軟件的人機(jī)交互、操作邏輯、界面美觀的整體設(shè)計(jì),UI就相當(dāng)于人可以看到的界面,并且可以對(duì)UI進(jìn)行交互。 Unity? 3D的UI,分為UGUI和GUI,UGUI主要是圖形渲染界面,搭建方便,學(xué)習(xí)比較容易,GUI主要是代碼渲染界面,需要在編寫代碼時(shí)就思考如何完

    2024年02月03日
    瀏覽(44)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包