版本: 2022.3
语言: 英语
使用提供的示例创建可脚本化瓦片的脚本
GridBrushBase

可脚本化毛笔

创建可脚本化毛笔

创建一个新的类,从GridBrushBase继承(或任何有用的子类,如GridBrush)。为您的新毛笔类重写任何必需的方法。以下是一些您通常会重写的方法:

  • Paint允许毛笔向目标网格添加项目。
  • Erase允许毛笔从目标网格中删除项目。
  • FloodFill允许毛笔向目标网格填充项目。
  • Rotate旋转毛笔中设置的项目。
  • Flip翻转毛笔中设置的项目。

使用ScriptableObject.CreateInstance<(Your Brush Class>()创建您新类的实例。您可以在编辑器中使用AssetDatabase.CreateAsset()调用,以此将此新实例转换为资源,以便重复使用。

您还可以为您的新毛笔创建一个自定义编辑器。这和脚本可对象的自定义编辑器工作方式相同。当创建自定义编辑器时,以下是一些您想要重写的主要方法:

  • 您可以通过重写OnPaintInspectorGUI,当毛笔被选中时,在调色板上显示一个检查器一个Unity窗口,显示关于当前选中的GameObject、资源或项目设置的信息,允许您检查和编辑值。 更多信息
    词汇表中查看
    窗口,以便在绘画时提供额外的行为。
  • 您还可以重写OnPaintSceneGUI,在SceneView上绘画时添加额外的行为。
  • 您还可以重写validTargets,以便有一个自定义的目标列表,毛笔可以与之交互。该目标列表在调色板窗口中显示为下拉列表。

创建后,可脚本化毛笔在调色板窗口中的毛笔下拉菜单中列出。默认情况下,将实例化可脚本化毛笔脚本并存储在项目中的文件夹中。对毛笔属性的任何修改都存储在此实例中。如果您想有具有不同属性的该毛笔的多个副本,您可以在项目中将其作为资源实例化。这些毛笔资源在毛笔下拉菜单中单独列出。

您可以在您的可脚本化毛笔类中添加一个CustomGridBrush属性。这允许您配置调色板窗口中毛笔的行为。CustomGridBrush属性具有以下属性:

  • HideAssetInstances - 将此设置为true,以在调色板窗口中隐藏创建的所有毛笔资源的副本。这对于您只想在瓦片调色板窗口的毛笔下拉菜单中显示默认实例很有用。
  • HideDefaultInstances - 将此设置为true,以在调色板窗口中隐藏毛笔的默认实例。这对于您只想在瓦片调色板窗口的毛笔下拉菜单中显示创建的资产很有用。
  • DefaultBrush - 将此设置为true,以设置毛笔的默认实例为项目中的默认毛笔。这使它在项目开始时始终选择此毛笔作为默认毛笔。 注意: 仅设置一个可脚本化毛笔作为默认毛笔。设置多个默认毛笔可能会使您的可脚本化毛笔行为出现错误。
  • DefaultName - 将名称设置为此处以使画笔下拉菜单使用指定的名称作为画笔的名称,而不是画笔类别的名称。

如果想让可脚本化画笔类仅使用某些工具,可以为类添加一个具有兼容 TilemapEditorTools 类型列表的 BrushTools 属性。这确保您的可脚本化画笔只在与贴图调色板中的这些特定工具激活。

注意:请记住保存项目以确保您的新的画笔资产已保存!

使用提供的示例创建可脚本化瓦片的脚本
GridBrushBase