Unity3D_Easy Grid Builder 使用说明(基本API文档)
本文档介绍了如何使用 Easy Grid Builder Pro API。
01. 命名空间
需要在脚本中添加 Easy Grid Builder Pro 命名空间才能使用其所有功能。
using SoulGames.EasyGridBuilderPro;
02. 接入网格系统
获取对场景中所有网格的引用。
private List<EasyGridBuilderPro> easyGridBuilderProList; private void Start() { easyGridBuilderProList = MultiGridManager.Instance.easyGridBuilderProList; }
获取对场景中当前活动网格的引用。
private EasyGridBuilderPro currentActiveSystem; private void Update() { currentActiveSystem = MultiGridManager.Instance.activeGridSystem; }
例:按名称获取对特定网格系统的引用。
using SoulGames.EasyGridBuilderPro; private List<EasyGridBuilderPro> easyGridBuilderProList; private EasyGridBuilderPro specificGrid; private string specificGridName; private void Start() { easyGridBuilderProList = MultiGridManager.Instance.easyGridBuilderProList; foreach (EasyGridBuilderPro easyGridBuilderPro in easyGridBuilderProList) { if(easyGridBuilderPro.name is specificGridName) { specificGrid = easyGridBuilderPro; } } }
03. 公共获取函数
例:获取对当前活动网格的网格宽度的引用。(当按下“空格键”时)
using SoulGames.EasyGridBuilderPro; private EasyGridBuilderPro currentActiveSystem; private int activeSystemGridWidth; private void Update() { currentActiveSystem = MultiGridManager.Instance.activeGridSystem; if (Input.GetKeyDown(KeyCode.Space)) { activeSystemGridWidth = currentActiveSystem.GetGridWidth(); } }
/// 返回网格系统的 GridMode currentActiveSystem.GetGridMode(); /// 返回网格系统的 GridAxis currentActiveSystem.GetGridAxis(); /// 返回网格系统的 GridWidth currentActiveSystem.GetGridWidth(); /// 返回网格系统的 GridLength currentActiveSystem.GetGridLength(); /// 返回网格系统的 CellSize currentActiveSystem.GetGridCellSize(); /// 返回网格系统的 GridOrigin currentActiveSystem.GetGridOrigin(); /// 返回当前存储的 BuildableGridObjectTypeSOList currentActiveSystem.GetBuildableGridObjectTypeSOList(); /// 返回当前存储的 BuildableGridObjectTypeSOList currentActiveSystem.GetBuildableFreeObjectTypeSOList(); /// 返回当前活动垂直栅格系统的栅格索引 currentActiveSystem.GetActiveVerticalGridIndex(); /// 返回 Bertical Grids Count currentActiveSystem.GetVerticalGridCount(); /// 返回网格系统的 GridHeight currentActiveSystem.GetGridHeight(); /// 返回网格系统的唯一保存名称 currentActiveSystem.GetUniqueSaveName(); /// 返回网格系统的保存位置 currentActiveSystem.GetSaveLocation(); /// 返回当前可构建的可构建网格对象类型SO currentActiveSystem.GetBuildableGridObjectTypeSO(); /// 返回当前可构建的可构建自由对象类型 SO currentActiveSystem.GetBuildableFreeObjectTypeSO(); /// 按名称返回可构建网格对象类型 So currentActiveSystem.GetBuildableGridObjectTypeSOFromName(string buildableGridObjectTypeSOName); /// 按名称返回可构建的自由对象类型 currentActiveSystem.GetBuildableFreeObjectTypeSOFromName(string buildableFreeObjectTypeSOName); /// 返回网格单元的世界位置。使用 Vector2Int 参数
currentActiveSystem.GetWorldPositionXZ(Vector2Int gridPosition) currentActiveSystem.GetWorldPositionXY(Vector2Int gridPosition) /// 返回网格单元格的网格位置(“网格索引”)。使用 Vector3 参数
currentActiveSystem.GetGridPositionXZ(Vector3 worldPosition) currentActiveSystem.GetGridPositionXY(Vector3 worldPosition) /// 返回网格单元的网格构建对象(网格索引)。使用 Vector3 参数或 Vector2Int 参数
currentActiveSystem.GetGridObjectXZ(Vector3 worldPosition) currentActiveSystem.GetGridObjectXZ(Vector2Int gridPosition) currentActiveSystem.GetGridObjectXY(Vector3 worldPosition) currentActiveSystem.GetGridObjectXY(Vector2Int gridPosition) /// 无论网格单元索引是否在固定网格内,返回 true 或 false
currentActiveSystem.IsValidGridPositionXZ(Vector2Int gridPosition) currentActiveSystem.IsValidGridPositionXZ(Vector2Int gridPosition)
04. 公共集函数
例:将所有网格设置为 GridMode。(当按下“空格键”时)
using SoulGames.EasyGridBuilderPro; private List<EasyGridBuilderPro> easyGridBuilderProList; private GridMode gridMode = GridMode.None; private void Start() { easyGridBuilderProList = MultiGridManager.Instance.easyGridBuilderProList; } private void Update() { if (Input.GetKeyDown(KeyCode.Space)) { foreach(EasyGridBuilderPro easyGridBuilderPro in easyGridBuilderProList) { easyGridBuilderPro.SetGridMode(gridMode); } } }
/// 强制设置网格系统的 GridMode /// <param name="gridMode">网格模式</param> easyGridBuilderPro.SetGridMode(GridMode gridMode); /// 设置网格系统的垂直网格 /// <param name="currentActiveGridIndex">垂直网格索引</param> easyGridBuilderPro.SetActiveVerticalGrid(int currentActiveGridIndex); /// 设置网格系统的垂直网格自动高度检测 /// <param name="setActive">启用或禁用</param> easyGridBuilderPro.SetAutoDetectHeight(bool setActive); /// 设置网格系统的 垂直网格更改高度与输入 /// <param name="setActive">启用或禁用</param> easyGridBuilderPro.SetChangeHeightWithInput(bool setActive); /// 设置网格系统的 UseBuildableDistance /// <param name="enable">启用或禁用 UseBuildableDistance</param> /// <param name="objectTransform">将对象变换进行距离检查,默认为 nul</param> /// <param name="distanceMin">最小距离</param> /// <param name="distanceMax">最大距离</param> easyGridBuilderPro.SetUseBuildableDistance(bool enable, Transform objectTransform, float distanceMin, float distanceMax); /// 设置网格系统的唯一保存名称 /// <param name="uniqueSaveName">名称</param> currentActiveSystem.SetUniqueSaveName(string uniqueSaveName); /// 设置网格系统的保存位置 /// <param name="saveLocation">保存位置</param> easyGridBuilderPro.SetSaveLocation(string saveLocation); /// 将可构建网格对象类型SO资产添加到网格系统 /// <param name="buildableGridObjectTypeSO">BuildableGridObjectTypeSO 资源</param> /// <param name="checkIfAlreadyHas">在检查资产是否已经存在之前,如果存在,则忽略</param> currentActiveSystem.AddBuildableGridObjectTypeSO(BuildableGridObjectTypeSO buildableGridObjectTypeSO, bool checkIfAlreadyHas); /// 将可构建的自由对象类型SO资产添加到网格系统 /// <param name="buildableFreeObjectTypeSO">BuildableFreeObjectTypeSO 资源</param> /// <param name="checkIfAlreadyHas">在检查资产是否已经存在之前,如果存在,则忽略</param> currentActiveSystem.AddBuildableFreeObjectTypeSO(BuildableFreeObjectTypeSO buildableFreeObjectTypeSO, bool checkIfAlreadyHas); /// 从网格系统中删除可构建网格对象类型SO资产 /// <param name="buildableGridObjectTypeSO">BuildableGridObjectTypeSO 资源</param> currentActiveSystem.RemoveBuildableFreeObjectTypeSO(BuildableGridObjectTypeSO buildableGridObjectTypeSO); /// 从网格系统中删除可构建的自由对象类型SO资产 /// <param name="buildableFreeObjectTypeSO">BuildableFreeObjectTypeSO 资源</param> currentActiveSystem.RemoveBuildableFreeObjectTypeSO(BuildableFreeObjectTypeSO buildableFreeObjectTypeSO);
05. 输入功能
使用这些函数来调用 Easy Grid Builder Pro 输入,而不是使用 Easy Grid Builder Pro Inputs SO 资源。
例:调用输入函数来放置可构建对象。(当按下“空格键”时)
using SoulGames.EasyGridBuilderPro; private List<EasyGridBuilderPro> easyGridBuilderProList; private void Start() { easyGridBuilderProList = MultiGridManager.Instance.easyGridBuilderProList; } private void Update() { if (Input.GetKeyDown(KeyCode.Space)) { foreach(EasyGridBuilderPro easyGridBuilderPro in easyGridBuilderProList) { easyGridBuilderPro.TriggerBuildablePlacement(); easyGridBuilderPro.TriggerBuildablePlacementCancelled(); } } }
// 重置 Grid Mode foreach (EasyGridBuilderPro easyGridBuilderPro in easyGridBuilderProList) { easyGridBuilderPro.SetGridModeReset(); } // 还需要在这些脚本中调用它 [SerializeField]private GridObjectSelector gridObjectSelector; if (gridObjectSelector) gridObjectSelector.SetGridModeReset();
// 更改栅格垂直级别 foreach (EasyGridBuilderPro easyGridBuilderPro in easyGridBuilderProList) { easyGridBuilderPro.TriggerGridHeightChangeManually(); } // 设置 Grid Mode Build foreach (EasyGridBuilderPro easyGridBuilderPro in easyGridBuilderProList) { easyGridBuilderPro.SetGridModeBuilding(); }
// 开始可拼叠放置 foreach (EasyGridBuilderPro easyGridBuilderPro in easyGridBuilderProList) { easyGridBuilderPro.TriggerBuildablePlacement(); } // 末端可拼叠放置 foreach (EasyGridBuilderPro easyGridBuilderPro in easyGridBuilderProList) { easyGridBuilderPro.TriggerBuildablePlacementCancelled(); }
// 滚动可构建列表 /// <param name="value">滚动方向的 Vector2 值</param> foreach (EasyGridBuilderPro easyGridBuilderPro in easyGridBuilderProList) { easyGridBuilderPro.TriggerBuildableListScroll(Vector2() value); }
// 开始重影对象左旋转 foreach (EasyGridBuilderPro easyGridBuilderPro in easyGridBuilderProList) { easyGridBuilderPro.TriggerGhostRotateLeft(); } // 结束重影对象左旋转 foreach (EasyGridBuilderPro easyGridBuilderPro in easyGridBuilderProList) { easyGridBuilderPro.TriggerGhostRotateLeftCancelled(); }
// 开始向右旋转重影对象 foreach (EasyGridBuilderPro easyGridBuilderPro in easyGridBuilderProList) { easyGridBuilderPro.TriggerGhostRotateRight(); } // 结束重影对象右旋转 foreach (EasyGridBuilderPro easyGridBuilderPro in easyGridBuilderProList) { easyGridBuilderPro.TriggerGhostRotateRightCancelled(); }
// Grid Mode 销毁 foreach (EasyGridBuilderPro easyGridBuilderPro in easyGridBuilderProList) { easyGridBuilderPro.SetGridModeDestruction(); } // 建筑物销毁 foreach (EasyGridBuilderPro easyGridBuilderPro in easyGridBuilderProList) { easyGridBuilderPro.TriggerBuildableDestroy(); } // Grid Mode 选择 gridObjectSelector.SetGridModeSelection(); // 建筑物选择 gridObjectSelector.TriggerBuildableSelection(); // 网格数据保存 foreach (EasyGridBuilderPro easyGridBuilderPro in easyGridBuilderProList) { easyGridBuilderPro.TriggerGridSave(); } // 网格数据加载 foreach (EasyGridBuilderPro easyGridBuilderPro in easyGridBuilderProList) { easyGridBuilderPro.TriggerGridLoad(); }
浙公网安备 33010602011771号