使用网格绘图工具(如绘画、擦除、拾取、选择和填充)在网格上创作数据的基类。
通过继承该类和/或从继承的类创建画笔资源实例,您可以创建自定义画笔,以响应高级网格事件,如绘画、擦除、拾取、选择和填充。
using UnityEngine;
// Paints two Prefabs in checkerboard pattern [CreateAssetMenu] public class CheckerboardBrush : GridBrushBase { public GameObject prefabA; public GameObject prefabB;
public override void Paint(GridLayout grid, GameObject brushTarget, Vector3Int position) { bool evenCell = Mathf.Abs(position.y + position.x) % 2 > 0; GameObject toBeInstantiated = evenCell ? prefabA : prefabB;
if (toBeInstantiated != null) { GameObject newInstance = Instantiate(toBeInstantiated, grid.CellToWorld(position), Quaternion.identity); newInstance.transform.SetParent(brushTarget.transform); } } }
BoxErase | 擦除网格上给定边界内的数据。 |
BoxFill | 将瓦片和 GameObject 框填到所选图层的给定边界内。 |
ChangeZPosition | 更改 GridBrushBase 的 Z 位置。 |
Erase | 擦除网格上给定边界内的数据。 |
Flip | 翻转给定 FlipAxis 中的网格画笔。 |
FloodFill | 给定单元格的起始坐标,将数据灌填到网格中。 |
Move | 当用户移动之前使用选取框选择的区域时,将调用 Move。 |
MoveEnd | 当用户已结束对之前使用选取框选择的区域进行移动时,将调用 MoveEnd。 |
MoveStart | 当用户开始对之前使用选取框选择的区域进行移动时,将调用 MoveEnd。 |
Paint | 将数据绘制到网格上的给定边界内。 |
Pick | 给定单元格坐标,从网格中选取数据。 |
ResetZPosition | 重置 GridBrushBase 的 Z 位置更改。 |
Rotate | 按照给定的 RotationDirection 旋转网格画笔上的所有瓦片。 |
Select | 选择网格区域。 |