Плитка Карта нерестится в единстве - PullRequest
0 голосов
/ 14 ноября 2018

Я разрабатываю игру в единстве, которая позволит мне использовать текстовые файлы для хранения строки чисел, которые относятся к определенной плитке в мире. Файл должен читаться как показано:

    114122-
    100002-
    071092-
    111111

Каждое число должно порождать определенную плитку в игровом мире, и "-" разбивает файл, где плитки должны быть ниже ранее созданных плиток.
До сих пор я смотрел только на создание этого через псевдокод и потерпел неудачу при большинстве попыток сделать это в движке скриптов Unity. Вот что у меня есть в качестве псевдокода:

METHOD BuildWorld(tilemap)
        FOR item in tilemap THEN
            FOR character in item THEN
                SWITCH (character)
                    CASE "0"
                    SPAWN an empty space
                    END CASE

                    CASE "1" 
                    SPAWN a brick tile
                    END CASE

                    CASE "2"
                    SPAWN a broken brick tile
                    END CASE

                    CASE "3"
                    SPAWN a brick with a red door
                    END CASE

                    CASE "5"
                    SPAWN a brick with a blue door
                    END CASE

                    CASE "6"
                    SPAWN a brick with a green door
                    END CASE

                    CASE "7"
                    SPAWN red key
                    END CASE

                    CASE "8"
                    SPAWN blue key
                    END CASE

                    CASE "9"
                    SPAWN green key
                    END CASE

                    CASE "*"
                    SET WorldSpawnLocation[0] = character // x value
                    SET WorldSpawnLocation[1] = item // y value
                END SWITCH 
            END FOR
        END FOR

Я не уверен, как это сделать, и любая помощь приветствуется.

Извините, если мой псевдокод задан не лучшим образом

1 Ответ

0 голосов
/ 14 ноября 2018

1) как загрузить ваши палитры плиток

при условии, что вы хотите, чтобы эти палитры плиток были легко добавлены в вашу окончательную сборку, и чтобы они загружались во время выполнения, вам нужноих в вашей папке ресурсов (Assets / Resources / YourTilePalettes / Palette1.txt)

2) как создать экземпляр ваших плиток

Затем вам нужно прочитать эту палитрув каком-то месте вашего кода, где вы когда-нибудь решите создать плитки и какую палитру использовать для них.Разбор вашего текстового файла в отдельные строки по символу "-" ... А затем создание вашей предопределенной структуры листов, будь то изображение пользовательского интерфейса, или четырехугольник в трехмерном мире, или спрайт в двумерном или трехмерном мире ...

3) как представить свои палитры плиток

Я бы предложил вам использовать JSON для своих палитр вместо этого текстового формата, который будет выглядеть следующим образом:

{
    "paletteLines" :
    [
        "paletteColumns" :
        [
            "emptySpace",
            "brokenBrick",
            "redDoorBrick",
            ... etc
        ],
        ... etc
    ]
}

и затем у вас может быть соответствующий класс модели, в который вы десериализуете своего сына, с соответствующими именами атрибутов, и вы также можете использовать анализатор десериализации enum.

4) Готовпоможет вам больше, если вы сделаете свою домашнюю работу и начнете где-нибудь

Буквально единственное, что говорит нам ваш псевдокод, это то, как вы хотите семантически и синтаксически представлять палитры плиток.

На данный момент ваш вопрос очень общий: «как подойти к этому, каковы возможные наборы шагов» и «не зная даже одного набора шагов, который я когда-либо выбрал бы,какие будут возможные способы выполнения каждого шага в наборе ».Это экспоненциально увеличивает содержание хорошего ответа.Ваш вопрос должен быть кратким.

Способы синтаксического представления ваших палитр плиток, способы их загрузки в ваше приложение, способы создания экземпляров плиток в вашем трехмерном мире,

У каждого из этих трех есть много возможныхспособы сделать это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...