我在这里的第一个问题,我似乎无法找到一个类似的问题,如果之前有人问过,那就很抱歉。
顺便提一下这是Unity相关的,是的,我也发布了Unity3D的答案,但我想也可以从堆积溢出的知识渊博的个人那里得到帮助。
基本上我想知道是否有办法制作平台相关的对象或组件。我知道我可以将代码包装在我一直在做的预处理器指令命令中,但我倾向于使用大量插件,其中许多只能在特定平台上运行。
但是,我只有一个项目可用于我所有与平台相关的游戏版本,并希望继续以这种方式工作。所以我想知道我是否能说出一个具有兼容插件组件的对象,只有在为某个平台构建时才会创建。
如果没有,有没有办法让一个对象使用一个特定的插件组件,如果在WP8上说,但是如果为Android构建,那么另一个完全不同的组件呢?
如果这些不可能,你们如何解决平台相关的插件?你只是为每个平台制作单独的项目吗? (感觉就像那样击败了统一的跨平台点 - 虽然......)
谢谢大家,非常感谢任何帮助!
答案 0 :(得分:0)
不幸的是,如果您需要为每个平台运行唯一代码,您将被迫依赖预处理器指令。
但是,如果您应用facade-based design pattern,这可以更容易管理。您可以创建一个或多个外观组件,以展示更通用的抽象接口,而不是在整个项目的无数脚本中添加特定于平台的详细信息。外墙可以在内部管理预制件,API或您需要的任何其他平台特定的详细信息。
例如,您可以编写一个管理播放器保存数据的SaveManager
类。在可以直接访问文件的平台上,SaveManager
实例化并控制使用直接文件访问的内部FileSaveManager
。在其他平台(如Web构建)上,SaveManager
实例化并控制使用Unity的PlayerPrefs系统的PlayerPrefsSaveManager
。这样,每个类只包含它需要的代码,而其他类只能调用SaveManager
而不必担心这些细节。