A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Candy 高级黑马   /  2014-7-15 14:10  /  1146 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 Candy 于 2014-7-15 14:12 编辑

    Script属性是基于IDE的一系列编译器属性
JS中用@script 属性方法()访问,c#中用[属性方法()]访问。

一共就只有9种属性访问方式:
  1. AddComponentMenu    在Component菜单中添加新的菜单项
  2. ContextMenu      在当前脚本的组件中添加右键菜单内容
  3. ExecuteInEditMode    让当前脚本可以在运行模式中实时更新修改
  4. HideInInspector        是变量在检测时不被显示,但是会被实例化?
  5. NonSerialized       标记一个变量不会被序列化?
  6. RPC          ?
  7. RenderBeforeQueues  附加一个自定义渲染 在整个引擎渲染队列之前
  8. RequireComponent   强制添加一个组件,(限定一定要有某个组件)
  9. Serializable     

  10. 序列化一个类
  11. -----------------------------------------------
复制代码

----------------------------------------------------------------------------------------------------------------
  1. AddComponentMenu
  2. 用法:
  3. @script AddComponentMenu ("Transform/Follow Transform")
  4. class FollowTransform : MonoBehaviour
  5. {
  6. }
复制代码


用处:
可以自己开发组件类,在菜单里往GameObject里添加组件实例。
------------------------------------------------------------------------------------
  1. ContextMenu
  2. 用法:
  3. @ContextMenu ("Update Waypoints")
  4. function UpdateWaypoints()
  5. {
  6. }
复制代码


用处:
使用当前脚本时候可以用右键菜单触发开发环境中运行的函数
----------------------------------------------------------------------------------------
  1. ExecuteInEditMode
  2. 用法:
  3. @script ExecuteInEditMode()
复制代码

用处:
使当前脚本可以在运行中实时更新修改,每帧都会重新导入脚本,可以方便调试使用。
----------------------------------------------------------------------------------------

  1. HideInInspector 用法:
  2. @HideInInspector
  3. var p = 5;用处:
复制代码

是变量在检测时不被显示,但是会被实例化??
具体用处不详,猜测为在脚本外部变量设置的时候不会被显示,但是会被作用到
-------------------------------------------------------------------------------------------
  1. NonSerialized
  2. 用处:
  3. 标记一个变量不会被序列化。
复制代码
具体用处不详,我理解为不会被外部改变但是可以保持public状态
-------------------------------------------------------------------------------------------
RPC         
什么鬼东西-.- RPC火箭筒?还是标记他用RPC协议传输?反正官网什么都没写。
-------------------------------------------------------------------------------------------
  1. RenderBeforeQueues  
  2. 用法:
  3. @RenderBeforeQueues(1000, 2000)
  4. function OnRenderObject (queue : int) {
  5. // do some custom rendering...
  6. }
复制代码


用处:
在引擎渲染之前添加一个自定义的渲染
具体用法不详,里头能用什么东西渲染我也不清楚,还有那个参数我也没搞明白,以后用到再说吧
--------------------------------------------------------------------------------------------
  1. RequireComponent
  2. 用法:
  3. js:
  4. @Script RequireComponent(Rigidbody)

  5. c#:
  6. [RequireComponent (typeof (Rigidbody))]
复制代码

用处:
强制添加一个组件到这个object上,如果存在,则该组件不允许被删除。
-------------------------------------------------------------------------------------------

  1. <p>Serializable      
  2. 用法:
  3. js继承Object类默认就是会被序列化
  4. class Test extends System.Object
  5. {
  6. var p = 5;
  7. var c = Color.white;
  8. }
  9. var test = Test ();</p>
  10. <p>// C# Example
  11. [System.Serializable]
  12. class Test
  13. {
  14. public int p = 5;
  15. public Color c = Color.white;
  16. }</p>
复制代码

用处:
将一个类序列化,(别告诉我不懂什么叫序列化,就是把一个类按一个格式枚举,可以用于保存文件或者网络传输,但是不知道U3d反序列化怎么办-.-)
  
        

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马