赞
踩
Dungeon Architect是一个unity引擎上用于流水线产出场景关卡的插件。它让你可以通过设置参数来自动或手动的快速创建关卡。这个文档就是来介绍Dungeon Architect插件的各种特性。
一个关卡的生成份为三个阶段
3,图形生成
Marker元件作为根节点,下面附属各类图形化Visual元件。而这些Visual元件可以关联别的Marker元件,以及设置这些marker出现的几率。
通过图形化的编辑器界面生成的theme文件保存了这些编辑信息,实际上这个theme文件就是一个序列化文件,也可以被转换成别的文件格式。
在这个阶段,仅仅只是将关卡的布局在内存中生成,并未创建任何模型或者对象。
接下来,根据布局中的叫做Marker的数据点生成关卡。一个marker数据点在3D空间中只有一个名字和一个Transform关系。
这个阶段会生成实际对象,根据布局和元件,组合生成实际场景。
执行过程中,首先遍历布局中的每一个点,根据这个点,在theme文件中找到对应的marker,然后拿marker中附属的模型图形资源替换到这个点上来。
同一个布局,如果使用不同的theme文件,可以生成布局一样但是风格完全不同的场景。使用相同的theme文件,但是使用不同的布局,则可以生成风格一致但是布局不同的场景。
Theme文件用来定义你的元件。其本质是一个序列化文件,在本插件中,保存为一个Asset文件。编辑界面如下:
在Project窗口上的create的按键,依次选择,则创建出了一个默认theme文件。
入口
双击theme文件,或者选中一个theme文件后在unity菜单栏选择window的下拉框中选择Dungeon Architect。就可以打开theme文件的编辑界面。
默认的theme文件中,只有几个默认的Marker元件。
Theme元件概述
Theme元件分为三类
1, Marker Nodes
2, Visual Nodes
3, Marker Emitter Nodes
关系如下
w
Marker作为元件的单位,其下面有附属的Visual元件。而Visual元件又可以挂载Emitter元件。实际上Emitter元件是作为另外一个Marker元件的指针。
当一个Marker元件被实例化,那么其所附属的Visual元件也会被实例化。当这个Visual元件被实例化时,如果它下面挂载有Emitter元件,则根据Emitter上的权重比率来决定是否要在Visual下实例化一个Emitter指向的Marker元件。如此循环。
例如墙壁是一个Marker元件,其附属了墙和柱子两个Visual元件。而墙Visual元件又挂载了一个Emitter元件指向窗户Marker元件。并且概率为50%。那么在实例化这个墙壁Marker元件时,其墙面上有50%的几率出现一个窗户Marker元件。而这个窗户Marker元件下的Visual元件又可以指向窗帘,花盆等其他Marker元件。
Marker元件
在场景布局完成后,布局中的每个格子会去theme文件中找对应的Marker元件实例化到格子中(根据名字来匹配)。Marker元件作为一种根节点元件,其下面可以包括各种其他元件。
每个theme文件在创建会有若干种默认存在的Marker元件。你也可以自定义添加Marker元件,在theme编辑界面右键出现如下功能菜单,选择Add Marker Node即可。
Visual元件
Visual元件代表实际的美术资源,其中可以定义模型,贴图,图片等资源引用,以及这些资源的相对坐标,朝向,大小等Transform数据。它必须挂载在Marker元件之下,不能作为根节点元件存在。
Visual元件分为两种,一种是Game Object Node,一种是Sprite元件。使用哪种取决于你做的是3D游戏还是2D游戏。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。