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

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

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

【Unity之IMGUI腳本封裝】—編譯模式下控件可視化及其封裝,# UnityGUI篇,# unity實戰(zhàn)基礎(chǔ),unity,游戲引擎


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

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

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

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

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




?前言?

【Unity之IMGUI腳本封裝】—編譯模式下控件可視化及其封裝,# UnityGUI篇,# unity實戰(zhàn)基礎(chǔ),unity,游戲引擎

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

【Unity之IMGUI腳本封裝】—編譯模式下控件可視化及其封裝,# UnityGUI篇,# unity實戰(zhàn)基礎(chǔ),unity,游戲引擎


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


此圖可忽略

【Unity之IMGUI腳本封裝】—編譯模式下控件可視化及其封裝,# UnityGUI篇,# unity實戰(zhàn)基礎(chǔ),unity,游戲引擎

  • UML類圖
    【Unity之IMGUI腳本封裝】—編譯模式下控件可視化及其封裝,# UnityGUI篇,# unity實戰(zhàn)基礎(chǔ),unity,游戲引擎

  • 性能優(yōu)化代碼
    【Unity之IMGUI腳本封裝】—編譯模式下控件可視化及其封裝,# UnityGUI篇,# unity實戰(zhàn)基礎(chǔ),unity,游戲引擎

  • 完整代碼:

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.避免了運行時重復(fù)執(zhí)行該API。消耗性能
            if( !Application.isPlayer)
            {
                allContorls = this.GetComponentsInChildren<ControlFather>();
            }
            item.Judge();
        }
    }
}


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


【Unity之IMGUI腳本封裝】—編譯模式下控件可視化及其封裝,# UnityGUI篇,# unity實戰(zhàn)基礎(chǔ),unity,游戲引擎
【Unity之IMGUI腳本封裝】—編譯模式下控件可視化及其封裝,# UnityGUI篇,# unity實戰(zhàn)基礎(chǔ),unity,游戲引擎

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


【Unity之IMGUI腳本封裝】—編譯模式下控件可視化及其封裝,# UnityGUI篇,# unity實戰(zhàn)基礎(chǔ),unity,游戲引擎

  • 目的: 便于套用

代碼集結(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.避免了運行時重復(fù)執(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; 
                                            //事件的添加在此起到妙用
                                            //只要在外部給予響應(yīng)函數(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進(jìn)行界面渲染,對于畫面質(zhì)量要求較高,例如客戶端游戲,4k/8k視頻播放時,用ImGUI是很好的選擇,當(dāng)然,你得非常熟悉DirectX或者OpenGL,不然就是寶劍在手,屠龍無力。相對于Qt、MFC、DuiLib、SOUI等,ImGUI的拓展性更好,也更輕量級,當(dāng)然對于開發(fā)者的要求也更高.

?????


?【Unityc#專題篇】之c#進(jìn)階篇】

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

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

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

?【Unityc#專題篇】—進(jìn)階章題單實踐練習(xí)

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

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


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


【Unity之IMGUI腳本封裝】—編譯模式下控件可視化及其封裝,# UnityGUI篇,# unity實戰(zhàn)基礎(chǔ),unity,游戲引擎文章來源地址http://www.zghlxwxcb.cn/news/detail-612045.html


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

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

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

相關(guān)文章

  • 【Unity之IMGUI】—位置信息類和控件基類的封裝

    【Unity之IMGUI】—位置信息類和控件基類的封裝

    ?????個人主頁 :@元宇宙-秩沅 ????? hallo 歡迎 點贊?? 收藏? 留言?? 加關(guān)注?! ????? 本文由 秩沅 原創(chuàng) ????? 收錄于專欄 : 缺點1:無法在編譯過程進(jìn)行可視化調(diào)整 缺點2:無法分辨率自適應(yīng) 作用:讓控件根據(jù)調(diào)整對齊 最終代碼 特點: 類是抽象類:原因基類

    2024年02月12日
    瀏覽(26)
  • 【unity之IMGUI實踐】敵方邏輯封裝實現(xiàn)【六】

    【unity之IMGUI實踐】敵方邏輯封裝實現(xiàn)【六】

    ?????個人主頁 :@元宇宙-秩沅 ????? hallo 歡迎 點贊?? 收藏? 留言?? 加關(guān)注?! ????? 本文由 秩沅 原創(chuàng) ????? 收錄于專欄 : unityUI專題篇 ??? ??????:步驟實現(xiàn) 1.炮臺的行為邏輯封裝:旋轉(zhuǎn),觸發(fā)檢測,發(fā)射炮彈及特效 2.檢測玩家后自動瞄準(zhǔn)攻擊 3.玩家扣

    2024年02月15日
    瀏覽(32)
  • 【unity之IMGUI實踐】游戲結(jié)束流程封裝實現(xiàn)【七】

    【unity之IMGUI實踐】游戲結(jié)束流程封裝實現(xiàn)【七】

    ?????個人主頁 :@元宇宙-秩沅 ????? hallo 歡迎 點贊?? 收藏? 留言?? 加關(guān)注?! ????? 本文由 秩沅 原創(chuàng) ????? 收錄于專欄 : unityUI專題篇 ??? ??????:步驟實現(xiàn) 1.坐標(biāo)三個轉(zhuǎn)化 2.GUI的原點和屏幕的原點 3.結(jié)構(gòu)體的特點回顧——涉及Rect_結(jié)構(gòu)體類型 4.血條的

    2024年02月14日
    瀏覽(25)
  • 【unity之IMGUI實踐】通用API實現(xiàn)抽象行為封裝【五】

    【unity之IMGUI實踐】通用API實現(xiàn)抽象行為封裝【五】

    ?????個人主頁 :@元宇宙-秩沅 ????? hallo 歡迎 點贊?? 收藏? 留言?? 加關(guān)注?! ????? 本文由 秩沅 原創(chuàng) ????? 收錄于專欄 : unityUI專題篇 ??? ??????:步驟 1.添加道具預(yù)制體(隨機生成武器) 2.封裝道具基類 3.封裝武器道具邏輯 1.封裝道具基類 封裝武器道具

    2024年02月15日
    瀏覽(24)
  • 【unity之IMGUI實踐】單例模式管理數(shù)據(jù)存儲【二】

    【unity之IMGUI實踐】單例模式管理數(shù)據(jù)存儲【二】

    ?????個人主頁 :@元宇宙-秩沅 ????? hallo 歡迎 點贊?? 收藏? 留言?? 加關(guān)注?! ????? 本文由 秩沅 原創(chuàng) ????? 收錄于專欄 : unityUI專題篇 ??? ??????:步驟實現(xiàn) 1.首先將音樂數(shù)據(jù)封裝在類中,不采用單例模式 2. 而后封裝一個游戲數(shù)據(jù)類為單例模式:功能

    2024年02月16日
    瀏覽(26)
  • 【unity之IMGUI實踐】單例模式管理面板對象【一】

    【unity之IMGUI實踐】單例模式管理面板對象【一】

    ?????個人主頁 :@元宇宙-秩沅 ????? hallo 歡迎 點贊?? 收藏? 留言?? 加關(guān)注?! ????? 本文由 秩沅 原創(chuàng) ????? 收錄于專欄 : unityUI專題篇 ??? API:簡單的旋轉(zhuǎn) 解析: 1.采用單例模式,原因: 單例模式無法被纂改基類,適合當(dāng)管理者 2.基類提取了子類所有的共

    2024年02月15日
    瀏覽(29)
  • WPF 組態(tài)軟件實現(xiàn)思路(WPF控件可視化布局)

    WPF 組態(tài)軟件實現(xiàn)思路(WPF控件可視化布局)

    一、實現(xiàn)控件選中及自由拖動 二、實現(xiàn)控件對齊功能 三、實現(xiàn)對齊輔助線功能 四、實現(xiàn)框選功能 GitHub地址點此 屬性編輯控件基于Devexpress V21.2.3 控件庫,如需編譯需購買及安裝 Devexpress V21.2.3 開發(fā)庫 腳本編輯基于AvalonEdit開源庫 https://github.com/icsharpcode/AvalonEdit 圖標(biāo)控件基于

    2024年02月04日
    瀏覽(66)
  • 關(guān)于圖像分割項目的可視化腳本

    關(guān)于圖像分割項目的可視化腳本

    之前實現(xiàn)了目標(biāo)檢測和圖像分類任務(wù)的可視化腳本,本章將最后一個分割任務(wù)的可視化腳本實現(xiàn) 效果展示如下: 代碼會在當(dāng)前目錄保存展示好的圖片,從左到右依次為,原圖、mask圖、mask覆蓋在原圖的掩膜圖 關(guān)于目標(biāo)檢測的可視化: VOC:關(guān)于目標(biāo)檢測任務(wù)中,XML(voc格式)標(biāo)

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

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

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

    2024年02月06日
    瀏覽(28)
  • 界面控件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ù)應(yīng)用程序。

    2024年02月13日
    瀏覽(21)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包