1. 程式人生 > >Unity 特性(Attribute)總覽

Unity 特性(Attribute)總覽

Unity 特性 總覽

  在Unity中,我個人覺得最常見的特性就是Serializeble、HideInInspector、和CreateAssetMenu了,但還有其他其他特性也非常實用,這裡就簡單總結其用法。

*下面所有特性名稱省略Attribute字尾。圖片小,可以在新視窗開啟圖片。

System名稱空間下

特性 描述 程式碼 樣例圖示
Serializable 序列化一個類,作為一個子屬性顯示在監視面板。
NonSerialized 反序列化一個變數,並且在監視版上隱藏。

UnityEngine名稱空間下

特性 描述 程式碼 樣例圖示
AddComponentMenu 可以新增一個元件選單項到編輯器裡。
AssemblyIsEditorAssembly 彙編級別的屬性。帶了這個屬性的類就被認為是編輯器類。只能對於程式集有效,具體怎麼用不知道呢,網上也沒找到用法。 略。
ColorUsage 可以修改Color的配置,是否顯示Alpha通道,或者使用HDR模式。
ContextMenu 給指令碼右鍵選單新增一個自定義方法,不能是靜態的。
ContextMenuItem 給欄位右鍵選單新增一個自定義方法,不能是靜態的。
CreateAssetMenu 用於ScriptableObject的子類,將這個類(相當於資原始檔新增到Asset選單項中),關於ScriptableObject具體可以看這位大神的Blog。
Delayed 用於float、int、或string變數,只有按了回車或焦點離開欄位才會返回新值。
DisallowMultipleComponent 用於MonoBehaviour或其子類,不能重複新增這個類的元件,重複新增會彈出對話方塊。
ExecuteInEditMode 帶了這個特性的例項會直接在編輯模式下就執行,但不是像進入遊戲模式那樣時刻執行:1、Update在這個場景中任意物體變化了執行;2、OnGUI在Game View接收到一個Event時執行;3、OnRenderObject和其他渲染回撥函式在Scene View 或 Game View重新渲染時執行。 略。
GUITarget 選擇哪些顯示器呼叫OnGUI函式。 = =沒這能力展現這效果。
Header 標題特性,給監視版加一個小標題。
HelpURL 給類提供一個自定義文件URL。如圖可以按Ctrl+滑鼠左鍵跳轉到目標。 同左邊。
HideInInspector 只是隱藏變數在監視板裡,不改變序列化屬性。
ImageEffectAllowedInSceneView 使用了這個特性的影象特效可以渲染在 SceneView的攝像機上。 ImageEffect這東西在Unity Pro上才有,GG了。
ImageEffectOpaque
ImageEffectTransformsToLDR 在HDR渲染模式下,使用影象特效用LDR渲染模式。
Multiline 可以讓string變數在監視板上多加幾行。
PreferBinarySerialization 只能用於ScriptableObject 子類,用二進位制序列化,有利於處理大量資料的資原始檔,提升讀寫效能。主要缺點是二進位制的檔案我們看不懂,還有不能用版本控制軟體合併它。 不知道怎麼舉例呢(:з」∠),自己看官網咖。
Property 這個是監視板裡面修改樣式的抽象基類,例如顯示小標題、顯示多行編輯文字等等都是以它為基類。 抽象類,沒例子,略。
Range 在監視面板限制int或float型別變數值。但有個BUG,看右邊程式碼,所以個人建議還是用屬性(Property)配合Mathf.Clamp使用來限制數值大小。
RequireComponent 自動新增需要的元件。若已存在則不額外新增。這樣指令碼就可以安全的使用該元件。
RPC 用於Networking,但廢棄了。 略。
RuntimeInitializeOnLoadMethod 不用作為元件新增到物件也可以直接自動呼叫初始化方法。要求方法為靜態,類、方法可以為私有。當開始遊戲就會呼叫,但有多個這種特性的方法呼叫順序是不能確定的。
SelectionBase 帶這個特性的GameObject,如果點選本身就一定選中本身,即便父物件也有這特性;如果子物件沒有帶這個特性,則當在場景點選子物件時,選中的是帶特性的父物件;如果父物件和父父物件都有這特性,選父物件。
SerializeField 序列化欄位,主要用於序列化私有欄位。
SharedBetweenAnimators 用於StateMachineBehaviour,類似prefab,Animator之間公用這個例項,減少記憶體消耗。 暫時略。
Space 用於在監視板上加空行。
TextArea 讓string在監視板上顯示成帶滾動條的文字域。
Tooltip 給監視板的欄位新增小貼士。及滑鼠指向欄位顯示的提示。
UnityAPICompatibilityVersion 用來宣告程式集的API版本,避免處理時是否可以用舊版本的Unity API。 略。

UnityEditor名稱空間下

特性 描述 程式碼 樣例圖示
CallbackOrder 所有帶order(順序)回撥屬性的特性基類。 略。
CanEditMultipleObjects 使自定義編輯器支援同編輯多個物件,一般配合CustomEditor使用類。
CustomEditor 要自定義編輯器就要加這個特性。
CustomPreview 新增自定義型別的preview在監視板。 暫時略。
CustomPropertyDrawer 自定義屬性渲染,如果要自定義PropertyDrawer或 DecoratorDrawer,要加上這個特性。 暫時略。
DrawGizmo 自定義Gizmo渲染方法任何元件,方法可以定義在任意類而且不用新增到元件,但必須為靜態。 方法呼叫了,但不知道為什麼沒有渲染,暫略。
InitializeOnLoad 當Unity工程裝載時,會自動呼叫一個類來初始化,這個類必須有靜態建構函式。
InitializeOnLoadMethod 同上,只不過這個是呼叫靜方法。 略。
MenuItem 新增選單項,必須是靜態方法。第二個引數若為true,則會先判斷改方法是否返回true,若是,則可以使用,若為false,這按鈕是不可用的(灰色的)。更多用法看官網教程這裡。
PreferenceItem 給Preference視窗新增選單項,呼叫的也是靜態方法。例子是官方的。

相關推薦

Unity 特性Attribute總覽

Unity 特性 總覽   在Unity中,我個人覺得最常見的特性就是Serializeble、HideInInspector、和CreateAssetMenu了,但還有其他其他特性也非常實用,這裡就簡單總結其用法。 *下面所有特性名稱省略Attribu

C 特性Attribute學習

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

js便籤筆記2——DOM元素的特性Attribute和屬性Property

** 本文轉載自:https://www.cnblogs.com/wangfupeng1988/p/3631853.html (感謝分享) 1.介紹: 上篇js便籤筆記http://www.cnblogs.com/wangfupeng1988/p/3626300.html最後提到了d

C 特性Attribute學習

特性(attribute)是被指定給某一宣告的一則附加的宣告性資訊。在C#中,有一個小的預定義特性集合。在學習如何建立我們自己的定製特性(custom attributes)之前,我們先來看看在我們的程式碼中如何使用預定義特性。  using System;   public class AnyClass {

Unity3D編輯器擴充套件——常用特性(Attribute)以及Selection類 Unity3D編輯器擴充套件——定義自己的選單按鈕 Unity3D編輯器擴充套件——定義自己的視窗 Unity3D編輯器擴充套件——使用GUI繪製視窗 Unity3D編輯器擴充套件

前面寫了四篇關於編輯器的: Unity3D編輯器擴充套件(一)——定義自己的選單按鈕 Unity3D編輯器擴充套件(二)——定義自己的視窗 Unity3D編輯器擴充套件(三)——使用GUI繪製視窗 Unity3D編輯器擴充套件(四)——擴充套件自己的元件 今天我們來講解在編輯器擴充套件中我們常用的特

X名稱空間的特性Attributex:key和x:type

x名稱空間指向http://schemas.microsoft.com/winfx/2006/xaml.它包含的類與xaml有關. 大致有以下一些: attribute: X:class          告訴XAML編譯器將XAML標籤的編譯結果與後臺的哪個類合併 x:c

javascript 特性attribute與屬性property

特性和屬性是javascript中兩個很重要同時也很容易混淆的概念: 特性(attribute) 是DOM構建的一個組成部分 屬性(property) 是元素保持執行時資訊的主要手段,並且可以通過屬性獲取這些執行時資訊 我們可以通過一個簡單的示例來演示

.NET(C#):獲取方法返回值的自定義特性Attribute

.NET中特性的索取就是圍繞著ICustomAttributeProvider介面(System.Reflection名稱空間內),而MethodInfo類的ReturnTypeCustomAttributes屬性直接返回方法返回值的ICustomAttributeProvider介面物件。同時Method

C#特性Attribute之預定義特性Conditional

特性(Attribute)是用於在執行時傳遞程式中各種元資料(類、方法、結構、列舉、元件)的行為性宣告標籤。 特性用於新增元資料,如編譯器指令和註釋、描述、方法、類等其他資訊。 .NET 框架提供了兩

C#-特性Attribute

概念 特性是一種允許我們向程式的程式集新增元資料的語言結構,它是用於儲存程式結構資訊的某種特殊型別的類。可以通過使用特性向程式新增宣告性資訊。一個宣告性標籤是通過放置在它所應用的元素前面的方括號([ ])來描述的。MSDN解釋為:特性提供功能強大的方法,用以將元資料或宣告資訊與程式碼(程式集、型別、方法、屬性

C# 特性詳解Attribute

今天整理關於特性的資料,之前都忘了,今天整理一下 參考《C#高階程式設計》第10版 0X01 特性(Attribute) 特性定義 特性不會影響編譯過程,因為編譯器不能識別它們,但這些特性在應用於程式元素

C# 高階特性Attribute和反射

使用Attribute的時候大多需要用到反射,所以放在一起。 Attribute: 我的理解是,它可以給你的類、方法、欄位等新增一些描述性語言,在執行期間又可以通過反射的方法獲取它的內容。 在編譯期間就初始化好了。 反射: 通過反射可以在不瞭解物件的內容時,操作物件。 優點

特性property

clas 設定 之前 封裝 方法 使用 peer print 存放位置 6.4 特性(property) 1 什麽是特性property property是一種特殊的屬性,訪問它時會執行一段功能(函數)然後返回值 import math class Circle:

bash基礎特性1

defaults history 緩沖區 記錄 歷史 所有的環境變量可以通過 ehco $# 查看 #為環境變量 bash的基礎特性:(1)命令歷史 history 環境變量: HISTSIZE:命令歷史記錄的條數 HISTFILE;~/.bash_history HIST

java8新增特性---Lambda表達式

使用 watermark 成員變量 arr mar .net [] size mark Lambda表達式也成為閉包,是java語言層次上的改變,Lambda同意把函數作為一個方法的參數(函數作為參數傳遞進方法中),或者把代碼看成數據。函數

ECMAScript6 | 特性部分

front script dup 結束 全部 默認值 -- 兼容 ada 新特性概覽 參考文章:http://www.cnblogs.com/Wayou/p/es6_new_features.html 這位前輩寫的很好,建議深入學習 —————————————————

【Unity3D基礎教程】給初學者看的Unity教程:如何學習Unity3D

cos 詳解 component lock index unity3d遊戲 design 技術棧 log 【Unity3D基礎教程】給初學者看的Unity教程(零):如何學習Unity3D http://www.cnblogs.com/neverdie/p/How_To_

謝煙客---------Linux之Bash基礎特性2

linux總結Linux之哲學思想 一切皆文件 避免交互,實現Bash編程 文本編程命令實現配置 組合小程序完成復雜任務總結 過程式編程 解釋執行 字符和數值存儲的區別 shebang -> cpu ->解釋器 數據類型 變量類型

無源射頻混頻器的基本特性1

tar media 留下 時域 過程 inter local logs 運算 混頻器的一個重要作用就是頻率搬運,即將中頻信號搬運到射頻段,或者將射頻信號搬運到中頻段,前者稱為上變頻,後者稱為下變頻。 以上變頻為例,在實際使用中f0稱為IF(Intermediate Fre

MySQL 8.0.2復制新特性翻譯

ogl 防止 將不 地址 arc -- 等待 download 日誌 譯者:知數堂星耀隊 MySQL 8.0.2復制新特性 MySQL 8 正在變得原來越好,而且這也在我們MySQL復制研發團隊引起了一陣熱潮。我們一直致力於全面提升MySQL復制,通過引入新的和一些有趣