高自由度沙盘游戏地图生成 - 我的世界Minecraft(基于Unity5.6)

默认教学计划
5052人加入学习
(23人评价)
价格 免费
教学计划

UnblocksBlock

1  dirt

Name:小块素材的名字

ID:程序区分(不可重复)

Cutom mesh:自定义mesh,不勾选就是使用自定义的立方体

mesh:指定的mesh

Mesh rotation: 旋转block

(只有指定了自定义的mesh了才科学选择Mesh rotation)

 

 

[展开全文]

Standard Assets:第一人称控制器

Uniblocks:插件的主体

[展开全文]

UniBlocks:Block Editor 大块中的小块的设置

Blocks path:保存Blocks的路径设置

(Block不会实际的生成到场景中因为“每个小块的block是集成生成在每个大块中的”保存的block是拿来存储每个小块的设置数据的)

               【1.1 UniBlocks的设置框】

0:-empty-  

代表就是空的,空的就是什么都不存在。

(比方说我们拿出一个Chunk,它的长宽高都是16*16*16,但是它并不是每个格子都显示出来的。他只有部分是显示出来的,很多都是不显示的(如果全都显示出来的话就会变成个16*16*16的正方体辣)但是不存在的并不代表他没有,不显示的是同样有保存的,它是按照-empty-来进行保存的)

(并且对于一块Chunk来说,它上边的块都是默认是空的块,下面的块默认都是泥土的块,因为不可见所以暂时不渲染出来)

                 【1.2各种块的图例子】

ID:标记块的类型

(通过id可找到其对应的Block对象,从而取得小块所对应的属性信息)

(后期可以增加新的块)

添加新的块

点击New Block,就会默认生成一个新的块。

(就会新增一个块,Id编号默认排在最后的块的后一位,可以自己自定义修改,新增的块默认为空的块)

(如果想要复制一个块修改局部参数后点击Apply可以直接改id,这样就会复制一个)

如何在场景中摆放Block

选择快捷键1-9然后在黑色方框的位置点击鼠标右键就可以摆放所选择的方块

(L Swnd Camera LookEvents:是以相机的视野方向为准,即屏幕正中心的方向)

(L Send Cursor Events:以鼠标为准的方向,一般情况下这个不勾选,勾选了生成方块会以鼠标位置生成取消的话会以准心位置生成)

 

[展开全文]

Unblicks.Engine各个参数的作用

World name :世界的名字,如果存在·的话就直接做修改,不存在则创建。

Chunk settings 大块的设置

Chunk spawn distance:8(默认)表示从我们新建的空物体ChunkLoader为中心以8个大块为半径生成一个圆

Chunk despawn distance:3(默认) 表示当ChunkLoader偏移大于等于3个大块时,远离ChunkLoader>8+3个大块的地方进行销毁。

Chunk height range:设置生成的大块组合的整体地图的高度,即高度是多少个大块的高度

Chunk side length:生成的每个大块中包含多少个小块。16则表示最高16个小块且长宽大小为16*16

Texture unit:

Texture padding:

Generate meshes:

Generate collider:

Show border faces;

[展开全文]

Unblicks.Engine各个参数的作用

World name :世界的名字,如果存在·的话就直接做修改,不存在则创建。

Chunk settings 大块的设置

Chunk spawn distance:8(默认)表示从我们新建的空物体ChunkLoader为中心以8个大块为半径生成一个圆

Chunk despawn distance:3(默认)销毁距离的设置。 表示当ChunkLoader偏移大于等于3个大块时,远离ChunkLoader>8+3个大块的地方进行销毁。

Chunk height range:设置生成的大块组合的整体地图的高度,即高度是多少个大块的高度

Chunk side length:生成的每个大块中包含多少个小块。16则表示最高16个小块且长宽大小为16*16

(在UniblocksObject-Chunk Objects-Chunk-Mesh Renderer中的Materiais可以设置贴图)

Texture unit:0.125材质的单位,0.125表示1/8的意思把贴图分成8份(把小块的材质放到大的材质里面。作用是对于性能的优化,需要时从大的材质贴图里取得需要的那一块以节约性能。)

Texture padding:0(默认)设置材质与材质之间的间距

Generate meshes:显示地图和网格

Generate collider:生成碰撞器

(以上一般√选上)

Show border faces:显示边框

[展开全文]

取消抗锯齿:

Edit->Project Settings->Quality->Anti Aliasing->Disable

[展开全文]

uniblock对voxel进行设置

unichunk对chunk进行设置

[展开全文]

block提供了:

    Mesh的扩展

    面的多样选择

    材质的扩展

[展开全文]

这里的保存没有勾选的话,走回来生成的地图就不一样(重新生成),有勾选的话就会和原来一样(调用本地的文件)

[展开全文]

事件触发:

方块的新增

删除

 

[展开全文]

在coliderEventsSender里面,获取的voxelInfo是本身所在的位置,而实际应该获取的是本身所在位置脚下的那个位置。解决方法,应该是从本身所在的位置往下投影一个射线,得到脚下的位置

onBlockEnter只触发一次

 

[展开全文]

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°

[展开全文]

授课教师

Founder & Programer

课程特色

图文(1)
下载资料(1)
视频(26)