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

【Unity之IMGUI】—編譯模式下控件可視化及其封裝

這篇具有很好參考價值的文章主要介紹了【Unity之IMGUI】—編譯模式下控件可視化及其封裝。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

【Unity之IMGUI】—編譯模式下控件可視化及其封裝


?????個人主頁:@元宇宙-秩沅

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

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

????? 收錄于專欄:UnityUI篇實戰(zhàn)

????IMGUI封裝實踐【二】?




?前言?

【Unity之IMGUI】—編譯模式下控件可視化及其封裝

缺點1:無法在編譯過程進行可視化調(diào)整
缺點2:無法分辨率自適應

【Unity之IMGUI】—編譯模式下控件可視化及其封裝


??(A) 封裝可視化腳本控制基類


此圖可忽略

【Unity之IMGUI】—編譯模式下控件可視化及其封裝

  • UML類圖
    【Unity之IMGUI】—編譯模式下控件可視化及其封裝

  • 性能優(yōu)化代碼
    【Unity之IMGUI】—編譯模式下控件可視化及其封裝

  • 完整代碼:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
//-------------------------------------
//—————————————————————————————————————
//___________項目:       ______________
//___________功能: 讓所有組件都可視化編輯
//___________創(chuàng)建者:秩沅_______________
//_____________________________________
//-------------------------------------

[ExecuteAlways] //關(guān)鍵特性
public class ShowAllContorlRoot : MonoBehaviour
{
    private ControlFather[] allContorls; //里氏替換原則,裝所有子類

    private void Start()
    {
        allContorls = this.GetComponentsInChildren<ControlFather>();
    }
    private void OnGUI()
    {
        foreach (ControlFather  item in allContorls)
        {
            //1.表示沒有運行時(編譯時)也來獲取,Start是點擊運行時可以獲取
            //2.避免了運行時重復執(zhí)行該API。消耗性能
            if( !Application.isPlayer)
            {
                allContorls = this.GetComponentsInChildren<ControlFather>();
            }
            item.Judge();
        }
    }
}


??(B) 控件創(chuàng)建及其封裝——按鈕


【Unity之IMGUI】—編譯模式下控件可視化及其封裝
【Unity之IMGUI】—編譯模式下控件可視化及其封裝

  • 按鈕封裝代碼
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Events;
//-------------------------------------
//—————————————————————————————————————
//___________項目:       ______________
//___________功能: 創(chuàng)建按鈕
//___________創(chuàng)建者:秩沅_______________
//_____________________________________
//-------------------------------------
public class Button : ControlFather
{
    public event  UnityAction triggerEvent; 
                                            //事件的添加在此起到妙用
                                            //只要在外部給予響應函數(shù)                

    protected override void OffDrawStyle()
    {
        if(GUI.Button(ContorlPosition.LastPos ,ContorlContent))
        {
            triggerEvent?.Invoke();
        }
    }

    protected override void OnDrawstyle()
    {
       if(GUI.Button(ContorlPosition.LastPos, ContorlContent,ContorlStyle ) )
        {
           triggerEvent?.Invoke();
        }
    }
}


??(C) 開始創(chuàng)建預制體包


【Unity之IMGUI】—編譯模式下控件可視化及其封裝

  • 目的: 便于套用

代碼集結(jié)

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
//-------------------------------------
//—————————————————————————————————————
//___________項目:       ______________
//___________功能: 讓所有組件都可視化編輯
//___________創(chuàng)建者:秩沅_______________
//_____________________________________
//-------------------------------------

[ExecuteAlways] //關(guān)鍵特性
public class ShowAllContorlRoot : MonoBehaviour
{
    private ControlFather[] allContorls; //里氏替換原則,裝所有子類

    private void Start()
    {
        allContorls = this.GetComponentsInChildren<ControlFather>();
    }
    private void OnGUI()
    {
        foreach (ControlFather  item in allContorls)
        {
            //1.表示沒有運行時(編譯時)也來獲取,Start是點擊運行時可以獲取
            //2.避免了運行時重復執(zhí)行該API。消耗性能
            if( !Application.isPlayer)
            {
                allContorls = this.GetComponentsInChildren<ControlFather>();
            }
            item.Judge();
        }
    }
}

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Events;
//-------------------------------------
//—————————————————————————————————————
//___________項目:       ______________
//___________功能: 創(chuàng)建按鈕
//___________創(chuàng)建者:秩沅_______________
//_____________________________________
//-------------------------------------
public class Button : ControlFather
{
    public event  UnityAction triggerEvent; 
                                            //事件的添加在此起到妙用
                                            //只要在外部給予響應函數(shù)                

    protected override void OffDrawStyle()
    {
        if(GUI.Button(ContorlPosition.LastPos ,ContorlContent))
        {
            triggerEvent?.Invoke();
        }
    }

    protected override void OnDrawstyle()
    {
       if(GUI.Button(ContorlPosition.LastPos, ContorlContent,ContorlStyle ) )
        {
           triggerEvent?.Invoke();
        }
    }
}

ImGUI又稱為Dear ImGui,它是與平臺無關(guān)的C++輕量級跨平臺圖形界面庫,沒有任何第三方依賴,可以將ImGUI的源碼直接加到項目中使用,也可以編譯成dll, ImGUI使用DX或者OpenGL進行界面渲染,對于畫面質(zhì)量要求較高,例如客戶端游戲,4k/8k視頻播放時,用ImGUI是很好的選擇,當然,你得非常熟悉DirectX或者OpenGL,不然就是寶劍在手,屠龍無力。相對于Qt、MFC、DuiLib、SOUI等,ImGUI的拓展性更好,也更輕量級,當然對于開發(fā)者的要求也更高.

?????


?【Unityc#專題篇】之c#進階篇】

?【Unityc#專題篇】之c#核心篇】

?【Unityc#專題篇】之c#基礎(chǔ)篇】

?【Unity-c#專題篇】之c#入門篇】

?【Unityc#專題篇】—進階章題單實踐練習

?【Unityc#專題篇】—基礎(chǔ)章題單實踐練習

?【Unityc#專題篇】—核心章題單實踐練習


你們的點贊?? 收藏? 留言?? 關(guān)注?是我持續(xù)創(chuàng)作,輸出優(yōu)質(zhì)內(nèi)容的最大動力!、


【Unity之IMGUI】—編譯模式下控件可視化及其封裝文章來源地址http://www.zghlxwxcb.cn/news/detail-496312.html


到了這里,關(guān)于【Unity之IMGUI】—編譯模式下控件可視化及其封裝的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • PyG基于DeepWalk實現(xiàn)節(jié)點分類及其可視化

    PyG基于DeepWalk實現(xiàn)節(jié)點分類及其可視化

    大家好,我是阿光。 本專欄整理了《圖神經(jīng)網(wǎng)絡(luò)代碼實戰(zhàn)》,內(nèi)包含了不同圖神經(jīng)網(wǎng)絡(luò)的相關(guān)代碼實現(xiàn)(PyG以及自實現(xiàn)),理論與實踐相結(jié)合,如GCN、GAT、GraphSAGE等經(jīng)典圖網(wǎng)絡(luò),每一個代碼實例都附帶有完整的代碼。 正在更新中~ ? ?? 我的項目環(huán)境: 平臺:Windows10 語言環(huán)

    2024年01月19日
    瀏覽(27)
  • 界面控件DevExpress WinForms Gauge組件 - 實現(xiàn)更高級別數(shù)據(jù)可視化

    界面控件DevExpress WinForms Gauge組件 - 實現(xiàn)更高級別數(shù)據(jù)可視化

    DevExpress WinForms控件包含了超過150個隨時可用的儀表盤預設(shè),包括圓形,數(shù)字,線性和狀態(tài)指示器等,來幫助用戶實現(xiàn)更高級的數(shù)據(jù)可視化。 DevExpress WinForms有180+組件和UI庫,能為Windows Forms平臺創(chuàng)建具有影響力的業(yè)務(wù)解決方案。同時能完美構(gòu)建流暢、美觀且易于使用的應用程序

    2024年02月06日
    瀏覽(28)
  • 目標檢測yolo格式與labelme標注互相轉(zhuǎn)換及其可視化

    ??????????yolo目標檢測數(shù)據(jù)采用矩形框進行標注,其標注格式為[cls_id xp yp wp hp],cls_id表示目標所屬的類別序號。xp、yp表示目標中心點相對坐標,其中xp等于目標的絕對橫坐標除以圖像寬度,yp等于目標的絕對縱坐標除以圖像高度。wp和hp表示目標的相對寬度和高度,其中

    2024年02月05日
    瀏覽(25)
  • 界面控件DevExpress WPF Chart組件——擁有超快的數(shù)據(jù)可視化庫!

    界面控件DevExpress WPF Chart組件——擁有超快的數(shù)據(jù)可視化庫!

    DevExpress WPF?Chart組件擁有超大的可視化數(shù)據(jù)集,并提供交互式儀表板與高性能WPF圖表庫。DevExpress Charts提供了全面的2D / 3D圖形集合,包括數(shù)十個UI定制和數(shù)據(jù)分析/數(shù)據(jù)挖掘選項。 PS:DevExpress WPF擁有120+個控件和庫,將幫助您交付滿足甚至超出企業(yè)需求的高性能業(yè)務(wù)應用程序。

    2024年02月13日
    瀏覽(21)
  • 【阿旭機器學習實戰(zhàn)】【36】糖尿病預測---決策樹建模及其可視化

    【阿旭機器學習實戰(zhàn)】【36】糖尿病預測---決策樹建模及其可視化

    【阿旭機器學習實戰(zhàn)】系列文章主要介紹機器學習的各種算法模型及其實戰(zhàn)案例,歡迎點贊,關(guān)注共同學習交流。 關(guān)注GZH: 阿旭算法與機器學習 ,回復:“ ML36 ”即可獲取本文數(shù)據(jù)集、源碼與項目文檔 pregnant glucose bp skin insulin bmi pedigree age label 0 6 148 72 35 0 33.6 0.627 50 1 1 1

    2024年02月11日
    瀏覽(25)
  • 計算機視覺:點云的PCD和BIN格式及其轉(zhuǎn)換與可視化

    點云數(shù)據(jù)通常以不同的格式存儲,其中PCD(Point Cloud Data)和BIN(Binary)是兩種常見的格式,用于表示三維點云數(shù)據(jù)。下面是它們的具體介紹: PCD格式是一種常見的開放式點云數(shù)據(jù)存儲格式,最初由ROS(Robot Operating System)中的PCL(Point Cloud Library)項目引入,現(xiàn)在廣泛用于點云

    2024年02月03日
    瀏覽(19)
  • PyG基于Node2Vec實現(xiàn)節(jié)點分類及其可視化

    PyG基于Node2Vec實現(xiàn)節(jié)點分類及其可視化

    大家好,我是阿光。 本專欄整理了《圖神經(jīng)網(wǎng)絡(luò)代碼實戰(zhàn)》,內(nèi)包含了不同圖神經(jīng)網(wǎng)絡(luò)的相關(guān)代碼實現(xiàn)(PyG以及自實現(xiàn)),理論與實踐相結(jié)合,如GCN、GAT、GraphSAGE等經(jīng)典圖網(wǎng)絡(luò),每一個代碼實例都附帶有完整的代碼。 正在更新中~ ? ?? 我的項目環(huán)境: 平臺:Windows10 語言環(huán)

    2024年02月02日
    瀏覽(23)
  • Python數(shù)據(jù)分析案例12——網(wǎng)飛影視劇數(shù)據(jù)分析及其可視化

    Python數(shù)據(jù)分析案例12——網(wǎng)飛影視劇數(shù)據(jù)分析及其可視化

    Netflix是最受歡迎的媒體和視頻流平臺之一。他們的平臺上有超過 8000 部電影或電視節(jié)目。截至 2021 年年中,他們在全球擁有超過 2 億訂閱者。 博主看美劇也較為多,像《怪奇物語》、《性愛自修室》等高分美劇都是網(wǎng)飛的。 對于網(wǎng)飛的影視劇,我們可以分析其電影和電視劇

    2024年02月08日
    瀏覽(26)
  • Unity制作數(shù)據(jù)可視化三維場景

    數(shù)據(jù)可視化大屏是這幾年比較熱門的一個方向,人們對數(shù)據(jù)的感知方式,也慢慢要求更嚴苛了。 Bi報表到數(shù)據(jù)可視化大屏,再到三維可視化大屏,這個發(fā)展趨勢也體現(xiàn)了人們在使用數(shù)據(jù)可視化大屏時對效果的要求逐漸提高。 2維圖表在過去幾年的使用中,不斷完善,已經(jīng)有了

    2023年04月10日
    瀏覽(23)
  • RabbitMQ 03 直連模式-可視化界面

    RabbitMQ 03 直連模式-可視化界面

    這里先演示最簡單的模型:直連模式。其結(jié)構(gòu)圖為: 一個生產(chǎn)者 - 消息隊列 - 一個消費者 生產(chǎn)者只需要將數(shù)據(jù)丟進消息隊列,而消費者只需要將數(shù)據(jù)從消息隊列中取出,這樣就實現(xiàn)了生產(chǎn)者和消費者的消息交互。 創(chuàng)建一個新的實驗環(huán)境,即新建一個Virtual Host。 添加新的虛擬

    2024年02月11日
    瀏覽(22)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包