Unity Andorid 多渠道管理
版本 修订记录 修订日期 1.0.0 Init 2023-2-4 1.0.1 增加 IL2Cpp编译 2023-2-25 目标 & 背景 一般来说手游开发到一定进度,一定会涉及到大量的 native 交互问题,比如 重启 App、拉起支付、观看广告 等等,而这些大部分情况下都是第三方提供的 native SDK,而且有时候游戏需要接入的渠道多的离谱,再加上很多公司自己研发的 SDK 由于缺…
2023-2-04 18:05
|
|
2908 字
|
24 分钟
使用 InterpolatedString 减少字符串拼接的 GC
原视频链接 考虑到 Unity 准备在 2024 年前后,推出基于 dotnet Runtime 的版本,本篇文章也标记为 Unity 分类,等后面 Unity 准备好之后,再对新版的客户端进行改造 在日常开发过程中,字符串的拼接通常会占用大量的 GC,通常拼接字符串我们会使用如下几种方法 1. 1 + "/" + 2 + "/" + 3 2. StringBuilder 3. string.Fo…
2023-1-29 15:23
|
|
746 字
|
8 分钟
向一个外部类插入属性
原视频链接 假设我们有如下 Unit 类,仅有一个 name 字段 public class Unit { public string name; } 此时我们有一个需求,所有 Unit 都希望有一个 position 字段 Unit 类可能因为各种原因无法扩展,比如在 dll 里、package 里,或者你本身不希望侵入 Unit 类进行新字段的增加,此时为了解决这个问题,我们有如下定义 pub…
2023-1-14 13:51
|
|
261 字
|
3 分钟
C# 在不同环境下调用 shell 脚本
目标 & 背景 一般在开发一个项目时,往往会分出 N 多个 git 仓库,挨个手动更新会很麻烦,如果希望使用 C# 调用一些 git 相关的命令,通常会使用 Process 这类。由于某些仓库,如配表的导出,我们会写一个比较长的 shell 处理,此时就需要使用 Process 来调用 shell 这个时候问题就出现了,在 Windows/Mac 上,死活找不到 dotnet,两者的处理过…
2023-1-08 13:02
|
|
1247 字
|
8 分钟
基于 ECS 设计下的加载管理
之前在 Addressable 迁移 YooAsset 这篇文章中做了分层设计的相关介绍,本文为分层中详细的解析,以及为什么要这么设计 目标 & 背景 我们当前使用的框架,需要设计成一个基础库,以 Package 的形式进行使用,方便公司中其他项目后续的接入,所以泛用性要求很高,此外,开发者的水平可能会参差不齐,可能会有应届生刚刚接触 Unity 等现实因素的考量,因此我们需要达成如下目标…
2022-7-16 11:13
|
|
2075 字
|
24 分钟
如何有效的对 UGUI Button 成组排队
多指触控带来的问题 连续点击重入的问题 解决思路 按钮成组 框架统一分发 Popup 的新问题 后续可能会碰到的问题 单个 UI 粒度的防重入 红点、新手引导异步化 循环列表异步化 点击通用化 一般来说,对按钮的事件监听通常采用 AddListener 的方式,有些项目可能会对此处的处理函数额外做一层包装,做一些统一处理,最后再执行具体的逻辑 无论上面哪种方式,想要将按钮的点击事件完美成组排队,都…
2022-6-23 12:27
|
|
1810 字
|
12 分钟
[转] Unity I18N 小探
前略 从 key-value 表到 I2 Localization Rosetta - 关于本地化问题的反思和实现 只有这些了吗 结语 参考 原文地址 前略 软件要分发给使用不同语言和处于不同地区的人员,需要从多个方面处理从而使这些人能以自己文化背景下熟知的方式来使用。这包括了最基本的文本的翻译,也有一些通用习俗和约定的问题(如不同国家和地区的日期时间的表示等)。而本地化(L10N)和国际化(I1…
2021-1-04 17:13
|
|
6213 字
|
23 分钟
ET 热更可用的命令行GM指令方案
起因 尝试的方案 iOS 捷径 GM UI UnityIngameDebugConsole 具体实现 ConsoleMethod Hotfix 监听 IGmCodeHandler 展示ID 的指令示例 GMCodeComponent 总结 起因 最近项目需要做游戏的 GM 指令,思前想去,想了几个方案后, 最后决定使用 UnityIngameDebugConsole提供的 GM 指令,然后封装一个…
2020-12-16 14:04
|
|
759 字
|
6 分钟
获取Unity GameView 分辨率大小
起因 代码部分 起因 项目需要做不同机型的分辨率的适配,UI 的适应还好说,GameView 修改分辨率之后,UI 就自适应了,但是场景中 Camera 的 Size 适配还需要自己动手做些工作 之前代码是直接获取Screen.width 和 Screen.height,但是当在Editor 下, 修改了GameView 的分辨率时,获取到的值是不对的 代码部分 Unity 源码参考 这里需要写两…
2020-11-02 12:13
|
|
273 字
|
4 分钟
DOTween Awaiter
使用 代码 原文 使用 await transform.DOLocalMoveX(3f, 2f).ToAwaiter(); 代码 将下面的代码放到项目中即可 public static class DOTweenAwaiterHelper { public static DOTweenAwaiter ToAwaiter(this Tween tween, CancellationToken can…
2019-12-09 12:40
|
|
92 字
|
4 分钟
Unity 2D Lighting
测试效果 测试环境 Lightweight RP 安装 Project Setting 2D渲染模式设置 旧工程设置 Normal Map 设置 测试效果 测试环境 Unity 2019.3.0a2 Lightweight RP 6.7.1 MacOS 10.15 beta3 Lightweight RP 安装 打开PackageManager窗口,找到Lightweight RP 注意这里要自己…
2019-7-18 18:01
|
|
396 字
|
2 分钟
如何使用Siri发布游戏
起因 环境 前期准备 Cocos 命令行工具 微信IDE 命令行工具 自动发送微信 微信云服务文件http上传 命令行工具编写 iOS捷径集成 Mac 下共享设置 捷径编写 起因 最近一直在做微信小游戏的开发,但是因为包体限制,写了一些自动化脚本,每次都要跑一遍,刚好微信平台的云开发支持了http上传包体,以及http访问等功能,索性做成语音发布 环境 这里介绍的发布环境依靠iOS的捷径运行在Ma…
2019-5-25 12:29
|
|
816 字
|
5 分钟
Unity Asset 文件设置 ReadOnly
起因 Unity 的Asset 文件如果设置为 readonly 是不可以 Serialize 的,而且在编辑器中,有些属性不希望被修改,这篇文章主要解决上述的两个问题 运行时的 "readonly" 但是下面的做法会导致在Editor中显示为 <Test>k__BackingField [CreateAssetMenu(fileName = "GameData.asset", men…
2019-5-20 17:32
|
|
366 字
|
10 分钟
Unity State Machine Behaviors
欠下的技术债总归是要还的 起因 当初为了实现一个当动画执行结束后,维护一个变量值的功能,在需要维护的状态下动画的最后一帧每一个后面增加一个Event,调用脚本,今天突然发现StateMachineBehaviors功能,之前的处理方式真是抠脚… Unity官方例子写的非常清楚,之前的需求只需要写在OnStateExit函数中即可… using UnityEngine; public class A…
2018-12-25 11:51
|
|
167 字
|
3 分钟
如何通过设置改善Unity画面效果
Linear&Gamma Lighting Setting Quality Setting Camera Setting Rendering Path HDR Post Processing 初始配置 Color Grading Linear&Gamma Player Setting -> OtherSetting 下图可以明显看出两者在高强度光照下的区别 Lighting …
2018-12-24 14:59
|
|
378 字
|
2 分钟
Sprite Mask
效果展示 之前为了实现下面的效果还特地弄了一个Shader,而且还很麻烦,后来发现Sprite Mask 组件后,实现起来一切都是那么的自然 具体实现 首先创建一个SpriteMask物体,给Sprite属性赋予一个圆形的形状 这里Mask的形状我们可以自己定义,丢进去的美术图是什么样显示范围就是什么样 然后创建out 和 in 两个Sprite,分别代表第一层和第二层,并将out 中Mask I…
2018-12-22 22:03
|
|
280 字
|
2 分钟
实现更棒的跳跃效果
最近比较懒,好久没有更新博客了 ## Rigidbody2D > 我们使用Unity的物理来实现跳跃效果 点击跳跃按钮时,给rb添加一个向上的力,但是这时候的跳跃看起来很像在月球一样,非常的飘 ```csharp rb.velocity = Vector2.up * jumpVelocity; ``` ![disable](http://www.liuocean.com/wp-content…
2018-12-21 14:36
|
|
422 字
|
2 分钟