非常感谢我们的天才设计师“李一奇”同学为我的这篇文章设计的图标!
前几天发了一条朋友圈,跟大家分享了一下近来一段时间一直在做的一项比较“大胆”的技术尝试。之所以用“大胆”来形容,是因为我们目前是一个创业团队,技术上的任何决策风险都可能导致整个公司陷入灾难。。。
朋友圈发布之后很多朋友来找我聊具体的实现细节。于是我决定写这篇文章来跟大家仔细分享一下我的整个实现过程。
先介绍一下背景:
去年(16年)8月的某一天子雄来找我研究我们下一款产品的技术实现方案。在这之前我已经开始使用Unreal进行新产品Demo的开发。之所以选用Unreal是因为我们之前给老罗演示的产品Demo一直使用的是Unreal。但是子雄提出想更换Unity引擎做后续开发。由于具体理由会涉及我们的产品定位的一些细节,这个目前还在保密,不允许我说。。。 你们猜猜就好。。。
在一番理由阐述及数据展示之后我被他说服了。本来使用Unity开发或者Unreal开发对我个人来说是无所谓的,但是他最后说了一句“我们未来的某一天可能会切回Unreal开发。。。”
此时我的内心是崩溃的。。。
为了保证我们某一天突然改变主意又不能影响研发进度,于是我做了第一步尝试:
我把我之前开发的Unreal插件做了代码重构,然后在插件代码的上层做了一个对外暴露的C接口层。这样一来插件的功能就可以使用两种方式来调用:
1.Unreal自身的执行环境。
2.通过非Unreal的执行环境,直接利用C接口调用。
以BlankPlugin为基础我写了一个小Demo。我绘制了一张类图,方便大家大概了解一下代码的结构: