首页 > 学院 > 开发设计 > 正文

[Unity3D]Script 脚本所有编译器属性详解

2019-11-17 02:42:31
字体:
来源:转载
供稿:网友

[Unity3D]Script 脚本所有编译器属性详解

Script属性是基于IDE的一系列编译器属性JS中用@script属性方法()访问,c#中用[属性方法()]访问。一共就只有9种属性访问方式:

  • AddComponentMenu在Component菜单中添加新的菜单项
  • ContextMenu在当前脚本的组件中添加右键菜单内容
  • ExecuteInEditMode让当前脚本可以在运行模式中实时更新修改
  • HideInInspector是变量在检测时不被显示,但是会被实例化?
  • NonSerialized标记一个变量不会被序列化?
  • RPC?
  • RenderBeforeQueues附加一个自定义渲染在整个引擎渲染队列之前
  • RequireComponent强制添加一个组件,(限定一定要有某个组件)
  • Serializable序列化一个类

---------------------------------------------------------------------------------------------------------------------------------------------------------------AddComponentMenu用法:@scriptAddComponentMenu("Transform/FollowTransform")classFollowTransform:MonoBehaviour{}用处:可以自己开发组件类,在菜单里往GameObject里添加组件实例。------------------------------------------------------------------------------------ContextMenu用法:@ContextMenu("UpdateWaypoints")functionUpdateWaypoints(){}用处:使用当前脚本时候可以用右键菜单触发开发环境中运行的函数----------------------------------------------------------------------------------------ExecuteInEditMode用法:@scriptExecuteInEditMode()用处:使当前脚本可以在运行中实时更新修改,每帧都会重新导入脚本,可以方便调试使用。----------------------------------------------------------------------------------------HideInInspector用法:@HideInInspectorvarp=5;用处:是变量在检测时不被显示,但是会被实例化??具体用处不详,猜测为在脚本外部变量设置的时候不会被显示,但是会被作用到-------------------------------------------------------------------------------------------NonSerialized用处:标记一个变量不会被序列化。具体用处不详,我理解为不会被外部改变但是可以保持public状态-------------------------------------------------------------------------------------------RPC什么鬼东西-.-RPC火箭筒?还是标记他用RPC协议传输?反正官网什么都没写。-------------------------------------------------------------------------------------------RenderBeforeQueues用法:@RenderBeforeQueues(1000,2000)functionOnRenderObject(queue:int){//dosomecustomrendering...}用处:在引擎渲染之前添加一个自定义的渲染具体用法不详,里头能用什么东西渲染我也不清楚,还有那个参数我也没搞明白,以后用到再说吧--------------------------------------------------------------------------------------------RequireComponent用法:js:@ScriptRequireComponent(Rigidbody)c#:[RequireComponent(typeof(Rigidbody))]用处:强制添加一个组件到这个object上,如果存在,则该组件不允许被删除。-------------------------------------------------------------------------------------------Serializable用法:js继承Object类默认就是会被序列化classTestextendsSystem.Object{varp=5;varc=Color.white;}vartest=Test();//C#Example[System.Serializable]classTest{publicintp=5;publicColorc=Color.white;}


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表