Unity 游戏框架搭建 2019 (三十七、三十八) partial 和 public 的合理使用以及整理完结篇&第三章 小与快速复习

在上一篇中,我们学习了新的知识 partial 关键字,那么我们什么时候该用 partial 呢?

我们简单分析一下:

  • 像 GameObjectSimplify 和 TransformSimplify 都是很可能增长的类,所以自然就要用到了。
  • 而我们的 CommonUtil、EditorUtil、MathUtil 也是非常大的一个范畴,随着时间,要加的东西也会越来越多的。所以这两个类也要加上 partial。
  • 而 ResolutionCheck 类,目前只完成了比较常用的分辨率,未来随着时间肯定会遇到比较奇葩的分辨率的。所以 ResolutionCheck 也要加上 partial。
  • Exporter 呢,是专门为导出功能定制的,目前比较完善了。所以用不到 partial。而且 Exporter 里的 GeneratePackageName 事实上也不需要被其他的类调用了,所以它的访问权限也可以从 public 关键字也可以改成 private 了。

基于以上,我们要给除了 Exporter 以外的所有的类都加上 partial,然后要把第一个示例的 Exporter.GeneratePackageName 的 public 关键字改成 private。

到此呢,我们的整理就算真正的结束了。

整理之后我们得到了几个类

  1. 简化类:GameObjectSimplify、TransformSimplify
  2. Util 类:CommonUtil、EditorUtil、MathUtil、ResolutionCheck
  3. 编辑器功能:Exporter

这已经可以构成一个代码库了。

复盘

我们大体回忆下我们从第一篇到现在经历的阶段,大致可以分为如下两个阶段

  1. 学习收集示例阶段。
  2. 整理阶段。
学习收集示例阶段

其实我们可以理解为做项目或者做功能,为了做项目呢,往往我们会积累下来大量的代码。从而导致项目慢慢趋于混乱,直到无法在写下去(比如笔者也是写到某个示例的时候呢已经是瓶颈了,不知道写什么。

整理阶段

在整理阶段,会处理掉好多项目时间紧的时候没时间解决的代码设计问题。然后在整理阶段呢,也还会遇到很多意外的问题。不过经过整理之后,项目的结构会更加合理精简,再未来的一段时间内,可以让开发者愉快滴写功能,并且项目的发展也有了个方向(笔者也是通过这次整理,才知道了接下来的方向)。

知识库 到 代码库

而我们的知识库,一开始只是一个一个示例。而示例本身的存在,只是为了记录我们所接触的知识。但是随着我们的示例增加以及经验的提高,我们对示例库的要求就会变高,从只是为了记录知识到方法可复用、类名要合理。慢慢地就会变成一个代码库。

那么大家还记得我们在第一篇定的小目标嘛? 打造自己的知识库,结果打造着打造着变成了个代码库。当然代码库本身还是有记录知识的作用的,只不过在记录知识的作用上还能提高我们的编码效率。之所以会这样是因为程序语言本身的存在就是为了提高人类生产力(编码效率),和传达信息的(记录知识)。

提高编码效率,是因为它能够复用,能够记录知识的原因是,本身程序语言就是传达信息的,要不,它怎么叫语言呢?

我们可以用日常用的语言写笔记,但是用程序语言一样也可以写笔记,同样笔记也是需要整理的。

从知识库到代码库,我们也遇到了很多关键知识点,如下:

  1. public 关键字
  2. 类的第一作用
  3. partial 关键字

在接触了这些关键知识点后,库的结构就会发生革命性的变化,结构会变得更合理清晰,且更容易扩展。而这些关键知识点,目前大多来自于 C# 语法,但是它们不仅仅是语法知识,而是能够帮助我们进行代码设计的知识,笔者把这些知识叫做设计工具。

在代码中不管是设计一个庞大系统还是给一个项目做架构,或者仅仅是设计一个方法,都离不开这些设计工具,有了这些,可以让结构有更多地选择,更多地可能性。

再次起航

通过这次整理,我们收获了很多法宝,有了这些法宝我们有信心可以在接下来学习阶段中克服一切困难。如果实在克服不了,大不了我们再进行一次整理。

说到整理,我们的库开发流程已经算是成型了。很简单,流程如下:

  • 学习收集示例
  • 整理
  • 学习收集示例
  • 整理
  • 学习收集示例

如此往复,很快我们就能造出一个 QFramework,只不过要再多接触几个设计工具(C# 关键知识)。

导出

到此呢,我们的整理就真正完结了。我们好久没有进行导出了,在这篇我们就要进行一次导出,这次导出呢,要加上版本号。

版本号为 v0.0.1 ,所以导出的文件名应该是 QFramework_v0.0.1。

现在我们手头应该有两个版本的文件.

  • QFramework_v0.0.0: 整理之前的备份版本。
  • QFremework_v0.0.1: 整理完结后的版本。

Unity 游戏框架搭建 2019 (一三十八) 第三章 小与快速复习

在这里插入图片描述

转载请注明地址:凉鞋的笔记:liangxiegame.com

更多内容

  • QFramework 地址:https://github.com/liangxiegame/QFramework

  • QQ 交流群:623597263

  • Unity 进阶小班

    • 主要训练内容:
      • 框架搭建训练(第一年)
      • 跟着案例学 Shader(第一年)
      • 副业的孵化(第二年、第三年)
    • 权益、授课形式等具体详情请查看《小班产品手册》:https://liangxiegame.com/master/intro
  • 关注公众号:liangxiegame 获取第一时间更新通知及更多的免费内容。

  • 11
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 9
    评论
好的,我会尽力回答你的问题。如果我理解正确的话,你想了解如何搭建一个使用Netty作为游戏服务器的Unity客户端。以下是一些大致的步骤: 1. 首先,你需要创建一个Unity项目并设置其为2D或3D游戏项目,具体取决于你的游戏型。在Unity中,你可以使用C#编写客户端代码。 2. 在Unity中,你需要使用Socket或TcpClient等网络库来与Netty服务器进行通信。你需要在客户端上实现一个似于Socket或TcpClient的来进行网络通信。 3. 与服务器建立连接。在Unity中,你可以使用似于下面的代码来建立连接。 ``` TcpClient client = new TcpClient(); client.Connect("127.0.0.1", 8888); ``` 4. 在客户端上实现收发消息的方法。你可以通过使用NetworkStream来发送和接收消息。你需要在客户端上实现似于下面的代码来发送消息。 ``` NetworkStream stream = client.GetStream(); byte[] data = Encoding.UTF8.GetBytes(message); stream.Write(data, 0, data.Length); ``` 5. 在客户端上解析从服务器返回的数据。你可以使用似于下面的代码来解析从服务器返回的数据。 ``` byte[] buffer = new byte[1024]; int bytes = stream.Read(buffer, 0, buffer.Length); string data = Encoding.UTF8.GetString(buffer, 0, bytes); ``` 6. 在Unity中实现游戏逻辑。你需要在客户端上实现游戏逻辑以响应从服务器收到的数据。例如,你可以在客户端上实现一个似于下面的代码来处理从服务器接收到的游戏数据。 ``` void HandleGameMessage(string message) { // 解析收到的消息 // 处理游戏逻辑 } ``` 希望这些步骤可以帮助你开始使用Netty作为游戏服务器的Unity客户端。当然,具体的实现还需要根据你的游戏型和需求进行调整。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

凉鞋的笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值