zoukankan      html  css  js  c++  java
  • [Unity3D]Script 脚本全部编译器属性具体解释

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

    · AddComponentMenu   在Component菜单中加入新的菜单项

    · ContextMenu      在当前脚本的组件中加入右键菜单内容

    · ExecuteInEditMode   让当前脚本能够在执行模式中实时更新改动

    ·  HideInInspector    是变量在检測时不被显示,可是会被实例化?

    · NonSerialized     标记一个变量不会被序列化?

    · RPC          被给予@RPC (javascript) 或者 [RPC] 属性 (C#)的不论什么方法能够通过Unity Networking(网络)被远程调用。这种方法必须在发送和接收部分都存在。

    · 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反序列化怎么办-.-

  • 相关阅读:
    利用Linux系统生成随机密码的8种方法
    go语言中ASCII&unicode&utf8由来
    go语言指针
    js设计模式=封装
    python中urllib.request对象案例
    php实现jwt
    python错误捕获练习
    python多线程
    python多进程练习
    http三次握手,四次挥手
  • 原文地址:https://www.cnblogs.com/wgwyanfs/p/7090017.html
Copyright © 2011-2022 走看看