目录

1. Entity的配置

本文导览:

为了加深印象,我们假设需要这么一个实体:它可以向服务器say hello,当服务器收到后广播给所有客户端。

我们把该Entity命名为FirstEntity

第一步:Entity声明

很简单,在{项目资产库}/scripts/entities.xml文件中,写入该Entity相关字段:

<root>
    <FirstEntity hasClient="true"></FirstEntity>
</root>

本教程中的FirstEntity实体是有客户端部分的,所以这里,我们的FirstEntity实体是指明hasClient="true"


就一行类似XML的标签就完成了我们Entity的声明。我们接着看如何配置?

第二步:Entity的配置

Entity的配置,其实就是根据业务需求,对def配置文件的编写,让引擎和各个服务器组件知道该Entity有哪些方法和属性。我们看看根据之前的设计需求,如何来编写?

1:新建def配置文件

“scripts/entity_defs”下,新建一个名为FirstEntity.def的文件,该文件就是对实体FirstEntity的def配置文件(不同实体需要根据其名字新增不同的def文件,如Monster实体必须在该文件夹下有Monster.def配置文件,否则启动服务器时会出错)。def文件与xml文件相似,编写的语法也和xml相似。


2:添加方法声明

根据例子中的设计需求,我们需要增加say hello的方法,在FirstEntity.def文件中写入如下内容:

<root>
    <!--cell上的方法声明-->
    <CellMethods>
        <!--say hello指令-->
        <say>
            <!--该参数可以让此方法暴露给客户端调用-->
            <Exposed/>
            <!--hello的内容-->
            <Arg>   UNICODE         </Arg>
        </say>
    </CellMethods>
    <!--客户端上回调的方法声明-->
    <ClientMethods>
        <!--当实体进入世界空间后,通知客户端-->
        <onEnter>
        </onEnter>
        <!--通知客户端,广播say hello-->
        <onSay>
            <Arg>   UNICODE         </Arg>
        </onSay>
    </ClientMethods>
</root>

其中,root是根节点,类似于xml的根节点。

CellMethods内是该实体在cell上声明的方法,这里我们声明一个叫做say的方法。标签名为方法名,标签Arg是方法参数的类型的声明区域,如UNICODE表示字符串,用来指明hello的内容;Exposed标签可以把该方法暴露给客户端调用。这样一来,我们的客户端可以向服务器say hello了。

ClientMethods内是该实体在客户端上的方法声明,这里我们声明一个叫做onEnter的方法,当实体进入世界空间后,通知客户端。同时我们声明了一个叫做onSay的方法,在收到say的时候,会广播给所有客户端。


OK,到这里,我们的FirstEntity def配置基本完工了。

接下来,让我们进行FirstEntity实体的代码实现吧~ 点我进入下一节


Copyright © 2018 Yolo Technologies. Publication: 2.0-025. Built: 2018-12-07.