unity常用標(biāo)記[]

標(biāo)記字段

[Space]

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

[Header(“XXX”)]

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

[Tooltip(“XXX”)]

  給一個(gè)變量添加這個(gè)屬性后,在Inspector面板將鼠標(biāo)懸停在該變量上可以顯示提示

[Range(min, max)]`

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

[Min(min)]

  限制一個(gè) float,int 類型的變量的最小值(測(cè)試2018,2019不能正常使用,據(jù)說(shuō)2020修復(fù)了這個(gè)bug)

[SerializeField]

  強(qiáng)制序列化一個(gè)私有的變量,使其可以在Inspector面板顯示,很多UI都會(huì)對(duì)private的組件進(jìn)行強(qiáng)制序列化

[NonSerialized]

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

[HideInInspector]

  使屬性在Inspector中隱藏,但是還是可序列化披蕉,想賦值可以通過(guò)寫程序賦值序列化

[System.Serializable]

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

[InspectorName(“枚舉A”)]

  標(biāo)記枚舉類型的枚舉值乌奇,可以使枚舉值在Inspector上顯示的名字改變

[FormerlySerializedAs(“XXX”)]

  使變量以另外的名稱進(jìn)行序列化嚣艇,并且在變量自身修改名稱的時(shí)候,不會(huì)丟失之前的序列化的值

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

  標(biāo)記字段华弓,在Inspector面板上給字段右鍵段添加一個(gè)菜單,不能是靜態(tài)函數(shù)

[Multiline]

  添加在string類型的變量上,可以在Inspector面板上顯示一個(gè)多行文本框

[TextArea]

  該屬性可以把string在Inspector面板上變?yōu)橐粋€(gè)帶有滾動(dòng)條的文本域

[NotConverted]

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

[NotFlashValidated]

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

[NotRenamed]

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

[ColorUsage(false, true, 0f, 8f, 1f, 1f)]

  第一個(gè)參數(shù):是否啟用 Alpha 通道

  第二個(gè)參數(shù):是否啟用 HDR 模式,啟用后多四個(gè)參數(shù)為 最小/最大亮度,最小/最大曝光度

[GradientUsage]

  給一個(gè) Gradient 類型的變量添加這個(gè)屬性用來(lái)設(shè)置是否為 HDR 漸變模式

[Delayed]

  標(biāo)記int/float/string類型的變量,在Inspector面板修改變量值時(shí),只有按下Enter鍵 或 鼠標(biāo)失去焦點(diǎn)后值才會(huì)改變

標(biāo)記類/方法

[RequireComponent(typeof(ClassName))]

  將被標(biāo)記的類拖到(或者AddComponent)GameObject上時(shí)吱抚,自動(dòng)再給你加上“ClassName”這個(gè)類百宇,如果已經(jīng)存在該組件不會(huì)重復(fù)添加,且不能移除該組件

[ExecuteAlways]

   添加這個(gè)屬性后腳本無(wú)論是在 Edit Mode 還是 Play Mode 都會(huì)執(zhí)行秘豹。(每次切換狀態(tài)時(shí)要運(yùn)行一次)

[ExecuteInEditMode]

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

  添加這個(gè)屬性后的腳本可以在EditMode下執(zhí)行,要注意的是有些函數(shù)的執(zhí)行方式與PlayMode不同:

  Update :編輯器中某個(gè)組件發(fā)生變化(如在編輯器中修改數(shù)值)=> 觸發(fā)

  OnGUI :當(dāng) GameView 收到一個(gè) Event 時(shí) => 觸發(fā)

[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í)啄刹。間隔超過(guò)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è)自定義子菜單管怠,用于新建自定義資源

[PreferBinarySerialization]

  只能用于 ScriptableObject 的派生類淆衷,使用二進(jìn)制進(jìn)行序列化。這個(gè)屬性可以提升大量數(shù)據(jù)資源文件的讀寫性能渤弛∽U可以搭配 CreateAssetMenu 屬性一起使用

[SerializeReference]

  序列化時(shí)共享相同的對(duì)象數(shù)據(jù),可以用來(lái)減少序列化的內(nèi)容

[GUITarget(0)]

  標(biāo)記OnGUI()函數(shù)她肯,控制對(duì)應(yīng)的 OnGUI 在哪個(gè) Display 顯示

[HelpURL(“http://www.baidu.com”)]

  標(biāo)記一個(gè)類提供一個(gè)幫助文檔的URL佳头,點(diǎn)擊后可以跳轉(zhuǎn)到該網(wǎng)址(與自帶組件點(diǎn)擊小樹效果相同)

[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 具體使用方法不明

[RuntimeInitializeOnLoadMethod]

  此屬性僅在Unity5上可用肄梨。在游戲啟動(dòng)時(shí)(runtime)阻荒,會(huì)自動(dòng)調(diào)用添加了該屬性的方法(Awake之后)。要注意的是使用這個(gè)屬性的方法的調(diào)用順序是不確定的众羡,同時(shí)要求方法為靜態(tài)

[SelectionBase]

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

[SharedBetweenAnimators]

  用于StateMachineBehaviour上,指定該StateMachineBehavior只實(shí)例化一次,不同的Animator將共享這一個(gè)StateMachineBehaviour的實(shí)例,可以減少內(nèi)存占用

[UnityAPICompatibilityVersion]

  用來(lái)聲明API的版本兼容性

[CallbackOrderAttribute]

  定義Callback的順序

[UnityAPICompatibilityVersion]

  用來(lái)聲明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í)候羊壹,使用該屬性來(lái)標(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界面

[OnOpenAsset()]

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

[PostProcessBuild()]

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

[PostProcessScene()]

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

NetWork

[Command]

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

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

[ClientRpc]/[RPC]

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

  可以從任何帶有NetworkIdentity并被派生出來(lái)的物體上發(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ǔ)句摘出來(lái)寫入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)情況下蜘渣,命令是通過(guò)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ò)問(wèn)題一開始隱藏的物體在后續(xù)同步中都沒有問(wèn)題

————————————————

版權(quán)聲明:本文為CSDN博主「第五君」的原創(chuàng)文章惫皱,遵循CC 4.0 BY-SA版權(quán)協(xié)議像樊,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明。

原文鏈接:https://blog.csdn.net/FifthGently/article/details/78363364

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末旅敷,一起剝皮案震驚了整個(gè)濱河市生棍,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌媳谁,老刑警劉巖涂滴,帶你破解...
    沈念sama閱讀 217,542評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異晴音,居然都是意外死亡柔纵,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門锤躁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)搁料,“玉大人,你說(shuō)我怎么就攤上這事系羞」疲” “怎么了?”我有些...
    開封第一講書人閱讀 163,912評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵椒振,是天一觀的道長(zhǎng)昭伸。 經(jīng)常有香客問(wèn)我,道長(zhǎng)杠人,這世上最難降的妖魔是什么勋乾? 我笑而不...
    開封第一講書人閱讀 58,449評(píng)論 1 293
  • 正文 為了忘掉前任宋下,我火速辦了婚禮嗡善,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘学歧。我一直安慰自己罩引,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,500評(píng)論 6 392
  • 文/花漫 我一把揭開白布枝笨。 她就那樣靜靜地躺著袁铐,像睡著了一般揭蜒。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上剔桨,一...
    開封第一講書人閱讀 51,370評(píng)論 1 302
  • 那天屉更,我揣著相機(jī)與錄音,去河邊找鬼洒缀。 笑死瑰谜,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的树绩。 我是一名探鬼主播萨脑,決...
    沈念sama閱讀 40,193評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼饺饭!你這毒婦竟也來(lái)了渤早?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,074評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤瘫俊,失蹤者是張志新(化名)和其女友劉穎鹊杖,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體扛芽,經(jīng)...
    沈念sama閱讀 45,505評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡仅淑,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,722評(píng)論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了胸哥。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片涯竟。...
    茶點(diǎn)故事閱讀 39,841評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖空厌,靈堂內(nèi)的尸體忽然破棺而出庐船,到底是詐尸還是另有隱情,我是刑警寧澤嘲更,帶...
    沈念sama閱讀 35,569評(píng)論 5 345
  • 正文 年R本政府宣布筐钟,位于F島的核電站,受9級(jí)特大地震影響赋朦,放射性物質(zhì)發(fā)生泄漏篓冲。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,168評(píng)論 3 328
  • 文/蒙蒙 一宠哄、第九天 我趴在偏房一處隱蔽的房頂上張望壹将。 院中可真熱鬧,春花似錦毛嫉、人聲如沸诽俯。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)暴区。三九已至闯团,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間仙粱,已是汗流浹背房交。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留伐割,地道東北人涌萤。 一個(gè)月前我還...
    沈念sama閱讀 47,962評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像口猜,于是被迫代替她去往敵國(guó)和親负溪。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,781評(píng)論 2 354

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