版本: Unity 6 (6000.0)
语言英语
  • C#

TerrainPaintTool<T0>

UnityEditor.TerrainTools 中的类

/

继承自:ScriptableSingleton_1

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交,但我们确实会阅读用户提出的每个建议更改,并在适用的情况下进行更新。

关闭

提交失败

由于某些原因,您的建议更改无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

描述

地形绘制工具的基类。

从此类派生以实现您自己的地形绘制工具。

using UnityEngine;
using UnityEditor;
using UnityEngine.TerrainTools;

namespace UnityEditor.TerrainTools { public class MyPaintHeightTool : TerrainPaintTool<MyPaintHeightTool> { Material m_Material = null; Material GetPaintMaterial() { if (m_Material == null) m_Material = new Material(Shader.Find("Hidden/Terrain/PaintHeight")); return m_Material; }

public override string GetName() { return "My Paint Height Tool"; }

public override string GetDescription() { return "Left click to raise.\n\nHold shift and left click to lower."; }

public override void OnRenderBrushPreview(Terrain terrain, IOnSceneGUI editContext) { TerrainPaintUtilityEditor.ShowDefaultPreviewBrush(terrain, editContext.brushTexture, editContext.brushSize); }

public override bool OnPaint(Terrain terrain, IOnPaint editContext) { Material mat = TerrainPaintUtility.GetBuiltinPaintMaterial();

float rotationDegrees = 0.0f; BrushTransform brushXform = TerrainPaintUtility.CalculateBrushTransform(terrain, editContext.uv, editContext.brushSize, rotationDegrees); PaintContext paintContext = TerrainPaintUtility.BeginPaintHeightmap(terrain, brushXform.GetBrushXYBounds());

// apply brush Vector4 brushParams = new Vector4(editContext.brushStrength * 0.01f, 0.0f, 0.0f, 0.0f); mat.SetTexture("_BrushTex", editContext.brushTexture); mat.SetVector("_BrushParams", brushParams); TerrainPaintUtility.SetupTerrainToolMaterialProperties(paintContext, brushXform, mat);

Graphics.Blit(paintContext.sourceRenderTexture, paintContext.destinationRenderTexture, mat, (int)TerrainBuiltinPaintMaterialPasses.RaiseLowerHeight);

TerrainPaintUtility.EndPaintHeightmap(paintContext, "Terrain Paint - MyPaintHeightTool"); return false; } } }

公共方法

GetDescription检索自定义地形工具的描述。
GetName检索自定义地形工具的名称。
OnDisable当工具被销毁时调用。
OnEnable当工具被创建时调用。
OnEnterToolMode当工具被激活时调用。
OnExitToolMode当工具变为非活动状态时调用。
OnInspectorGUI自定义地形工具 OnInspectorGUI 回调。
OnPaint自定义地形工具绘制回调。
OnRenderBrushPreview使用此方法实现自定义工具预览和 UI 行为,这些行为仅在鼠标位于 SceneView 范围内或您正在积极使用此工具时才会渲染。
OnSceneGUI自定义地形工具 OnSceneGUI 回调。

继承的成员

静态属性

instance获取单例的实例。当第一次访问此属性时,Unity 会创建单例实例。如果您使用 FilePathAttribute,则 Unity 也会在第一次访问时加载数据。

属性

hideFlags对象是否应隐藏、与场景一起保存或用户可修改?
name对象的名称。

公共方法

GetInstanceID获取对象的实例 ID。
ToString返回对象的名称。

受保护的方法

Save保存 ScriptableSingleton 的当前状态。

静态方法

Destroy移除 GameObject、组件或资源。
DestroyImmediate立即销毁对象 obj。强烈建议您使用 Destroy 代替。
DontDestroyOnLoad加载新场景时不要销毁目标对象。
FindAnyObjectByType检索类型为 type 的任何活动加载对象。
FindFirstObjectByType检索类型为 type 的第一个活动加载对象。
FindObjectsByType检索类型为 type 的所有加载对象的列表。
Instantiate克隆对象 original 并返回克隆。
InstantiateAsync捕获原始对象(必须与某些 GameObject 相关)的快照并返回 AsyncInstantiateOperation。
CreateInstance创建可脚本化对象的实例。
GetFilePath获取此 ScriptableSingleton 保存到的文件路径。

运算符

bool对象是否存在?
operator !=比较两个对象是否引用不同的对象。
operator ==比较两个对象引用以查看它们是否引用同一个对象。

消息

Awake当创建 ScriptableObject 的实例时调用。
OnDestroy当可脚本化对象将被销毁时调用此函数。
OnValidate当脚本加载或 Inspector 中的值发生更改时,Unity 调用的仅编辑器函数。
Reset重置为默认值。