C# 在统一中生成平铺贴图

C# 在统一中生成平铺贴图,c#,visual-studio,unity3d,C#,Visual Studio,Unity3d,我正在unity中设计一款游戏,它允许我使用文本文件来存储与世界上某个瓷砖相关的一串数字。 文件应按如下所示读取: 114122- 100002- 071092- 111111 每个数字应该在游戏世界中生成一个特定的磁贴,并且一个“-”分隔磁贴应该位于先前生成的磁贴下方的文件。 到目前为止,我只研究了如何通过伪代码生成这个脚本,但在unity脚本引擎中进行的大多数尝试都失败了。 这是我的伪代码: METHOD BuildWorld(tilemap)

我正在unity中设计一款游戏,它允许我使用文本文件来存储与世界上某个瓷砖相关的一串数字。 文件应按如下所示读取:

    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)如何加载平铺选项板

假设您希望在最终构建中轻松添加这些平铺选项板,并在运行时加载它们,则需要将它们放在资源文件夹(Assets/Resources/yourtilepaletes/palete1.txt)中

2) 如何实例化您的互动程序

然后,您需要在代码中的某个地方阅读该调色板,您决定在哪里创建瓷砖,以及使用哪个调色板。 正在分析文本文件以通过“-”字符分隔行。。。 然后实例化预定义的平铺结构,无论是UI图像,还是3D世界中的四边形,还是2D或3D世界中的精灵

3) 如何表示平铺选项板

我建议您在调色板中使用JSON而不是这种文本格式,如下所示:

{
    "paletteLines" :
    [
        "paletteColumns" :
        [
            "emptySpace",
            "brokenBrick",
            "redDoorBrick",
            ... etc
        ],
        ... etc
    ]
}
然后您可以有一个对应的模型类,您可以将您的子对象反序列化到该类中,并使用相应的属性名称,还可以使用枚举反序列化解析器

4) 如果你做家庭作业,从某个地方开始,你愿意帮助你更多吗

从字面上讲,伪代码告诉我们的唯一一件事是如何在语义和语法上表示平铺调色板

现在,你的问题非常笼统,“如何处理这个问题,可能的步骤集是什么”,以及“在不知道哪怕是一组步骤的情况下,我会选择使用哪一组步骤,那么在一组步骤中执行每个步骤的可能方式是什么”。这会使一个好答案的内容成倍增长。你的问题应该简洁

以语法表示瓷砖选项板的方法,将其加载到应用程序的方法,在3D世界中实例化瓷砖的方法

这三个选项中的每一个都有许多可能的方法。

1)如何加载瓷砖选项板

假设您希望在最终构建中轻松添加这些平铺选项板,并在运行时加载它们,则需要将它们放在资源文件夹(Assets/Resources/yourtilepaletes/palete1.txt)中

2) 如何实例化您的互动程序

然后,您需要在代码中的某个地方阅读该调色板,您决定在哪里创建瓷砖,以及使用哪个调色板。 正在分析文本文件以通过“-”字符分隔行。。。 然后实例化预定义的平铺结构,无论是UI图像,还是3D世界中的四边形,还是2D或3D世界中的精灵

3) 如何表示平铺选项板

我建议您在调色板中使用JSON而不是这种文本格式,如下所示:

{
    "paletteLines" :
    [
        "paletteColumns" :
        [
            "emptySpace",
            "brokenBrick",
            "redDoorBrick",
            ... etc
        ],
        ... etc
    ]
}
然后您可以有一个对应的模型类,您可以将您的子对象反序列化到该类中,并使用相应的属性名称,还可以使用枚举反序列化解析器

4) 如果你做家庭作业,从某个地方开始,你愿意帮助你更多吗

从字面上讲,伪代码告诉我们的唯一一件事是如何在语义和语法上表示平铺调色板

现在,你的问题非常笼统,“如何处理这个问题,可能的步骤集是什么”,以及“在不知道哪怕是一组步骤的情况下,我会选择使用哪一组步骤,那么在一组步骤中执行每个步骤的可能方式是什么”。这会使一个好答案的内容成倍增长。你的问题应该简洁

以语法表示瓷砖选项板的方法,将其加载到应用程序的方法,在3D世界中实例化瓷砖的方法


这三种方法中的每一种都有许多可能的实现方法。

因此,基本上你是在问“我如何将我的算法转换为工作代码(为了统一)”,这一点并不特别重要。我不想特别被告知如何去做。我只是不确定如何将它链接到unity IDE中的一个平铺调色板。我到处找了找,什么也没找到。我更感兴趣的是将我的脚本与此链接的方法,而不是解决方案。抱歉,如果它出现错误,那么基本上你是在问“如何将我的算法转换为工作代码(为了统一)”,不是特别的。我不想特别被告知如何去做。我只是不确定如何将它链接到unity IDE中的一个平铺调色板。我到处找了找,什么也没找到。我更感兴趣的是将我的脚本与此链接的方法,而不是解决方案。很抱歉,如果它错了