通用模块脚本

  • 类型:LuaModuleScript

简介

脚本不会自动执行,通常用来定义函数或函数组;客户端和服务器都可以访问脚本内容,调用脚本中的函数。

在调用通用模块脚本中的函数时,需要使用RWrequire()函数。

客户端脚本和服务器脚本的执行逻辑基本上时相同的,只是各自的运行环境不同,涉及到了客户端与服务器的概念。而通用模块脚本完全不一样,由于它不会自动执行的特性,所以可以称为时一种特殊的数据库。例如装备,人物等级,物品所得等等数值结构,都可以使用通用模块脚本事先定义好,在游戏执行的时候直接调用,不仅对资源节约,逻辑清晰,数据结构也会更加简单明了。

当需要自己定义大量的Table数据或者构造方法时,通常会使用通用模块脚本,因为这样可以保证对资源占用的分流,所有的代码都在游戏开始的时候运行,会造成进入游戏时的严重卡顿,甚至会直接导致游戏崩溃。如果使用通用模块脚本进行定义,在使用单个数据或者方法的时候才去加载,这种分流模式会大大减轻整个游戏运行的压力。

相关链接

属性

    FilePath     打开   string   
    打开脚本

继承自RWObject

    Name     名称   string   
    该对象的自定义名称

    ClassName     类型   string   
    该对象对应的对象类型名称

    Parent     父级   RWObject   
    该对象的父级对象

函数

继承自RWObject

    DelAllChild()
    删除所有子对象

    Available()
    检查对象是否可用

    Clone(parent)
    复制自身,若有参数则以参数为父级

    Destroy()
    删除自身

    GetAncestorByName(Name)
    通过对象名字寻找父级对象

    GetAncestorByClassName(className)
    通过对象类型寻找父级对象

    GetChildByName(Name,recursive)
    通过对象名字寻找子级对象

    GetChildByClassName(className,recursive)
    通过对象类型寻找子级对象

    GetAllChild()
    寻找自身所有子级对象,并作为一个列表返回

    GetAllDescendant()
    递归寻找自身所有后代,并作为一个列表返回

    IsAncestor(TarObj)
    判断自身是否为目标对象的祖先

    IsDescendant(TarObj)
    判断自身是否为目标对象的后代

    WaitForChild(childName,timeout)
    寻找自身的子对象。如果没有子对象,在没有填写timeout参数时,会暂停进程直到找到子对象;如果填写了timeout参数,会根据参数时间暂停进程,超出参数时间后,进程照常进行

    Child(childName)
    根据给定的名字寻找自身的子对象

    Equals(TarObj)
    判断自身是否为目标对象,结果为真返回True,结果为假返回False;注意克隆、新建同类型、同名对象,equal结果均为假

    IsClass(className)
    判断自身是否为给定的对象类型

事件

继承自RWObject

    Destroyed()
    删除自身时触发

    ChildAdded(childobject)
    添加子对象时触发

    ChildRemoved(childobject)
    移除子对象时触发

    DescendantAdded(descendantobject)
    添加后代时触发

    DescendantRemoved(descendantobject)
    移除后代时触发

    AncestryChanged(AncestryChanged)
    祖先变更时触发

文档更新时间: 2020-08-24 21:24   作者:刘征