[Unity3D]Script 脚本所有编译器属性详解
生活随笔
收集整理的這篇文章主要介紹了
[Unity3D]Script 脚本所有编译器属性详解
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
Script屬性是基于IDE的一系列編譯器屬性
JS中用 @script?屬性方法() 訪問,c#中用 [屬性方法()] 訪問。
一共就只有9種屬性訪問方式:
JS中用 @script?屬性方法() 訪問,c#中用 [屬性方法()] 訪問。
一共就只有9種屬性訪問方式:
- AddComponentMenu????在Component菜單中添加新的菜單項
- ContextMenu??????在當前腳本的組件中添加右鍵菜單內(nèi)容
- ExecuteInEditMode????讓當前腳本可以在運行模式中實時更新修改
- HideInInspector????????是變量在檢測時不被顯示,但是會被實例化?
- NonSerialized???????標記一個變量不會被序列化?
- RPC???????????
- RenderBeforeQueues??附加一個自定義渲染?在整個引擎渲染隊列之前
- RequireComponent???強制添加一個組件,(限定一定要有某個組件)
- Serializable??????序列化一個類---------------------------------------------------------------------------------------------------------------------------------------------------------------
AddComponentMenu
用法:
@script?AddComponentMenu?("Transform/Follow?Transform")
class?FollowTransform?:?MonoBehaviour
{
}用處:
可以自己開發(fā)組件類,在菜單里往GameObject里添加組件實例。
------------------------------------------------------------------------------------
ContextMenu?
用法:
@ContextMenu?("Update?Waypoints")
function?UpdateWaypoints()
{
}
用處:
使用當前腳本時候可以用右鍵菜單觸發(fā)開發(fā)環(huán)境中運行的函數(shù)
----------------------------------------------------------------------------------------
ExecuteInEditMode?
用法:
@script?ExecuteInEditMode()用處:
使當前腳本可以在運行中實時更新修改,每幀都會重新導入腳本,可以方便調(diào)試使用。
----------------------------------------------------------------------------------------
HideInInspector?用法:
@HideInInspector
var?p?=?5;用處:
是變量在檢測時不被顯示,但是會被實例化??
具體用處不詳,猜測為在腳本外部變量設置的時候不會被顯示,但是會被作用到
-------------------------------------------------------------------------------------------
NonSerialized?
用處:
標記一個變量不會被序列化。
具體用處不詳,我理解為不會被外部改變但是可以保持public狀態(tài)
-------------------------------------------------------------------------------------------
RPC??????????
什么鬼東西-.-?RPC火箭筒?還是標記他用RPC協(xié)議傳輸?反正官網(wǎng)什么都沒寫。
-------------------------------------------------------------------------------------------
RenderBeforeQueues??
用法:
@RenderBeforeQueues(1000,?2000)
function?OnRenderObject?(queue?:?int)?{
//?do?some?custom?rendering...
}用處:
在引擎渲染之前添加一個自定義的渲染
具體用法不詳,里頭能用什么東西渲染我也不清楚,還有那個參數(shù)我也沒搞明白,以后用到再說吧
--------------------------------------------------------------------------------------------
RequireComponent?
用法:
js:
@Script?RequireComponent(Rigidbody)
?
c#:
[RequireComponent?(typeof?(Rigidbody))]
用處:
強制添加一個組件到這個object上,如果存在,則該組件不允許被刪除。
-------------------------------------------------------------------------------------------
Serializable??????
用法:
js繼承Object類默認就是會被序列化
class?Test?extends?System.Object
{
var?p?=?5;
var?c?=?Color.white;
}
var?test?=?Test?();
//?C#?Example
[System.Serializable]
class?Test
{
public?int?p?=?5;
public?Color?c?=?Color.white;
}用處:
將一個類序列化,(別告訴我不懂什么叫序列化,就是把一個類按一個格式枚舉,可以用于保存文件或者網(wǎng)絡傳輸,但是不知道U3d反序列化怎么辦-.-)
--------------------------------------------------------------
目前一些不懂的會在以后用到后再完善
總結(jié)
以上是生活随笔為你收集整理的[Unity3D]Script 脚本所有编译器属性详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Unity Mathf 数学运算(C#)
- 下一篇: js中两个感叹号的原理与用法分析