Unity編輯器擴充套件學習筆記(一)——新增選單選項
以前一直沒用到編輯器擴充套件這一塊,上一次用還是當初在培訓機構老師教編寫打包工具的時候,那時候剛接觸unity聽不大懂也不知道幹啥用。轉眼就過去了好久。
最近遇到一些情況,有時候需要修改多個GameObject身上的屬性,有時候需要按照規律建立多個GameObject,這些事如果手動來做真的是太扯淡了。
所以我花時間學習了一下,算是又進步了一點。
考慮到之前做的筆記好像很是混亂,我決定以後每篇篇幅更短一些,儘量一篇只記錄一個重要點的知識點。
如何在unity選單裡新增自己的選單項
除了自己新增一個頂級的選單選項外,還可以在其他項下新增選單,GameObject、Component等都可以。只是因為QQ截圖時選單會縮回去,因此無法截圖。
想要新增自己的選單項:
1.首先在Assets目錄(子目錄也沒有關係)下新建一個Editor資料夾
2.在Editor下建立指令碼,using UnityEditor;不需要繼承自誰
3.編寫一個靜態方法,在方法前一行加上[MenuItem("頂級選單項/選項")]
(比如想在GameObject選單下新增一個CreateCube選項,則應該這麼書寫[MenuItem("GameObject/CreateCube")])
總之,靜態方法決定了它要做什麼,MenuItem決定了顯示在選單哪裡,如果不是想放在GameObject下而是自己新建可以將GameObject換成MyTools之類,就會和上面的圖片一樣新建一個頂層的選單項。另外選單是可以多層的,也就是說可以多幾個“/”。
另外,menuitem所新增的選單選項,如果新增在GameObject下,那麼在Hierarchy面板上右鍵也會顯示,新增在Assets下,在Project面板下右鍵也會顯示。
在這裡先貼一個模仿Unity原本的建立Cube的功能
/// <summary> /// 模仿建立一個cube /// </summary> [MenuItem("GameObject/CreateCube",false,10)] static void CreateCube() { GameObject go = GameObject.CreatePrimitive(PrimitiveType.Cube); //if (Selection.activeGameObject != null) { //如果選中了一個遊戲物件,新建立的cube將是它的子物體 GameObjectUtility.SetParentAndAlign(go, Selection.activeGameObject); //} //在撤銷系統中註冊這一次建立事件 Undo.RegisterCreatedObjectUndo(go, "create" + go.name); //設定預設選中新建立的遊戲物件 Selection.activeObject = go; }
MenuItem的第二個引數代表是否為驗證方法(後面會單獨記),第三個引數代表了選單項的排序,數值越小越靠前,每11為一個分組,每個分組在選單中用白線隔開。
相關推薦
Unity編輯器擴充套件學習筆記(一)——新增選單選項
以前一直沒用到編輯器擴充套件這一塊,上一次用還是當初在培訓機構老師教編寫打包工具的時候,那時候剛接觸unity聽不大懂也不知道幹啥用。轉眼就過去了好久。 最近遇到一些情況,有時候需要修改多個GameObject身上的屬性,有時候需要按照規律建立多個GameObject,這些
Unity Shader學習筆記(一)坐標變換
directx 渲染 系列 約束 shade ace cnblogs 相機 它的 基本問題 試想我們的美術做了一個3D模型,然後渲染引擎把模型渲染到屏幕上。我們還可以選定不同的視角,模擬不同的光照條件去觀察模型。現在來分析一下這個過程。如果說我們把這個過程看成一個函數,
Tomcat學習筆記(一)一個簡單的Web服務器
sub 調用 [] ont 拒絕 address 剖析 文件 getprop 內容為《深入剖析Tomcat》第一章重點,以及自己的總結,如有描述不清的,可查看原書。 一、HTTP協議: 1、定義:用於服務器與客戶端的通訊的協議,允許web服務器和瀏覽器通過互聯網進行發送和接
BOM學習筆記(一)開啟新連結四種方式、視窗屬性、定時器
BOM:專門操作瀏覽器視窗的物件 1、window物件充當2個角色: 1. 全域性物件 2. 包含BOM常用物件
鬆翰微控制器--SN8F5702學習筆記(一)uart暫存器
暫存器 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 S0CON SM0 SM
Unity ECS學習筆記(一)
ECS架構概述 ECS術語 實體Entity:像容器一樣 元件資料Component Data:要儲存在實體中的資料(不包括處理) 元件系統ComponentSystem:處理 組Group:元件系統執行所需的ComponentData列表 Unity官版ECS主要特徵如下:
unity shader學習筆記(一)——基礎光照之標準光照模型定義
標準光照模型 標準光照模型只關心直接光照(direct light)。它把進入攝像機的光照分為4個部分: 自發光(emissive),這部分用於給定一個方向時,物體表面會向這個方向產生多少的光,當沒有使用全域性光照時,自發光物體不會照亮周圍物體,只是本身看
[持續更新]CSS3學習筆記(一)偽類選擇器&自定義字型&背景圖片
CSS3學習筆記 1. 偽類選擇器 CSS3之前的偽類共有:::first-line,::first-letter, :after, :before, :hover, :active, :visited, :focus, :link,:first-child, :l
Unity學習筆記(一)——基本概念之場景(Scene)
場景,顧名思義就是我們在遊戲中所看到的物品、建築、人物、背景、聲音、特效等,基本上和我們玩遊戲時所看到的遊戲“場景”是同一個概念。 Unity 3D中,“場景”是一個檢視,我們通過“場景”這個檢視,來編輯、佈置遊戲中玩家所能見到的影象和聲音。 安裝完並執行Unity 3D,
ES6學習筆記(一)——字串的擴充套件
預備知識 utf-16:把Unicode字符集的抽象碼位對映為16位長的整數(即碼元)的序列,Unicode字元的碼位,需要1個或2個16位的碼元來表示。 utf-32:使用32個位元對每個Unicode碼位進行編碼,編碼長度是固定的,即32位。 js
unity編輯器擴充套件學習
擴充套件編輯器實際上就是在unity選單欄中新增一些按鈕,可以一鍵執行一些重複性的工作。 一.新增按鈕 1.簡單使用MenuItem特性 using UnityEngine; using UnityEditor; public class Tools { [MenuItem("Tools/test
python框架之 Tornado 學習筆記(一)
tornado pythontornado 一個簡單的服務器的例子:首先,我們需要安裝 tornado ,安裝比較簡單: pip install tornado 測試安裝是否成功,可以打開python 終端,輸入: import tornado.https
Scala學習筆記(一)編程基礎
大數據 上一個 extends 移除 condition api arr 調用方法 tab 強烈推薦參考該課程:http://www.runoob.com/scala/scala-tutorial.html 1. Scala概述 1.1. 什麽是Scala Scala
3D Game Programming withDX11 學習筆記(一) 數學知識總結
表示 圖形 http 根據 轉置 元素 material -s com 在圖形學中,數學是不可或缺的一部分,所以本書最開始的部分就是數學知識的復習。在圖形學中,最常用的是矢量和矩陣,所以我根據前面三個章節的數學知識,總結一下數學知識。 一、矢量 數學中的矢量,擁有
系統分析與設計學習筆記(一)
學習 掌握 應該 溝通 基本 最終 表示 對象 毫無 為什麽要學習這門課程? “擁有一把錘子未必能成為建築師”。 這門課程學習的是面向對象分析和設計的核心技能的重要工具。對於使用面向對象技術和語言來,創建設計良好、健壯且可維護的軟件來說,這門課程所
最大熵學習筆記(一)預備知識
color wrap targe dsm entropy plus 文件 eight 相關鏈接 生活中我們常常聽到人們說“不要把雞蛋放到一個籃子裏”。這樣能夠減少風險。深究一下,這是為什麽呢?事實上,這裏邊包括了所謂的最大熵原理(The Maxim
Nginx模塊之Nginx-Ts-Module學習筆記(一)搶險體驗
學習筆記 體驗 nginx模塊 int images clas tps gin issues 1、通過HTTP接收MPEG-TS2、生產和管理Live HLS 3、按照官方的編譯和配置,當然了我是第一次編譯沒有通過,在作者重新調整下,編譯成功,感謝:@arut https:
jq學習筆記(一)
簡單 ren 當前 一個 text 互斥 元素 如果 property 1 .attr() 與 .removeAttr()方法 - atr()方法用來獲取和設置元素屬性 attr()有4個表達式: attr(傳入屬性名):獲取屬性的值 attr(屬性名, 屬性
Redis學習筆記(一)關於在windows64位環境下的安裝學習使用
客戶端 mas key-value 錯誤 services 再次 基準 alt 類型 前言 由於工作需要,目前我正在學習使用Redis。我當時學習Redis就從網上下載了點資料就開始學習了。入門看的是《REDIS入門指南》,這本書個人覺得很適合新手用來學習接觸。根據書上的引
Memcache 學習筆記(一)----Memcache — Linux部署
工作 apach sch trick 解壓 font ash 一個 鍵值 Memcache 一、Memcache簡介(內容摘自 --百度百科) memcache是一套分布式的高速緩存系統,由LiveJournal的Brad Fitzpatrick開發,但目前被許多網