Unity常用[xxx]用法 特性

UnityEngine命名空間下

標(biāo)記字段

[Space]

可以與上面形成一個(gè)空隙陋葡,可以帶參數(shù)[Space(30)]

[Header(“XXX”)]

在Inspector面板上給定義的字段的上一行加段描述,可以將屬性隔離開鬼譬,形成分組的感覺

[Tooltip(“XXX”)]

在Inspector面板上鼠標(biāo)移上定義的字段彈出描述

[Range(min, max)]

限制數(shù)值變量的取值范圍并以滑動(dòng)條顯示在Inspector中

[HideInInspector]

使屬性在Inspector中隱藏,但是還是可序列化椒舵,想賦值可以通過寫程序賦值序列化

[System.Serializable]

使自定義的類能進(jìn)行序列化类垦,即當(dāng)做一個(gè)public成員的時(shí)候可以在Inspector顯示

[FormerlySerializedAs(“XXX”)]

該屬性可以令變量以另外的名稱進(jìn)行序列化,并且在變量自身修改名稱的時(shí)候政鼠,不會(huì)丟失之前的序列化的值

[ContextMenuItem(“顯示的方法名”,”方法”)]

標(biāo)記字段,給字段右鍵菜單段添加一個(gè)方法

[MultilineAttribute]

在string類型上使用队魏,可以在Editor上輸入多行文字

[TextAreaAttribute]

該屬性可以把string在Inspector上的編輯區(qū)變成一個(gè)TextArea

[NotConvertedAttribute]

在變量上使用公般,可以指定該變量在build的時(shí)候,不要轉(zhuǎn)換為目標(biāo)平臺(tái)的類型

[NotFlashValidatedAttribute]

在變量上使用,在Flash平臺(tái)build的時(shí)候官帘,對(duì)該變量不進(jìn)行類型檢查瞬雹。Unity5.0中已經(jīng)移除了這個(gè)屬性

[NotRenamedAttribute]

禁止對(duì)變量和方法進(jìn)行重命名。Unity5.0中已經(jīng)移除了這個(gè)屬性

標(biāo)記類/方法

[RequireComponent(typeof(ClassName))]

將被標(biāo)記的類拖到(或者AddComponent)GameObject上時(shí)刽虹,自動(dòng)再給你加上“ClassName”這個(gè)類

[ExecuteInEditMode]

在編輯界面讓你的功能(類)(非Play模式)起作用

[AddComponentMenu(“XXX/XX/XXX”)]

讓Component菜單下出現(xiàn)你自定義的類酗捌,位置是“XXX/XX/XXX”

[CustomEditor(typeof(ClassName))]

聲明一個(gè)Class為自定義Editor的Class,可以制作一個(gè)自定義編輯器

[MenuItem(“一級(jí)菜單名/二級(jí)菜單名 _全局快捷鍵”]

標(biāo)記函數(shù):在菜單中出現(xiàn)選項(xiàng)欄,執(zhí)行對(duì)應(yīng)功能状婶。注:對(duì)應(yīng)的函數(shù)必須是static

[MenuItem(“一級(jí)菜單名/二級(jí)菜單名”,false,1)]

第三個(gè)參數(shù)決定菜單的優(yōu)先級(jí)意敛。間隔超過10,就另開一組膛虫,用下劃線分隔

第二個(gè)參數(shù)是true則是是給該菜單項(xiàng)添加驗(yàn)證,分別標(biāo)記兩個(gè)函數(shù)钓猬,true標(biāo)記的函數(shù)作為false 標(biāo)記的函數(shù)能否啟用并執(zhí)行的驗(yàn)證稍刀,菜單名,優(yōu)先級(jí)要相同

GameObject菜單與Hierarchy面板右鍵菜單一樣敞曹,優(yōu)先級(jí)在10左右账月。

Assets菜單與project面板右鍵菜單一樣

菜單名 + _快捷鍵,給菜單指定單一快捷鍵

菜單名 + %快捷鍵澳迫,給菜單指定組合快捷鍵 %-Ctrl #-Shift &-Alt

[ContextMenu(“菜單選項(xiàng)名”)] / [MenuItem(“CONTEXT/組建名/菜單名”)]

標(biāo)記函數(shù):在Inspector面板局齿,右擊包含這條標(biāo)記的腳本,出現(xiàn)“菜單名”的菜單選項(xiàng)橄登。

注:對(duì)應(yīng)的函數(shù)必須是static

標(biāo)記的函數(shù)可以添加 MenuCommand cmd 參數(shù)抓歼,cmd.context轉(zhuǎn)換為當(dāng)前組建類型后操作

[CreateAssetMenu(menuName = “MySubMenue/Create XXX “)]

標(biāo)記類,可以給project面板下的Creat 菜單下新建一個(gè)自定義子菜單拢锹,用于新建自定義資源

[AssemblyIsEditor]

匯編級(jí)屬性谣妻,使用該屬性的Class會(huì)被認(rèn)為是EditorClass。具體用法不明

[DisallowMultipleComponent]

對(duì)一個(gè)MonoBehaviour的子類使用這個(gè)屬性卒稳,那么在同一個(gè)GameObject上面蹋半,最多只能添加一個(gè)該Class的實(shí)例。

嘗試添加多個(gè)的時(shí)候充坑,會(huì)出現(xiàn)提示

[ImageEffectOpaque]

在OnRenderImage上使用减江,可以讓渲染順序在非透明物體之后,透明物體之前

[ImageEffectTransformsToLDR]

渲染從從HDR變?yōu)長(zhǎng)DR 具體使用方法不明

[RuntimeInitializeOnLoadMethodAttribute]

此屬性僅在Unity5上可用捻爷。在游戲啟動(dòng)時(shí)辈灼,會(huì)自動(dòng)調(diào)用添加了該屬性的方法

[SelectionBaseAttribute]

當(dāng)一個(gè)GameObject含有使用了該屬性的Component的時(shí)候,在SceneView中選擇該GameObject役衡,Hierarchy上面會(huì)自動(dòng)選中該GameObject的Parent

[SharedBetweenAnimatorsAttribute]

用于StateMachineBehaviour上茵休,不同的Animator將共享這一個(gè)StateMachineBehaviour的實(shí)例,可以減少內(nèi)存占用

[UnityAPICompatibilityVersionAttribute]

用來聲明API的版本兼容性

[CallbackOrderAttribute]

定義Callback的順序

[UnityAPICompatibilityVersionAttribute]

用來聲明API的版本兼容性

[CanEditMultipleObjects]

Editor同時(shí)編輯多個(gè)Component的功能

[CustomPreview(typeof(GameObject))]

將一個(gè)class標(biāo)記為指定類型的自定義預(yù)覽

[CustomPropertyDrawer]

標(biāo)記自定義PropertyDrawer時(shí)候使用。當(dāng)自己創(chuàng)建一個(gè)PropertyDrawer或者DecoratorDrawer的時(shí)候榕莺,使用該屬性來標(biāo)記

[DrawGizmo (GizmoType.Selected | GizmoType.Active)]

以在Scene視圖中顯示自定義的Gizmo,Gizmo的圖片需要放入Assets/Gizmo目錄中

[InitializeOnLoad]

在Class上使用俐芯,可以在Unity啟動(dòng)的時(shí)候,運(yùn)行Editor腳本钉鸯。需要該Class擁有靜態(tài)的構(gòu)造函數(shù)吧史。

[InitializeOnLoadMethod]

在Method上使用,是InitializeOnLoad的Method版本唠雕。Method必須是static的

[PreferenceItem (“My Preferences”)]

使用該屬性可以定制Unity的Preference界面

[OnOpenAssetAttribute()]

在打開一個(gè)Asset后被調(diào)用

[PostProcessBuildAttribute()]

該屬性是在build完成后贸营,被調(diào)用的callback。同時(shí)具有多個(gè)的時(shí)候岩睁,可以指定先后順序

[PostProcessSceneAttribute()]

使用該屬性的函數(shù)钞脂,在scene被build之前,會(huì)被調(diào)用捕儒。具體使用方法和PostProcessBuildAttribute類似

System命名空間下

[SerializeField]

在Inspector版面中顯示非public屬性冰啃,并且序列化

[NonSerialized]

在Inspector版面中隱藏public屬性,不執(zhí)行序列化

UnityEditor命名空間下

[CallbackOrder]

? 所有帶order(順序)回調(diào)屬性的特性基類刘莹。

[CanEditMultipleObjects]

? 使自定義編輯器支持同編輯多個(gè)對(duì)象阎毅,一般配合CustomEditor使用類。

[CustomEditor]

? 要自定義編輯器就要加這個(gè)特性点弯。

[CustomPreview ]

? 添加自定義類型的preview在監(jiān)視板扇调。

[CustomPropertyDrawer]

? 自定義屬性渲染,如果要自定義PropertyDrawer或 DecoratorDrawer抢肛,要加上這個(gè)特性

[DrawGizmo]

? 自定義Gizmo渲染方法任何組件狼钮,方法可以定義在任意類而且不用添加到組件,但必須為靜態(tài)雌团。

[InitializeOnLoad]

? 當(dāng)Unity工程裝載時(shí)燃领,會(huì)自動(dòng)調(diào)用一個(gè)類來初始化,這個(gè)類必須有靜態(tài)構(gòu)造函數(shù)锦援。

[InitializeOnLoadMethod]

? 同上猛蔽,只不過這個(gè)是調(diào)用靜方法。

[MenuItem]

? 添加菜單項(xiàng)灵寺,必須是靜態(tài)方法曼库。第二個(gè)參數(shù)若為true,則會(huì)先判斷改方法是否返回true略板,若是毁枯,則可以使用,若為false叮称,這按鈕是不可用的(灰色的)种玛。更多用法看官網(wǎng)教程這里藐鹤。

[PreferenceItem]

? 給Preference窗口添加菜單項(xiàng),調(diào)用的也是靜態(tài)方法赂韵。

[Callbacks.DidReloadScripts]

? 腳本更改或者刪減時(shí)會(huì)回調(diào)一次 標(biāo)記的函數(shù)

NetWork

[Command]

由客戶端發(fā)起娱节,運(yùn)行在服務(wù)器上,方法名必須以Cmd開頭

出于安全考慮祭示,命令只能從玩家控制的物體上發(fā)出

[ClientRpc]/[RPC]

由服務(wù)器發(fā)起肄满,運(yùn)行在客戶端上,方法名必須以Rpc開頭

可以從任何帶有NetworkIdentity并被派生出來的物體上發(fā)出

[SyncVar]

同步變量质涛,從服務(wù)器同步到客戶端上

同步變量的狀態(tài)在OnStartClient()之前就被應(yīng)用到物體上了

同步變量可以是基礎(chǔ)類型稠歉,如整數(shù),字符串和浮點(diǎn)數(shù)汇陆。也可以是Unity內(nèi)置數(shù)據(jù)類型怒炸,如Vector3和用戶自定義的結(jié)構(gòu)體,但是對(duì)結(jié)構(gòu)體類型的同步變量毡代,如果只有幾個(gè)字段的數(shù)值有變化横媚,整個(gè)結(jié)構(gòu)體都會(huì)被發(fā)送。每個(gè)NetworkBehaviour腳本可以有最多32個(gè)同步變量月趟,包括同步列表

[SyncVar(hook = “Function”)]

同步變量還可以指定函數(shù),使用hook恢口,客戶端調(diào)用

Function函數(shù)有一個(gè) 同步變量類型 的參數(shù)孝宗,參數(shù)就是該同步變量的最新值

public void OnChangeHealth(int newHealth){}

[Server]

只執(zhí)行在服務(wù)器端但是不能標(biāo)識(shí)一些特殊函數(shù)(可以在這里調(diào)用Rpc類函數(shù))

[ServerCallback]

只執(zhí)行在服務(wù)器端,并使一些特殊函數(shù)(eg:Update)不報(bào)錯(cuò)

若在此函數(shù)中改變了帶有[SyncVar]的變量耕肩,客戶端不同步

使用ServerCallback時(shí)因妇,將Update中的重要語(yǔ)句摘出來寫入Rpc函數(shù)中并調(diào)用

[Client]

[ClientCallback]

只執(zhí)行在客戶端

[NetworkSettings(channel = 0, sendInterval = 0.333f)]

對(duì)組件進(jìn)行配置

[ClientRpc(channel = 1)]

對(duì)方法進(jìn)行配置,這里僅以 ClientRpc 為例

默認(rèn)情況下猿诸,命令是通過0號(hào)通道(默認(rèn)的可靠傳輸通道)進(jìn)行傳輸?shù)?/p>

channel 即通信通道婚被, sendInterval 為發(fā)送間隔時(shí)間

帶有NetworkIdentity的組件在運(yùn)行之前不能是隱藏的,否則同步會(huì)受影響梳虽,在代碼Start函數(shù)中置為SetActive = false址芯,或者因?yàn)榫W(wǎng)絡(luò)問題一開始隱藏的物體在后續(xù)同步中都沒有問題

u3d萌新QQ群844087555 歡迎進(jìn)來灌水=。=

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末窜觉,一起剝皮案震驚了整個(gè)濱河市谷炸,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌禀挫,老刑警劉巖旬陡,帶你破解...
    沈念sama閱讀 221,576評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異语婴,居然都是意外死亡描孟,警方通過查閱死者的電腦和手機(jī)驶睦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,515評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來匿醒,“玉大人场航,你說我怎么就攤上這事∏嗯祝” “怎么了旗闽?”我有些...
    開封第一講書人閱讀 168,017評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)蜜另。 經(jīng)常有香客問我适室,道長(zhǎng),這世上最難降的妖魔是什么举瑰? 我笑而不...
    開封第一講書人閱讀 59,626評(píng)論 1 296
  • 正文 為了忘掉前任捣辆,我火速辦了婚禮,結(jié)果婚禮上此迅,老公的妹妹穿的比我還像新娘汽畴。我一直安慰自己,他們只是感情好耸序,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,625評(píng)論 6 397
  • 文/花漫 我一把揭開白布忍些。 她就那樣靜靜地躺著,像睡著了一般坎怪。 火紅的嫁衣襯著肌膚如雪罢坝。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,255評(píng)論 1 308
  • 那天搅窿,我揣著相機(jī)與錄音嘁酿,去河邊找鬼。 笑死男应,一個(gè)胖子當(dāng)著我的面吹牛闹司,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播沐飘,決...
    沈念sama閱讀 40,825評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼游桩,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了薪铜?” 一聲冷哼從身側(cè)響起众弓,我...
    開封第一講書人閱讀 39,729評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎隔箍,沒想到半個(gè)月后谓娃,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,271評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蜒滩,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,363評(píng)論 3 340
  • 正文 我和宋清朗相戀三年滨达,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了奶稠。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,498評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡捡遍,死狀恐怖锌订,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情画株,我是刑警寧澤辆飘,帶...
    沈念sama閱讀 36,183評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站谓传,受9級(jí)特大地震影響蜈项,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜续挟,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,867評(píng)論 3 333
  • 文/蒙蒙 一紧卒、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧诗祸,春花似錦跑芳、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,338評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至功偿,卻和暖如春坡倔,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背脖含。 一陣腳步聲響...
    開封第一講書人閱讀 33,458評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留投蝉,地道東北人养葵。 一個(gè)月前我還...
    沈念sama閱讀 48,906評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像瘩缆,于是被迫代替她去往敵國(guó)和親关拒。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,507評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容