程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> [Unity3D]Script 腳本所有編譯器屬性詳解,unity3dscript

[Unity3D]Script 腳本所有編譯器屬性詳解,unity3dscript

編輯:C#入門知識

[Unity3D]Script 腳本所有編譯器屬性詳解,unity3dscript


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;
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved