TerrainPaintTool<T0>
класс в UnityEditor.TerrainTools
Наследуется от:ScriptableSingleton_1
Описание
Base class for terrain painting tools.
Унаследуйтесь от этого класса, чтобы реализовать собственные инструменты рисования по ландшафту.
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. |
Унаследованные члены 7
Статические свойства
| Свойство | Описание |
|---|---|
| instance | Получает экземпляр Singleton. Unity создает экземпляр Singleton при первом доступе к этому свойству. Если вы используете FilePathAttribute, то Unity также загружает данные при первом доступе. |
Свойства
| Свойство | Описание |
|---|---|
| hideFlags | Должен ли объект быть скрытым, сохраняться с Scene или изменяться пользователем? |
| name | Имя объекта. |
Открытые методы
| Метод | Описание |
|---|---|
| GetInstanceID | Получает экземпляр ID объекта. |
| ToString | Возвращает имя объекта. |
Защищенные методы
| Метод | Описание |
|---|---|
| Save | Сохраняет текущее состояние из ScriptableSingleton. |
Статические методы
| Метод | Описание |
|---|---|
| Destroy | Удаляет GameObject, компонент или ресурс. |
| DestroyImmediate | Немедленно уничтожает указанный объект. Используйте с осторожностью и только в режиме редактирования. |
| DontDestroyOnLoad | Не уничтожать целевой Объект при загрузке нового Scene. |
| FindAnyObjectByType | Получает любой активный загруженный объект типа Type. |
| FindFirstObjectByType | Получает первый активный загруженный объект типа Type. |
| FindObjectsByType | Получает список всех загруженных объектов типа Type. |
| Instantiate | Клонирует исходный объект и возвращает клон. |
| InstantiateAsync | Захватывает моментальный снимок первоначального объекта (который должен быть связан с каким-либо GameObject) и возвращает AsyncInstantiateOperation. |
| CreateInstance | Создает экземпляр скриптового объекта. |
| GetFilePath | Получить путь к файлу, в котором сохранен этот ScriptableSingleton. |
Операторы
| Оператор | Описание |
|---|---|
| bool | Существует ли объект? |
| оператор!= | Сравнивает, если два объекта ссылаются на разные объекты. |
| оператор == | Сравнение двух ссылок на объекты для определения того, относятся ли они к одному и тому же объекту. |
Сообщения
| Сообщение | Описание |
|---|---|
| Awake | Вызывается при создании экземпляра ScriptableObject. |
| OnDestroy | Эта функция вызывается, когда скриптовый объект будет уничтожен. |
| OnValidate | Функция только для редактора, которую вызывает Unity при загрузке скрипта или изменении значения в Inspector. |
| Reset | Сброс значений по умолчанию. |