微游技术部一周分享 20231217期

本周关键字:go状态模式,go静态编译,mergo,express动态路由与视图,React多行输入组件,html复用SVG,气泡卡片与文字气泡,app https请求抓包,2dUI与3d模型混合渲染。

minigame-logo

大家好,以下是微游互娱技术部本周的分享:

1. [go开发] 设计模式-状态模式与Go实现FSM(有限状态机)

https://juejin.cn/post/7312731537589289000

状态模式它将对象的行为封装在不同的状态类中,并使用接口来定义状态之间的转换。这样,当对象的状态改变时,它可以在不同的状态类之间切换,并执行相应的行为。状态模式适用于实现状态机,而状态机常用在游戏、工作流引擎等系统开发中。

本文介绍状态模式以及如何用 go 实现有限状态机 FSM。

2. [go开发] Go 静态编译机制

https://juejin.cn/post/7313242056741634098

本文介绍 go 的静态编译机制的几个概念:

  • GO 的可移植性
  • GO 的静态链接
  • CGO 影响可移植性
  • 纯静态编译

3. [go开发] mergo 介绍

https://overstarry.vip/posts/mergo_desc/

本文介绍 go 库: mergo。 mergo 可以用来方便地合并 struct 和 map , 可以将结构体的字段赋值到map中,可以将map的值赋值给结构体的字段。Mergo 在很多知名项目中被使用,如 containerd、k8s、loki等。

4. [Web开发] express动态设置路由和视图

https://juejin.cn/post/7312797734776520738

对于express的服务端渲染,部分页面的后台服务业务逻辑是一样的,但是页面展示视图不一样,针对这种情况。如何从路由、视图动态选择等不同的方式来分别处理这种情况,本文就列举相关方式具体说明。

5. [Web开发] 使用 React 实现多行输入组件

https://juejin.cn/post/7312861376400343094

输入组件一般都是字符串类型,在一些场景中需要输入多行数据,比如网址、名称等,封装一个支持多行输入的组件可以方便快速创建数据,避免多次输入耗费时间。

本文介绍如何基于 input 输入框组件封装一个多行输入组件。

6. [Web开发] 在HTML中复用SVG

https://juejin.cn/post/7313242038560391194

在前端开发中,经常会使用svg来实现一些小图标,有时候这些svg实现的小图标可能在不同的位置使用,为了便于维护最好对svg代码进行复用。文本给出html中复用svg的简单示例。

7. [产品设计] 气泡卡片和文字气泡的差别

https://juejin.cn/post/7312844725182152745

同样都是交互反馈及提示组件,你可能会疑惑:文字气泡和气泡卡片 有什么区别?分别有哪些特定的使用场景?本文为你揭晓。

ui-popover-vs-tooltips

8. [QA] 已正常安装抓包工具证书,可抓浏览器https请求无法抓取APP https请求

https://juejin.cn/post/7313135267572203532

本文介绍使用抓包工具时遇到的一个问题:可抓浏览器https请求,但是却无法抓取APP https请求。

9. [Cocos Creator] 3D模型渲染到2D UI上

https://juejin.cn/post/7312861376400687158

在3D游戏开发中,有时需要将 3D 角色模型渲染到 2D UI 界面上,比如王者的角色选择界面。本文以Cocos Creator 3.8 版本来实现 3D 模型和 UI 渲染在同一界面。

引擎默认使用前向渲染管线,前向渲染管线的渲染流程是先渲染 3D 后渲染 UI,因此 UI 总是覆盖在3D 内容上面,要实现 3D 内容和 2D 内容一起渲染有两种方式:

  • Render Texture: 不将内容直接渲染到屏幕上的情况下进行渲染, 这种方式被称为“离屏渲染”(Off-screen Rendering)。
  • UIMeshRenderer: 将 3D 模型从 3D 渲染管线转换到 2D 渲染管线的带有转换功能的渲染组件。

以上。