volex是block的一个方法和属性
volexInfo是小块block在大块中的信息,包含位置信息。
volex是block的一个方法和属性
volexInfo是小块block在大块中的信息,包含位置信息。
scripting reference:api手册 6个主要类
mesh
crosshair:第一人称准星
准心:Height:2:Width:20 不接受鼠标事件Raycast Targer去除勾选
Camera Event触发OnPlay()、MouseDown、Up和按住的事件,分别有2种形式,一个是摄像机中心点,一个是鼠标为准心。
VoxelInfo 是位于一个Chunk中的小块,记录了位置(x,y,z)相对于所在Chunk位置和所在Chunk索引、小块的贴图索引号
GetVoxel就是获取小块
UniBlocks
Transparency 设置透明度
第一个 不透明
第二个 半透明
第三个 全透明
Collider 选择碰撞器,特殊形状碰撞器要选Mesh。默认需要碰撞是Cube,不需要碰撞的选择None
define side texture 若方块四周都一样,则不需要√上,否则反之。
坐标代表贴图所在位置,左下角为(0,0)
而勾上之后,每个面都可设置,分别是上下,左右,前后
Material index 材质球索引号
因为材质球可以设置多个,即如果你一个材质球不够用了,可以设置多个,在UniBlockObject的ChunkObject的Chunk中的Mesh Renderer中可设置多个材质球,每个材质球用的是8*8的贴图,即指定一个Block的材质先是由这个index找到材质球,再从该材质球上获取其中一个小贴图。
Mesh对形状的扩展
Define Side Texture对物体每个面的贴图扩展
Material index对贴图数量的扩展,即一个材质球(64种小贴图)不满足你的需求,可再增加,增加新的材质球后,是用index索引号区分每个材质球的。相当于数组
UniBlocks
Custom mesh 不勾上 使用默认mesh立方体
特殊的物体都需要勾上这个,使用自定义的mesh。Mesh渲染物体时使用的网格,是许多个由三角形组成的网格,往往一个物体都会有Mesh Renderer组件用于渲染物体,而渲染物体需要Mesh和材质球,用于管理Mesh的就是MeshFiler
勾上后将自定义的Mesh放在Mesh上,Mesh Rotation是旋转,0°None下面的几个分别是180°、90°、270°
Texture unit 贴图比例,1/8即 保存8*8个小方块材质,统一进行设置,若需添加新材质,则将材质弄成一样的小块放入到8*8贴图的空白处即可。生成8*8贴图也要严格按照8*8的比例,mesh网格类型的碰撞面,collider即碰撞面(碰撞器),2个√上就有网格类型的碰撞器,没勾上就没有那个效果,玩家不可以站到场景上,第三个边框属性。
save/load voxel data 本地数据加载
若不勾上,本地数据不会被加载而是重新创建世界,若勾上了,会以之前的世界数据来加载,若之前的世界都没有 则是创建世界而已。
Engine Settings修改完后 修改名字,以适应新的设置
World Name保存游戏场景的文件名
若有新的世界生成会产生新的文件用于保存这个世界的信息。
Window->Uniblocks:Engine Settings的Chunk Spawn distance 是表示Chunk loader(玩家)周围生成Chunk的半径(动态),以玩家为圆心,用Chunk作为单位生成一个半径为这个Spawn Distance的圆。
Chunk despawn distance:表达离玩家生成边界+despawn distance距离的Chunk会被消除。
即spawn为8 despawn为3时,那么离玩家11的Chunk会被消除。
Spawn越小生成的地图占用内存越小,但是相对低性能要求高,因为生成和销毁Chunk频繁,而despawn是越低的话 ,要求性能越高,内存越小,否则反之。
一般保持默认即可。这个东西随着插件的导入而生成,若没有Engine在场景上的话,就没有这个Uniblocks:Engine Settings选项。
Chunk loader就是Chunk生成的位置(x,y)
但是z默认是0,Chunk Loader的z=0的话肯定在生成地图的下面,所以改动chunk loader的z等于50左右即可,地图最高48
Block Volex代表小块类(每种都有)
VolexInfo代表场景中已生成的小块实例,比Block Volex多了位置信息而已
小块实际上只是一个Cube加贴图,每种类型小块基本上是贴图不同,除了门、草之类的。
方块生成的组织管理方式:
Engine引擎 保存整个地图的信息,实现保存功能和生成大块,大块中产生小块。
ChunkManager管理管理全部Chunk
Chunk管理每一个它自身的每一个小块的全部信息
实际上,VolexInfo脚本管理Chunk的每一个小块Block信息(位置、类型)
Voxel脚本有每种Block对象的基本信息和行为(增添、删除等)。
info.chunk.VoxelIndexToPosition(info.index);
Camera.main.ScreenPointToRay(Input.mouPosition);
Transparency:控制透明度;Solid:不透明;Semi Transparent:半透明;Transparent:全透明 内部没有细节。
Custom mesh :自定义Mesh
当指定了一个自定义Mesh之后才有mesh rotation
Left Back Right
Chunk chunk = chunkObject.GetComponent<Chunk>();