Unity3D:Script 指令碼所有編譯器屬性詳解__Unity3D

來源:互聯網
上載者:User

轉自:http://blog.163.com/kingmax_res/blog/static/77282442201031712215404/


Script屬性是基於IDE的一系列編譯器屬性
JS中用@script 屬性方法()訪問,c#中用[屬性方法()]訪問。
一共就只有9種屬性訪問方式:
AddComponentMenu    在Component菜單中添加新的功能表項目 ContextMenu      在當前指令碼的組件中添加右鍵菜單內容 ExecuteInEditMode    讓當前指令碼可以在運行模式中即時更新修改 HideInInspector        是變數在檢測時不被顯示,但是會被執行個體化。 NonSerialized       標記一個變數不會被序列化。 RPC          。 RenderBeforeQueues  附加一個自訂渲染 在整個引擎渲染隊列之前 RequireComponent   強制添加一個組件,(限定一定要有某個組件) Serializable      序列化一個類---------------------------------------------------------------------------------------------------------------- AddComponentMenu
用法:
@script AddComponentMenu ("Transform/Follow Transform")
class FollowTransform : MonoBehaviour
{
}用處:

可以自己開發組件類,在菜單裡往GameObject裡添加組件執行個體。
------------------------------------------------------------------------------------
ContextMenu 
用法:
@ContextMenu ("Update Waypoints")
function UpdateWaypoints()
{
}
用處:

使用當前指令碼時候可以用右鍵菜單觸發開發環境中啟動並執行函數
----------------------------------------------------------------------------------------
ExecuteInEditMode 
用法:
@script ExecuteInEditMode()用處:
使當前指令碼可以在運行中即時更新修改,每幀都會重新匯入指令碼,可以方便調試使用。
----------------------------------------------------------------------------------------
HideInInspector 用法:
@HideInInspector
var p = 5;用處:
是變數在檢測時不被顯示,但是會被執行個體化。。
具體用處不詳,猜測為在指令碼外部變數設定的時候不會被顯示,但是會被作用到
-------------------------------------------------------------------------------------------
NonSerialized 
用處:
標記一個變數不會被序列化。
具體用處不詳,我理解為不會被外部改變但是可以保持public狀態
-------------------------------------------------------------------------------------------
RPC          
什麼鬼東西-.- RPC火箭筒。還是標記他用RPC協議傳輸。反正官網什麼都沒寫。
-------------------------------------------------------------------------------------------
RenderBeforeQueues  
用法:
@RenderBeforeQueues(1000, 2000)
function OnRenderObject (queue : int) {
// do some custom rendering...
}用處:
在引擎渲染之前添加一個自訂的渲染
具體用法不詳,裡頭能用什麼東西渲染我也不清楚,還有那個參數我也沒搞明白,以後用到再說吧
--------------------------------------------------------------------------------------------
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;
}用處:
將一個類序列化,(別告訴我不懂什麼叫序列化,就是把一個類按一個格式枚舉,可以用於儲存檔案或者網路傳輸,但是不知道U3d還原序列化怎麼辦-.-)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.