Terrains with scripts

Speed Tree : Terrain & Trees.

Terrains with scripts

Сообщение EvgeniyT 14 дек 2010, 21:25

Парни, надеюсь на вашу помощь!

Можно ли как-нибудь рисовать Terrain в скрипте? Т.е. мне нужно по некоторым данным как бы восстановить карту, сделать где-то овраги, где-то холмы и так далее. Я наткнулся на метод SetHeights( ) в классе Terrain, и впринципе нашёл способ изменения высоты конкретной точки. Но когда я попытался в простом цикле изменить квадратик размером 100*100, мой компьютер ушёл в астрал, и реанимировал я его остановкой процесса Unity.exe в диспетчере задач. Могу себе представить, что будет при такой отрисовке карты размером 2000*2000, например. Так вот мой вопрос как раз в том, можно ли как-то это сделать по-другому?
EvgeniyT
UNIт
 
Сообщения: 142
Зарегистрирован: 14 дек 2010, 19:06
  • ICQ

Re: Terrains with scripts

Сообщение alexz 15 дек 2010, 17:11

EvgeniyT писал(а):Но когда я попытался в простом цикле изменить квадратик размером 100*100, мой компьютер ушёл в астрал, и реанимировал я его остановкой процесса Unity.exe в диспетчере задач.

Проблема в коде. Покажи, как делаешь.
alexz
UNITрон
 
Сообщения: 270
Зарегистрирован: 16 ноя 2010, 23:37

Re: Terrains with scripts

Сообщение EvgeniyT 15 дек 2010, 20:42

Синтаксис:
Используется csharp
void Start ()
  {
    Terrain t = (Terrain)GetComponent("Terrain");
    float[,] heights = new float[,] { { 0.05f, 0.05f } };
    for (int x = 100; x < 200; x++)
      for (int y = 100; y < 200; y++)
        t.terrainData.SetHeights(x, y, heights);
  }
 
EvgeniyT
UNIт
 
Сообщения: 142
Зарегистрирован: 14 дек 2010, 19:06
  • ICQ

Re: Terrains with scripts

Сообщение DbIMok 15 дек 2010, 21:36

правильный вопрос - половина ответа. учитесь формулировать вопросы понятно.
Новости > _Telegram чат @unity3d_ru (11.6k/4.8k online) > _Telegram канал @unity_news (4.8k подписчиков) > Телеграм тема > "Спасибо"
Аватара пользователя
DbIMok
Адепт
 
Сообщения: 6372
Зарегистрирован: 31 июл 2009, 14:05

Re: Terrains with scripts

Сообщение alexz 15 дек 2010, 22:16

Синтаксис:
Используется csharp
void Start()
{
        Terrain t = GetComponent<Terrain>();

        float[,] heights = new float[100, 100]; // Создаём участок поверхности размером 100x100
        for (int y = 0; y < heights.GetLength(0); y++)
        {
                for (int x = 0; x < heights.GetLength(1); x++)
                {
                        heights[y, x] = 0.05f; // Делаем ему замысловатый рельеф
                }
        }

        t.terrainData.SetHeights(100, 100, heights); // Засовываем этот участок в карту высот Terrain'а в позицию (100; 100)
}
alexz
UNITрон
 
Сообщения: 270
Зарегистрирован: 16 ноя 2010, 23:37

Re: Terrains with scripts

Сообщение Neodrop 16 дек 2010, 10:05

DbIMok писал(а):http://answers.unity3d.com/questions/23274/multithread-x-terrain-loading


Дымок, полегче с фреймами! Насилу убил редирект с этой страницы, вызванный вашим постом. :-w
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: Terrains with scripts

Сообщение EvgeniyT 16 дек 2010, 16:42

Neodrop

Спасибо
EvgeniyT
UNIт
 
Сообщения: 142
Зарегистрирован: 14 дек 2010, 19:06
  • ICQ

Re: Terrains with scripts

Сообщение EvgeniyT 16 дек 2010, 16:54

alexz писал(а):
Синтаксис:
Используется csharp
void Start()
{
        Terrain t = GetComponent<Terrain>();

        float[,] heights = new float[100, 100]; // Создаём участок поверхности размером 100x100
        for (int y = 0; y < heights.GetLength(0); y++)
        {
                for (int x = 0; x < heights.GetLength(1); x++)
                {
                        heights[y, x] = 0.05f; // Делаем ему замысловатый рельеф
                }
        }

        t.terrainData.SetHeights(100, 100, heights); // Засовываем этот участок в карту высот Terrain'а в позицию (100; 100)
}



Спасибо большое, это помогло.
Не подскажите случайно, где можно посмотреть описание подобных методов? Максимум, что я смог найти, это

function SetHeights (xBase : int, yBase : int, heights : float[,]) : void
Description
Set an array of heightmap samples



Но, если честно, не очень понятное описание.
EvgeniyT
UNIт
 
Сообщения: 142
Зарегистрирован: 14 дек 2010, 19:06
  • ICQ

Re: Terrains with scripts

Сообщение alexz 16 дек 2010, 17:26

Ничего «полнее и подробнее» пока не встречал.
alexz
UNITрон
 
Сообщения: 270
Зарегистрирован: 16 ноя 2010, 23:37


Вернуться в Земля и деревья.

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1