Unity平台依赖对象/组件

时间:2014-07-30 17:17:31

标签: unity3d

我在这里的第一个问题,我似乎无法找到一个类似的问题,如果之前有人问过,那就很抱歉。

顺便提一下这是Unity相关的,是的,我也发布了Unity3D的答案,但我想也可以从堆积溢出的知识渊博的个人那里得到帮助。

基本上我想知道是否有办法制作平台相关的对象或组件。我知道我可以将代码包装在我一直在做的预处理器指令命令中,但我倾向于使用大量插件,其中许多只能在特定平台上运行。

但是,我只有一个项目可用于我所有与平台相关的游戏版本,并希望继续以这种方式工作。所以我想知道我是否能说出一个具有兼容插件组件的对象,只有在为某个平台构建时才会创建。

如果没有,有没有办法让一个对象使用一个特定的插件组件,如果在WP8上说,但是如果为Android构建,那么另一个完全不同的组件呢?

如果这些不可能,你们如何解决平台相关的插件?你只是为每个平台制作单独的项目吗? (感觉就像那样击败了统一的跨平台点 - 虽然......)

谢谢大家,非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

不幸的是,如果您需要为每个平台运行唯一代码,您将被迫依赖预处理器指令。

但是,如果您应用facade-based design pattern,这可以更容易管理。您可以创建一个或多个外观组件,以展示更通用的抽象接口,而不是在整个项目的无数脚本中添加特定于平台的详细信息。外墙可以在内部管理预制件,API或您需要的任何其他平台特定的详细信息。

例如,您可以编写一个管理播放器保存数据的SaveManager类。在可以直接访问文件的平台上,SaveManager实例化并控制使用直接文件访问的内部FileSaveManager。在其他平台(如Web构建)上,SaveManager实例化并控制使用Unity的PlayerPrefs系统的PlayerPrefsSaveManager。这样,每个类只包含它需要的代码,而其他类只能调用SaveManager而不必担心这些细节。