GitHub/ClientEngine项目使用

15 篇文章 1 订阅
4 篇文章 0 订阅

        这个是一个包含了服务器/客户端/增量更新的一个项目,其中Assets和ProjectSettings属于客户端unity项目,OtherProject里面包含了增量计算,打印日志,服务器,其他项目等之后的工具以及项目相关内容。我们来说一下怎么样使用这个项目或者说运行整个框架。

        首先说一下场景制作。因为有了光照贴图的动态加载,所以我们一共有三种,按照加载方式来讲,其实就两种,第一种是叠加场景的方法,这个方法当中存在真实的场景,我们通过工具“CreateSceneAB”来进行场景AB包的制作,其中代码在Engine/Editor/CreateSceneAB当中,可以去看看,其实就是使用流式进行场景打包,很常规的一种方法;另外一种就是通过加载Prefab的方法重组场景,这种方法是不存在真实场景的,场景的内容是通过序列加载预制组成,你可以使用配置文件进行场景预制的动态加载来实现不同的场景,这个方法,可以让预制存在于多个场景或者同样预制在一个场景存在多份。为什么动态加载光照贴图的要单独拿出来讲,是因为这个场景比较特殊,我们前期需要做很多的内容,比如场景光照贴图的制作和光照信息的保存,最后打包成场景AB内容提交上去。其中动态加载光照贴图的工具使用,首先第一步要把场景进行光照贴图的制作,然后通过“Tools/Build/SaveLightmapData”打开制作界面,详细的内容可以通过SaveLightmapDatas代码进行查看。这只是一个步骤,执行完之后,我们就会得到一个与场景名字+"_Lightmap"的AB包。当然还有另外的一个步骤,那就是保存场景当中预制的光照信息。脚本在SaveSceneLightmapData当中,可以看到,场景数据当中我们存在多套光照贴图,而预制我们只存在一套,后期我们是否需要使用多套,现在说不一定。因为N对1的关系,所以动态加载光照贴图的场景,预制都是单一的,也就是说这个场景在一开始只允许一个预制存在一份,而且它在这个场景当中使用的光照贴图数据是一样的,这也就意味着位置也是相对固定的,不然会让光照阴影之类的内容有所差别。场景预制的光照贴图数据是不需要进行ab制作的,因为它生成出来的是一份二进制文件存放在项目配置文件目录下面。通过上面的一系列操作,我们就把场景相关的内容制作好了。

        接下来说说图标。图标的制作,是存在于UI界面动态加载的内容,如果是制作卡牌呀,slg方面的或者是2D游戏,那么这个方法可能会比较适合吧。脚本都存放在CreateIconPrefab当中,简单了解看一下就可以了。主要的是,先选中一个文件,我们会获得该文件下的所有文件,最后制作成一个同名的Prefab。

        最后我们来说一下AB包。前面的有些文章当中,我们有稍微提一下的和比较详细的,这里我们讲解今天进行修改后的AB包制作,脚本都存放在CreateAB当中,可以看一下,这个工具,主要是针对项目UseAB文件夹下的文件进行AB包的制作,UseAB下面的文件夹名字都有规定的,与资源加载类型一一相关,所以想要添加的话,需要修改资源加载模块。按照工具提示,一步一步完成就可以了。

        我们这次重点来讲一下后面的内容,那就是当我们出现说通过网络测试进行文件拷贝的那一步,这个是之前没有讲过的。细心看代码的同学会发现,它拷贝的文件不是在服务器当中,也不是在运行文件当中,而是一个文件对比项目当中,我们先不说为什么,我们继续讲流程,这个步骤完成之后,我们使用文件比对进行项目文件差异分析。首先第一步,如果存在Combine文件夹,那么将里面的Hash进行名字修改,其实不用这一步也可以,只是我们为了后面版本比对,需要将这个文件保留一下;接下来启动项目文件比对,成功之后会生成一个新的Hash文件,这个就是当前版本和上一个版本的文件差异。通过说到这里,应该就知道为什么还存在一个Last999以及Last文件,Last999就是上上一个版本文件,Last就是上一个版本文件,Now就是当前版本文件,Hash就是Now和Last的文件差异。生成之后,手动将Hash修改成带版本号的文件,比如当前版本号是1,那么就修改成Hash1,然后将文件复制到服务器运行文件的Data文件夹下面,将我们新的文件也复制过来,后期我们将制作成为工具,一键将数据复制过来。最后的最后了,那就是启动服务器,启动成功之后,我们就可以运行客户端了,这个时候客户端就会去进行版本对比,然后下载更新文件,最后进入游戏一整套流程。

        这里说一下项目当中的有些弊端。认真运行了项目的同学会发现一个,通过上面一套流程下来,项目打不开其他的项目了,那是因为我们在拷贝文件的时候丢失掉了一部分,代码当中会拷贝StreamingAssets文件夹下以及一级文件夹下的文件,但是不会拷贝二级文件夹下的文件,所以就存在Other文件夹下面的文件夹没有办法拷贝过去,自然也就无法对比,最后无法下载下来,所以运行不了,后续可能会针对这个内容进行专门的制作,之所以现在不解决,是因为这个文件夹下面的文件大小很不确定,所以我们需要进行其他不一样的操作进行。

        这也就是这个项目当中一整套的运行流程了,当然,还有UI制作呀,Lua文件呀,这些内容我们都可以通过前面的框架说明进行相对应的制作和使用。

        项目视频就不录制了,回头使用的时候有什么不明白的,可以留言讨论交流。

        

项目GitHub地址

https://github.com/FengFaming/ClientEngine

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值