Unity3D_Easy Grid Builder 使用说明(3D建造系统)
Unity3D版本:2021.3.26f1
插件版本:Easy Grid Builder Pro v1.1.0(非Pro 2版本)
官方文档地址:Make 3D Build System (PRO) | Easy Grid Builder Pro Documentation
步骤 01:设置场景第
1) 新建一个空场景,删除场景中的相机
2) 将EasyGridBuilder Pro/Prefabs/Tutorial Prefab/WASDCameraHolder拖放到Hierarchy面板中,这样就得到了一个可以通过WSAD控制移动的相机
3) 将EasyGridBuilder Pro/Prefabs/EGB Pro拖放到Hierarchy面板中,之后可以场景中看到两个网格。右键单击EGB Pro选择prefab/Unpack Completely。删除不需要的网格:EGB Pro Grid XY
4) 得到一个类似于下图的场景。

步骤 02:设置网格系统
1) 选择EGB pro的子物体EGB Pro Grid XZ,设置Easy Grid Builder Pro组件的值:
|
属性名 |
值 |
备注 |
|
Grid Axis |
XZ |
网格平面方向 |
|
Grid Width |
40 |
网格总宽度 |
|
Grid Length |
20 |
网格总长度 |
|
Grid Size |
10 |
单元格大小 |
|
Use Holder Postion As Origin |
勾选 |
使用支架位置作为原点 |
2) 在属性更改时,网格会发生相应的变化,最终会得到一个类似于下图的场景。

步骤 03:制作可用于创建的预制体
要在网格上建造物体,需要先准备可用于建造的预制体。
1) 制作第一个预制体
- 新建一个空物体,命名为EGB10x10
- 添加一个模型作为子物体:EasyGridBuilder Pro/Misc Assets/Prefabs/Buildings/3D Building 1x1
- 选中父物体添加组件Buildable Grid Object,点击组件上的“ Calculate Size & Pivot”,之后会自动计算中心点和缩放比例。
- 得到一个类似于下图的场景。

5. 选中父物体,添加 Spawn Effects 组件,设置 Spawn Effects 组件的属性。
|
属性名 |
值 |
备注 |
|
Use Scaling Effect |
勾选 |
使用缩放效果 |
|
Use Scale Effect |
勾选 |
使用Y轴缩放 |
|
Scale Effect Animation Cure |
选择第 4 个 |
缩放效果动画曲线 |

6. 添加碰撞器:在父物体下新建一个Cube,改变Cube的大小,使其可以完全包裹住模型(注意:如果没有碰撞器,则在网格上创建的物体无法被选择和销毁)。
2) 制作第二个预制体
与制作第一个预制体的步骤类似,添加的模型换成:EasyGridBuilder Pro/Misc Assets/Prefabs/Props/LargeTree,将BuildableGridObject组件换成BuildableFreeObject组件,如下图:

3) 制作第三个预制体
与制作第一个预制体的步骤类似,添加的模型换成:EasyGridBuilder Pro/Misc Assets/Prefabs/Props/Bush,将BuildableGridObject组件换成BuildableFreeObject组件,如下图:

4)在Assets下创建一个Prefabs文件夹,将制作好的三个预制体拖拽到该文件夹中,形成预制体。如下图所示:

步骤04:设置EasyGridBuild的配置文件
在此步骤中,我们将为 刚刚创建好的3个预制体创建两个配置文件。
1) 在项目中创建两个文件夹,分别命名为“BuildableGridObjectTypeSOAssets”,“BuildableFreeObjectTypeSOAssets”。
2) 鼠标右键BuildableGridObjectTypeSOAssets文件夹,选择Create/SoulGames/EasyGridBuilderPro/Buildable Grid Object Type SO,将创建出来的文件命名为“3DBuildingSmallBuildableGridObjectTypeSO”。如图所示:

3) 设置3DBuildingSmallBuildableGridObjectTypeSO的属性值:
|
属性名 |
值 |
备注 |
|
Unique Object Name |
3DBuildingSmall |
资源名 |
|
Object Prefab |
拖拽预制体 EGB10x10 |
绑定预制体 |
|
Placeable Ghost Material |
EasyGridBuilder Pro/Misc Assets /Materials/PlaceableVisualMat |
可放置状态的材质 |
|
Not Placeable Ghost Material |
EasyGridBuilder Pro/Misc Assets/ Materials/NotPlaceableVisualMat |
补可放置状态的材质 |
|
Show Grid Below Object |
勾选 |
在物体下方显示网格 |
|
Object Grid Canvas |
EasyGridBuilder Pro/Prefabs/ Canvas Grid Samples/Grid Canvas |
对象网格画布 |
|
Grid Image Sprite |
EasyGridBuilder Pro/Prefabs/Canvas Grid Samples/WhiteBoxMiddleEmpty02 |
用于表示网格的图片 |
|
Grid Image Placeable Color |
蓝色 |
可放置时的颜色 |
|
Grid Image Not Placeable Color |
红色 |
不可放置时的颜色 |
4) 设置属性之后的“3DBuildingSmallBuildableGridObjectTypeSO”如下图

5) 右键“BuildableFreeObjectTypeSOAssets”文件夹,选择Create/SoulGames/EasyGridBuilderPro/Buildable Free Object Type SO,,将创建出来的文件命名为“3DPropVegetationBuildableFreeObjectTypeSO”。
注意:该配置文件绑定的预制体不会对齐单元网格,可以放置在网格上的任何位置。
6) 设置“3DPropVegetationBuildableFreeObjectTypeSO”的属性,如下所示。
|
属性名 |
值 |
备注 |
|
Unique Object Name |
3DPropVegetation |
资源名 |
|
Object Prefab |
拖拽预制体 EGBTree和EGBBush |
绑定预制体 |
|
Placeable Ghost Material |
EasyGridBuilder Pro/Misc Assets /Materials/PlaceableVisualMat |
可放置状态的材质 |
|
Not Placeable Ghost Material |
EasyGridBuilder Pro/Misc Assets/ Materials/NotPlaceableVisualMat |
补可放置状态的材质 |
注意:该资源绑定了两个预制体,当放置可构建物体时,将从绑定的两个预制体中随机选择一个。
7) 设置属性之后的“3DBuildingSmallBuildableGridObjectTypeSO”如下图

步骤 05:完成预制体的设置
选择预制体EGB10x10,将“3DBuildingSmallBuildableGridObjectTypeSO”资产拖放到“BuildableGridObject”组件的BuildableGridObject“属性中。如下图

其他两个预制体做同样的操作。


步骤 06:检查输入设置
要了解输入系统的工作原理以及如何更改和添加输入,建议阅读 Multi Grid Input Manager 组件和 Easy Grid Builder Pro Inputs SO 组件的说明文档。
当前场景使用默认的输入设置。
步骤 07:游戏测试
选择“EGB Pro Grid XZ”网格系统
将创建的“3D Building Small Buildable Grid Object Type SO”资产添加到“Buildable Grid Object Type SO List”,
将“3D Prop Vegetation Buildable Free Object Type SO”资产添加到“Buildable Free Object Type SO List”中。如下图

运行程序:
使用 WASD 键移动摄像机
按“R”键切换构建模式和非构建模式,构建模式下然后使用鼠标滚动选择可构建对象,(选择了最后一物体后在向后滚动鼠标,不会选择第一个物体)。
点击鼠标左键将物体放置在网格上。
要检查或更改输入,需要修改配置文件EasyGridBuilder Pro/Scriptable Objects/Easy Grid Builder Pro Inputs SO/Default KeyBoard - Easy Grid Builder Pro Inputs SO。
步骤 08:设置 UI
通过设置 UI 来进一步改进的构建系统。要在UI系统中显示可构建对象,我们需要通过向可构建对象添加Buildable Object Type Category SO 资产来对可构建对象进行分类。
在项目中创建一个新文件夹,并将其命名为“Buildable Object Type Category SO Assets”。右键新创建的文件夹Create/SoulGames/Easy Grid Builder Pro/Buildable Object Type Category SO,将新创建的资源命名为Buildings Buildable Object Type Category SO,设置其属性值如下:
|
属性名 |
值 |
备注 |
|
Category Name |
Buildings |
类别 |
|
Category Icon |
EasyGridBuilder Pro > Misc Assets > Icons/UI Category Buildings Icon |
类别图标 |
创建另一个Buildable Object Type Category SO 资产,并将其命名为“Props Buildable Object Type Category SO”,然后按如下方式填写资产的属性。
|
属性名 |
值 |
备注 |
|
Category Name |
Props |
类别 |
|
Category Icon |
EasyGridBuilder Pro > Misc Assets > Icons/UI Category Extra Props Icon |
类别图标 |
选择3D Building Small Buildable Grid Object Type SO资产,然后将 Buildings Buildable Object Type Category SO 添加到 BuildableCategorySO。然后将EasyGridBuilder Pro/Misc Assets/Icons/3D Building 1x1 Icon拖拽到Object Icon。
选择 3D Prop Vegetation Buildable Free Object Type SO 资产,然后将 Props Buildable Object Type Category SO 资产添加到 Buildable Category SO。然后将 拖EasyGridBuilder Pro/Misc Assets/Icons/3D Large Tree Icon拽到Object Icon。
3D Building Small Buildable Grid Object Type SO 资产和 3D Prop Vegetation Buildable Free Object Type SO 资产应类似于下图。

将位于EasyGridBuilder Pro/Prefabs文件夹中的“EGB Pro UI”和“EGB Pro UI ToolTip”预制件拖放到场景中,右键单击-Prefab-Unpack Completely。然后选择 EGB Pro UI,并将之前创建的两个Buildable Object Type Category SO资产添加到 Multi Grid UI Manager器组件中的 Buildable Object Type Category SO 。

你可以将任何新创建的可构建对象类型类别SO资产添加到多网格UI管理器组件中,以扩展类别。UI 系统会自动识别当前网格系统拥有的所有可构建对象,并将它们显示在 UI 中。这样,可以拥有具有不同可构建对象的多个网格,并且UI 系统将根据活动网格系统实时自动更新 UI。
此外,当处于运行模式时,可以在屏幕的右下角看到一个问号按钮。按下它时,会弹出一个自动更新的帮助菜单,其中显示所有输入键。如果 Easy Grid Builder Pro Inputs SO 资产中输入被更改,此 UI 部分也将自动更新。
步骤 09:添加多层网格
通过添加多层网格,可以构建多层建筑,以下示例为5层网格,每层高2米:选择EGB Pro Grid XZ并更改属性,如下所示。
|
属性名 |
值 |
备注 |
|
Vertical Grid Count |
5 |
一共有多少层网格 |
|
Grid Height |
2 |
每层高度 |
|
Change Height With Input |
勾选 |
使用上面的高度数值 |
|
Auto Detect Height |
不勾选 |
自动检测高度 |
运行程序,通过按“F”键或使用屏幕右下角的小三角形来改变网格的高度。
注意:当在多层网格之间切换时,可以看到画布也会更改高度,可以通过更改 Easy Grid Builder Pro 组件中的“Canvas Grid Data”部分的“Lock Canvas Grid On Height Change ”属性来网格,使其不会改变高度。
第 10 步:保存和加载
启用保存和加载功能。只需勾选 EGB Pro Grid XZ 组件的Enable Save & Load 属性。对于“Unique Save Name”属性,要确保名称唯一,否则,具有相同名称的网格系统将覆盖其保存的数据。
运行程序,将物体放置在网格上,然后按“O”键或点击“保存”按钮以保存网格数据。然后按“P”键或点击“加载”按钮加载保存的网格数据。
第 11 步:设置多个网格
选择 EGB Pro Grid XZ 并复制,复制之后的物体命名为:EGB Pro Grid XZ 02。
将新网格系统的位置设置为(0、0、-250 )。
|
属性名 |
值 |
备注 |
|
Grid Width |
30 |
网格总长度 |
|
Grid Length |
40 |
网格总宽度 |
|
Cell Size |
5 |
单元大小 |
此网格将具有较小的单元格大小。删除EasyGridBuilderPro组件中BuildableGridObjectTypeSOlist属性的值。这个网格系统只有一种可构建的对象类型。
确保在 保存和加载(Save & Load) 部分中为这个新的网格系统指定一个唯一的保存名称。否则,它将用其他 EGB Pro Grid XZ 系统覆盖保存的数据。
当同时选择 EGB Pro Grid XZ 和 EGB Pro Grid XZ 02 对象时,可以看到它们的碰撞体是重叠的。这可能会导致不必要的问题。要解决此问题,请转到每个对象中的 Grid Object Collision Data,并将碰撞体大小乘数(Collider Size Multiplier) 属性值降低为1.05。
运行程序,现在可以使用新创建的网格来放置对象。

第 12 步:添加区域拦截器
新建一个空物体,添加Buildable Object Area Blockers组件,设置该组件的大小,该组件所表示的区域在Scene窗口显示为红色方块,该区域内不能创建任何物体。

新建另一个空物体,添加Buildable Free Object Snappers组件,设置该组件的大小,该组件所表示的区域在Scene窗口显示为蓝色方块,该区域内不能创建挂载BuildableGridObject组件的物体。

第 13 步:添加第一人称控制器
打开场景EasyGridBuilder Pro/Demo Scenes/Demo 3D All In One,然后选择First Person CameraHolder、First Person Character Controller、First Person Controller UI和Switch Controllers,复制选中的物体。然后返回演示3D教程场景,选择粘贴。现在选择 切换控制器(Switch Controllers) 对象,并将 WASDCameraHolder 对象拖放到两个缺失的属性(Starting Active Objects和Main Cam Starting Active Parent)。

运行程序,您可以使用键盘上的“BaskSpace”在控制器之间切换。现在,您可以在第一人称模式下执行所有 Easy Grid Builder Pro 功能。您还可以添加自己的控制器。
注意:当您处于第一人称模式时,您将遇到一个问题,并且由于光标被锁定在屏幕中央而无法选择 UI 按钮。这可以通过禁用第一人称相机支架对象的锁定光标属性来解决。
第 14 步:附加信息
如果要在Grid Axis XY 网格系统中使用准备好的可构建预制件。在先前准备好的预制件中,在Buildable Free Object和Buildable Grid Object 组件中勾选Rotate Object For XY(适配XY网格)属性。然后创建一个新的EGB Pro Grid XY网格系统,并将之前创建的“3D Building Small Buildable Grid Object Type SO”资产添加到“Buildable Grid Object Type SO List”,将“3D Prop Vegetation Buildable Free Object Type SO”资产添加到“Buildable Free Object Type SO List”属性中。
这样,你就可以在XZ和XZ网格中使用相同的预制体和相同的Buildable Type SO assets。

浙公网安备 33010602011771号