Описание
Базовый класс для инструментов рисования рельефа.
Наследуйте этому классу, чтобы реализовать свои собственные инструменты рисования ландшафта.
using UnityEngine;
using UnityEditor;
using UnityEngine.Experimental.TerrainAPI;
namespace UnityEditor.Experimental.TerrainAPI
{
public class MyPaintHeightTool : TerrainPaintTool
{
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 GetDesc()
{
return "Left click to raise.\n\nHold shift and left click to lower.";
}
public override void OnSceneGUI(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)TerrainPaintUtility.BuiltinPaintMaterialPasses.RaiseLowerHeight);
TerrainPaintUtility.EndPaintHeightmap(paintContext, "Terrain Paint - MyPaintHeightTool");
return false;
}
}
}
Публичные Методы
GetDesc |
Получает описание пользовательского инструмента рельефа. |
GetName |
Получает имя пользовательского инструмента рельефа. |
OnDisable |
Вызывается при уничтожении инструмента. |
OnEnable |
Вызывается при создании инструмента. |
OnEnterToolMode |
Вызывается при активации инструмента. |
OnExitToolMode |
Вызывается, когда инструмент становится неактивным. |
OnInspectorGUI |
Обратный вызов OnInspectorGUI пользовательского инструмента ландшафта. |
OnPaint |
Обратный вызов рисования пользовательского инструмента ландшафта. |
OnSceneGUI |
Обратный вызов OnSceneGUI пользовательского инструмента ландшафта. |
Унаследованные члены
Статические Свойства
instance |
Получает экземпляр Singleton. Unity создает экземпляр Singleton при первом доступе к этому свойству. Если вы используете FilePathAttribute, Unity также загружает данные при первом доступе.. |
Свойства
hideFlags |
Должен ли объект быть скрыт, сохранен вместе со сценой или изменен пользователем? |
name |
Имя объекта. |
Публичные Методы
Защищенные методы
Save |
Сохраняет текущее состояние ScriptableSingleton. |
Статические Методы
Destroy |
Удаляет игровой объект, компонент или ресурс. |
DestroyImmediate |
Немедленно уничтожает объект obj. Вместо этого вам настоятельно рекомендуется использовать Destroy. |
DontDestroyOnLoad |
Не уничтожайте целевой объект при загрузке новой сцены. |
FindObjectOfType |
Возвращает первый активный загруженный объект типа Type. |
FindObjectsOfType |
Получает список всех загруженных объектов типа Type. |
Instantiate |
Клонирует исходный объект и возвращает клон. |
CreateInstance |
Создает экземпляр объекта, доступного для сценария. |
GetFilePath |
Получить путь к файлу, в котором сохранен этот ScriptableSingleton. |
Операторы
bool |
Существует ли объект? |
оператор != |
Сравнивает, если два объекта ссылаются на другой объект. |
оператор == |
Сравнивает две ссылки на объекты, чтобы определить, ссылаются ли они на один и тот же объект. |
Сообщения
Awake |
Эта функция вызывается при запуске сценария ScriptableObject. |
OnDestroy |
Эта функция вызывается, когда объект, доступный для сценария, будет уничтожен. |
OnValidate |
Функция только для редактора, которую Unity вызывает при загрузке скрипта или изменении значения в Инспекторе. |
Reset |
Восстановить значения по умолчанию. |