Jump to content

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


photo

Recommended Posts

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

Link to comment

Добрый день!

15 hours ago, Snake-Eyes said:

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

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

image.png

Спасибо!

Link to comment

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

image.png

Link to comment
23 hours ago, Snake-Eyes said:

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

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

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

 Спасибо!

LandscapeFetch.upackage

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

Здравствуйте, подскажите пожалуйста ! Почему в классе 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

Link to comment

Добрый день.

15 hours ago, diamond2536 said:

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

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

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

  • Like 2
Link to comment

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

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