在上一篇中在unity中导入了UGF包和GF源码解决了依赖引用的问题。
那么入口在哪呢?
我发现这个项目中唯二的两个scenes: Menu.unity和Main.unity
单独运行这两个场景没什么区别只是两个空场景。也是毕竟场景中没有任何脚本,看起来平平无奇。
我看了作者的官网发现在原来有个Example.unity的场景里面有有个gameframework的预制体。这个才是游戏的入口。这个预制体我是能在现在的UGF包里找到但是,Example场景没了。反正这个场景的组成很简单我就自己在assets下构造了一个Example。
创建好这个入口场景后比较吸引我的地方就是这个预制体上的警告了。
这个警告的意思是:编辑器资源模式只为unity的编辑器模式服务。GameFramework会使用你第一个生效的编辑器资源文件。
这个应该是作者用来提醒用户的把?现在先不管。
现在运行这个场景。出现了一个小调试器的窗口
这个窗口可以自由的拖动到游戏屏幕中的任何一个位置。
很明显上面的数字是记录当前游戏画面的fps值。
只有29.99很明显肯定被限帧了吧。
点开这个按钮。里面有更多的游戏详情。
点开各个界面里面的东西真的很全面了。可以获取游戏内的东西,
还可以知道你的本地设备信息等。
这个可以等之后再慢慢了解,现在先找游戏的入口在哪呢? 发现unity的输出日志中有个报错。
这个报错的意思是:游戏的入口流程是不可用的。
在开始GF学习前我也大致了解过GF是由流程这个概念控制游戏的。结合官方文档和网络上的一些大佬的博文后发现GF的流程控制是在预制体的这个节点下。
我当前预制体次节点都有红色感叹号了怪不得不可用呢。
看了别人的这个节点下都是全勾上的,并且入口流程都选了StarForce.ProcedureLaunch,那我也葫芦画瓢,自己想想也没错这样才合理指定一个流程作为入口流程。
果然解决了报错。
现在我运行下游戏,我的unity主题变成黑色了。我真的太喜欢这个皮肤了可惜我一直以来是免费用户无法体会到高贵的pro版用户的黑色皮肤。(原来以为是UGF搞的,实际上Unity在某个版本后已经支持让普通用户体验pro主题了)
好了言归正传,我发现现在日志窗口中又有一些报错了。
意思就是launch启动流程和splash(溅?)流程中有空引用异常。
代码中是在这个地方
我去这个路径上看一眼是否有这么个东西。
发现是有这么一个东西的
这上面配置的都是官方的一些路径
感觉没什么问题,不明白为什么报错。
再看看另一个流程里的报错
现在也确实是编辑器模式啊感觉还是没毛病。
到这步我就有点没头绪了,不知道出了什么问题无从下手。
我用vs调试了一番,发现这个GameEntry 下的组件在运行时都是空的,我随即查找了组件的引用位置。
发现入口是在GameEntry中。
上面那个builtin 进去是获取GF预制体上的对应节点的组件。
下面那个顾名思义就是自定义的组件。
这是一个mono类的脚本,但我发现在场景中根本没有这个脚本的引用的物体。所以当然报空引用异常了。我又仔细的翻了一遍网络上各位大佬的博文,发现在他们的GF预制体上的根节点UGF实际上是挂有GameEntry这个脚本的。因为作者已经对GF这套框架优化很久了,势必会有一些小的改动吧。
作者居然来个半成品预制体。。。。也许是想让我们更细致的了解GF吧。(后续发现作者实际上有个仓库在他的github上叫做tutorial里面有现成品)
不管我还是组装自己的预制体吧,依照官网的文档我组装成作者推荐的那样。
现在运行一下游戏。还是有报错 没有关系继续解决问题。
emmm感觉自己装到这里越来越慌了 还是下下作者的tutorial参考看看吧。好吧就在刚刚我发现了在assets下其实是有游戏入口场景的所以我可以直接参考了。因为unity在公司使用的布局和家里的使用的布局不一致,导致我看漏了还是记录一下。。
两列布局和单列布局 在家一直用两列的布局导致看漏了。不过自己组装入口场景也确实让我学习到很多,现在可以很方便的参考作者的入口场景了。
现在我切换到作者的启动场景中。
这是作者制作的组件和我的差不多,上面挂的脚本也和我想的一样。
这个instance就是transform带有画布组件的根节点 ,item Template是 从一个现有的预制体上面获得的脚本。
builtindata里前两个都是引用congfig文件夹下配置文件
最后一个也是引用现有预制体
这个场景大体上就是这样了,除此之外就是相机和事件系统节点没什么特别的点。
我现在运行一下这个场景。
ok程序正常运行也没用任何报错了。之后可以专心研究作者的代码了。