【第零章編輯器開發與拓展】

前言:對編輯器拓展與開發可以節省很多時間,提高開發效率,比如技能編輯器,關卡編輯器這種。當然這只是編輯器開發的一些典型應用,它能做不止這些。學習完這個之后,我們可以開發項目需要的工具。我本意在編輯器里為新項目使用的一個開源框架編寫使用文檔、項目文檔。
編輯器開發與拓展,unity給我們提供了很多類,用來實現編輯器的開發。下面簡單介紹一下,實際上也就幾個類,簡單理解就是

  • ??UI層??:GUILayout/EditorGUILayout區別點擊鏈接跳轉了解一下就行)
  • 數據層??:SerializedObject/SerializedProperty
  • 交互層??:Handles
  • 容器層??:Editor/EditorWindow
  • 擴展層??:PropertyDrawer
  • 輔助層??:Undo/EditorUtility
層級核心類職責描述補充說明
數據層SerializedObject
SerializedProperty
安全訪問序列化數據
? 多對象編輯支持
? 臟數據標記
? 撤銷操作集成
編輯器與游戲對象間的數據橋梁,確保修改符合序列化規則
交互層Handles3D場景交互控制
? 場景視圖控件繪制
? Gizmo操作
? 3D輸入事件處理
Unity場景編輯的直接操作接口,提供可視化編輯能力
容器層Editor
EditorWindow
UI容器管理
? Inspector面板容器
? 工具窗口框架
? 生命周期控制
編輯器擴展的基礎容器,分別用于組件面板和獨立工具窗口
擴展層PropertyDrawer屬性定制渲染
? 數據類型可視化擴展
? 自定義屬性布局
? 渲染邏輯封裝
針對特定數據類型(枚舉/結構體)的渲染擴展點
輔助層Undo
EditorUtility
開發輔助工具
? 操作歷史管理
? 進度條/彈窗控制
? 對象狀態管理
編輯器工作流的效率工具集,提升開發體驗和操作安全性
類名核心職責詳細說明
GUILayout 與 EditorGUILayoutUI 控件渲染負責 UI 控件的繪制和布局管理:
? GUILayout:基礎 UI 布局,適用于運行時和編輯器
? EditorGUILayout:編輯器專用 UI,支持序列化屬性
兩者區別詳見正文
SerializedObject數據安全管理提供對序列化數據的安全訪問:
? 獲取 / 修改屬性值
? 支持多對象編輯
? 自動處理臟數據標記
Undo操作歷史管理實現撤銷 / 重做功能:
? 記錄對象修改歷史
? 支持多步撤銷
? 集成 Unity 編輯菜單
EditorUtility工具輔助提供實用編輯器服務:
? 進度條顯示(DisplayProgressBar)
? 對話框(DisplayDialog)
? 對象臟標記(SetDirty)
Handles3D 場景交互Scene 視圖專用控件:
? 創建移動 / 旋轉 / 縮放手柄
? 繪制自定義 Gizmo
? 3D 輔助線繪制
EditorWindow窗口容器創建自定義工具窗口:
? 窗口生命周期管理
? 面板布局控制
? 菜單欄集成(MenuItem 屬性)
PropertyDrawer屬性定制顯示特殊數據類型渲染優化:
? 枚舉可視化
? 結構體自定義布局
? 數據驗證(范圍 / 格式檢查)
EditorInspector 定制自定義組件檢視面板:
? 重寫 OnInspectorGUI()
? 使用 OnSceneGUI() 添加場景交互

在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/914663.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/914663.shtml
英文地址,請注明出處:http://en.pswp.cn/news/914663.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

使用 mongoimport 導入本地 JSON 文件到 MongoDB 及數據查看指南

在項目中,我們經常需要將本地 JSON 文件批量導入 MongoDB 數據庫。本文以 Ubuntu 22.04 環境為例,詳細記錄了如何安裝 mongoimport 工具、正確導入多個 JSON 文件,以及查看導入后的數據。一、環境介紹操作系統:Ubuntu 22.04.5 LTS…

新手向:Python數據處理Excel報表自動化生成與分析

Python實現Excel報表自動化系統全流程指南本文將詳細介紹如何使用Python實現一個完整的Excel報表自動化系統,涵蓋從數據清洗、分析到可視化報表生成的全流程。本教程面向Python初學者,通過實際案例講解pandas和openpyxl庫的核心用法。系統概述Excel報表自…

【第六節】docker可視化工具portainer安裝

該文章參考了這篇文章https://zhuanlan.zhihu.com/p/27740131259portainer是一個基于網頁的docker可視化管理工具,試想一下我們怎么登錄路由器管理界面的,異曲同工。那么就需要在服務器的docker內安裝portainer,然后在我們的開發機或者說工作…

使用 Certbot 申請和自動續簽 Let’s Encrypt 的免費 SSL 證書

一. Let’s Encrypt 介紹 Let’s Encrypt 是當前最常用的免費 HTTPS 證書生成工具之一。該服務由非營利組織提供,致力于為全球范圍內的網站提供便捷的自動化證書頒發服務。雖然 Let’s Encrypt 證書的有效期只有90天,但是可以自動續期,這使得…

【kubernetes】--controller(DaemonSet)

Kubernetes DaemonSet 控制器詳解 它確保集群中所有(或部分)節點上都運行一個 Pod 的副本。當有新節點加入集群時,DaemonSet 會自動在新節點上創建 Pod;當節點從集群中移除時,這些 Pod 也會被垃圾回收。 DaemonSet 的核心特性 每個節點一個 P…

內測分發平臺應用的異地容災和負載均衡處理和實現思路

內測分發平臺應用的異地容災和負載均衡處理和實現思路如下:一、異地容災1.風險評估和需求分析:對現有的IT基礎設施進行全面的風險評估和需求分析,評估潛在風險和災害的可能性,以及確定業務和數據的關鍵性。2.設計備份架構&#xf…

【Vue】瀏覽器緩存 sessionStorage、localStorage、Cookie

嘿,各位 Vue 開發者們!今天咱們來好好聊聊瀏覽器里的三種緩存方式:sessionStorage、localStorage 和 Cookie。在實際開發中,合理運用這些緩存能讓我們的應用性能大幅提升,同時避免一些不必要的問題。下面就跟著我的筆記…

c#如何將不同類型的數據存儲到一起

在 C# 中,存儲不同類型的數據有多種方式,具體選擇取決于你的需求(類型安全、性能、靈活性等)。以下是常見的解決方案及其適用場景:1. 使用 object 類型(裝箱 / 拆箱)將所有數據轉換為基類 objec…

超唯美治愈風卡通插畫PPT模版

海洋卡通風治愈系PPT模版,兒童可愛治愈可愛PPT模版,治愈風商務通用PPT模版,治愈系課件PPT模版,治愈風插畫PPT模版,超唯美治愈風PPT模版,可愛插畫治愈系女孩PPT模版 超唯美治愈風卡通插畫PPT模版&#xff1a…

el-tooltip 快速滾動的時候出現殘影如何解決 vue3

<el-tooltip:disabled"isScrolling" <!-- 新增滾動狀態綁定 -->:popper-options"{ modifiers: [{ name: computeStyles, options: { adaptive: false }] }"effect"dark":content"label.name"placement"right-start"…

【經典面經】C++新特性 TCP完整收發數據 TLS1.2 TLS1.3

文章目錄cpp新特性C11C14C17C20tcp如何保證完整收發數據結論1. **面向連接的三次握手**2. **字節序號與確認機制**3. **校驗和&#xff08;Checksum&#xff09;**4. **超時重傳與快速重傳**5. **滑動窗口&#xff08;流量控制&#xff09;**6. **數據重組與排序**7. **四次揮手…

Spring AI 系列之十一 - RAG-進階RetrievalAugmentationAdvisor

之前做個幾個大模型的應用&#xff0c;都是使用Python語言&#xff0c;后來有一個項目使用了Java&#xff0c;并使用了Spring AI框架。隨著Spring AI不斷地完善&#xff0c;最近它發布了1.0正式版&#xff0c;意味著它已經能很好的作為企業級生產環境的使用。對于Java開發者來說…

[TOOL] ubuntu 使用 ffmpeg 操作 gif、mp4

文章目錄一、工具安裝二、gif 轉mp4三、mp4 兩倍速一、工具安裝 安裝 ffmpeg 工具&#xff1a; sudo apt install ffmpeg二、gif 轉mp4 1. 配置環境 核心指令: ffmpeg -i input.mp4 -filter_complex "[0:v]setpts0.5*PTS[v];[0:a]atempo2.0[a]" -map "[v]&q…

linux中INIT_MM_CONTEXT宏對pgd的重復賦值

在GNU C中&#xff0c;支持通過標號元素對指定結構體成員名進行初始化&#xff0c;這允許初始化值以任意順序出現。在linux內核中對init_mm初始化時有如下代碼。#define INIT_MM_CONTEXT(name) \.pgd init_pg_dir,struct mm_struct init_mm {.mm_rb RB_ROOT,.pgd swapper…

第十五章 STL(stack、queue、list、set、map容器使用)

棧stack使用&#xff1a;隊列queue雙向循環鏈表listlist構造函數list 賦值和交換list 大小操作list 插入和刪除list 數據存取list 反轉和排序排序算法sort降序操作排序案例#include<iostream> using namespace std; #include<list>class Person { private:string n…

【論文閱讀】HCCF:Hypergraph Contrastive Collaborative Filtering

論文出處&#xff1a;SIGIR 2022 CCF-A 論文地址&#xff1a;Hypergraph Contrastive Collaborative Filtering 論文代碼&#xff1a;akaxlh/HCCF: HCCF, SIGIR 2022 目錄 摘要 介紹 研究背景與核心問題 現有方法局限性 HCCF的創新解決方案 技術優勢 定義與相關工作 …

Retrofit+RxJava:打造聲明式REST客戶端的藝術 —— 像點咖啡一樣調用API

目錄一、告別Callback地獄&#xff1a;聲明式編程的魅力1.1 傳統網絡請求的痛點1.2 Retrofit的聲明式革命二、Retrofit核心配置工廠2.1 構建Retrofit實例2.2 常用注解速查表三、RxJava響應式魔法3.1 鏈式調用優雅變身3.2 超能力操作符盤點四、實戰演練&#xff1a;構建天氣查詢…

【離線數倉項目】——任務調度與數據可視化實戰

摘要 本文主要圍繞離線數倉項目中的任務調度與數據可視化實戰展開&#xff0c;介紹了業務流程虛擬節點、離線數倉任務調度、數據可視化等方面的內容&#xff0c;涉及DataWorks和QuickBI等工具的使用&#xff0c;并提供了相關的博文參考和項目實戰域信息。 1. 任務調度管理實戰…

【視頻格式轉換】.264格式轉為mp4格式

背景 視頻格式轉換是多媒體處理中的常見需求&#xff0c;尤其在視頻編輯、存儲或跨平臺播放時。H.264&#xff08;即AVC&#xff09;是一種廣泛使用的視頻編碼標準&#xff0c;以其高壓縮率和良好兼容性著稱&#xff0c;但通常以容器格式&#xff08;如.264裸流文件&#xff0…

JAVA學習筆記 使用notepad++開發JAVA-003

目錄 1 前言 2 部署notepad的java開發環境 2.1 下載并安裝notepad 2.2 設置新建文件的語言 2.3 安裝NppExec插件 2.4 編寫JAVA腳本 2.5 設置腳本執行快捷鍵 2.6 效果測試 3 小結 1 前言 JAVA可以使用記事本來編寫代碼&#xff0c;但是這種方式效率十分低下。我們可以使…