Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

TerrainData.SetAlphamaps

Объявление

public void SetAlphamaps(int x, int y, float[,,] map);

Описание

Назначить все значения знаков в данной области карты.

Массив, передаваемый этой функции, определяет ширину и высоту заменяемой части. Третье измерение массива соответствует количеству текстур splatmap.

using UnityEngine; public class Example : MonoBehaviour { public Terrain t; // Смешиваем две текстуры ландшафта в соответствии с крутизной // наклон в каждой точке. void Start() { float[,,] map = new float[t.terrainData.alphamapWidth, t.terrainData.alphamapHeight, 2]; // Для каждой точки на альфа-карте... for (int y = 0; y < t.terrainData.alphamapHeight; y++) { for (int x = 0; x < t.terrainData.alphamapWidth; x++) { // Получить нормализованную координату местности, которая // соответствует точке. float normX = x * 1.0f / (t.terrainData.alphamapWidth - 1); float normY = y * 1.0f / (t.terrainData.alphamapHeight - 1); // Получить значение крутизны по нормализованной координате. var angle = t.terrainData.GetSteepness(normX, normY); // Крутизна дается как угол, 0..90 градусов. Разделять // на 90, чтобы получить значение альфа-смешивания в диапазоне 0..1. var frac = angle / 90.0; map[x, y, 0] = (float)frac; map[x, y, 1] = (float)(1 - frac); } } t.terrainData.SetAlphamaps(0, 0, map); } }
Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
API скрипты 2021.3