Jump to content

[SOLVED] Как получить данные маски (текстуру) LandscapeTerrain


photo

Recommended Posts

Posted

Приветствую! Как получить данные маски(а именно текстуру) Landscape на которой стоит персонаж? Спасибо!

Posted

Добрый день!

15 hours ago, Snake-Eyes said:

Приветствую! Как получить данные маски(а именно текстуру) Landscape на которой стоит персонаж? Спасибо!

В первом приближении можно рассмотреть доступный в SDK пример "CPP Samples Demo -> Landscape Terrain -> Fetch", где продемонстрировано, как с помощью соответствующего вызова получать информацию о высотах, альбедо и масках. Возможно, этот способ поможет решить вашу задачу.

image.png

Спасибо!

Posted

У меня кроме пропсов там ничего нет, не могли бы Вы скинуть скрипт? (А еще лучше если бы это было на C#) Спасибо

image.png

Posted
23 hours ago, Snake-Eyes said:

У меня кроме пропсов там ничего нет, не могли бы Вы скинуть скрипт? (А еще лучше если бы это было на C#) Спасибо

Исходный код находится в папке "/source/terrain_fetch_sample" проекта. Однако, пример действительно написан на C++ и в данном случае является просто демонстрацией логики того, как это может быть реализовано :)

По вашей просьбе мы повторили тот же пример на C#. Для запуска достаточно скачать и распаковать архив из вложения к сообщению в редакторе, а затем скомпилировать приложение, нажав кнопку "Play" в редакторе, как показано на видео ниже:

 Спасибо!

LandscapeFetch.upackage

Posted

Ребята Вы лучшие! Спасибо огромное!

  • Like 1
  • bmyagkov changed the title to [SOLVED] How to get Landscape Mask data?
  • 1 month later...
Posted

Здравствуйте, подскажите пожалуйста ! Почему в классе LandscapeFetch - отсутствует методы и свойства - using System.Collections;
using System.Collections.Generic;
using Unigine;

[Component(PropertyGuid = "2ec7c5d40bdac262a982668a7f66638c2f9f394a")]
public class LandscapeFetch : Component
{
    private Player player;
    private LandscapeFetch landscapeFetch;

    void Init()
    {
        Visualizer.Enabled = true;
        player = node as Player;
        landscapeFetch = new LandscapeFetch();

        landscapeFetch.UsesHeight = true;
        landscapeFetch.UsesNormal = true;
        landscapeFetch.SetUsesMask(0, true);
    }
    
    void Update()
    {    

    }
}, в строках - landscapeFetch.UsesHeight = true;
        landscapeFetch.UsesNormal = true;
        landscapeFetch.SetUsesMask(0, true); ошибка - 'LandscapeFetch' does not contain a definition for 'UsesHeight' and no accessible extension method 'UsesHeight' accepting a first argument of type 'LandscapeFetch' could be found

Posted

Добрый день.

15 hours ago, diamond2536 said:

Здравствуйте, подскажите пожалуйста ! Почему в классе LandscapeFetch - отсутствует методы и свойства [...]

Проблема скорее всего в том, что вы назвали свой класс так же как и класс движка: LandscapeFetch (ссылка на статью в документации).

Попробуйте просто переименовать свой класс во что-нибудь другое, либо не используйте директиву "using Unigine;".

  • Like 2
Posted

Да, действительно ! Спасибо огромное ! Проблема была в названии класса ((( А я уже все передумал - в чем ошибка !!! 

  • Like 1
  • bmyagkov changed the title to [SOLVED] Как получить данные маски (текстуру) LandscapeTerrain
  • silent changed the title to Как получить данные маски (текстуру) LandscapeTerrain
×
×
  • Create New...