- 博客(221)
- 收藏
- 关注

原创 C#LINQ常用语法大全
文章目录取值First, FirstOrDefault检查计算转换排序组合创建取值First, FirstOrDefaultFirst()基本用法相当于List[0]。public static TSource First<TSource>( this IEnumerable<TSource> source );MSDN代码示例:public static c...
2020-04-11 17:29:12
4904
2
原创 物体移速过快导致碰撞检测失灵的穿透问题解决方案
在游戏开发中,当物体移动速度过快时,有可能出现"穿透"现象,这是因为离散的update检测可能跳过了实际的碰撞点。以下是整理的解决方案。
2025-02-19 19:58:54
340
原创 AABB(Axis-Aligned Bounding Box)包围盒和OBB(Oriented Bounding Box)有向包围盒
在游戏开发中,AABB(轴对齐包围盒,Axis-Aligned Bounding Box)和 OBB(有向包围盒,Oriented Bounding Box)是两种常用的碰撞检测和物体包围的技术,各自有不同的用途和优缺点。
2025-02-17 21:54:47
520
原创 Photoshop PS批处理操作教程(批量修改图片尺寸、参数等)
Photoshop批处理的主要作用是通过自动化处理一系列相似的操作来同时应用于多张图片,从而节省时间和精力,提高工作效率。批处理功能特别适用于需要批量处理的任务,如图像尺寸调整、颜色校正、水印添加等。
2025-01-07 11:33:38
4426
原创 cocos creator 3.x版本如何添加打开游戏时首屏加载进度条
项目有一个打开游戏时添加载入进度条的需求。这个功能2.X版本是自带的,不知为何在3.X版本中移除了。
2024-12-31 13:28:40
536
原创 Cocos Creator发布Unity平台试玩广告(PlayableAd)失败问题
关于如何输出试玩广告和平台文档中的说明就不赘述了,下面主要介绍在发布过程中遇到的问题。
2024-08-29 11:37:46
639
7
原创 Unity关于Addressables.Release释放资源内存问题
使用释放资源时,通过MemoryProfiler检查内存信息发现加载的内容还在内存里面,经过一系列测试加上阅读文档和搜索资料后得出以下结论。1.资源引用计数未清零。每次通过Addressables加载资源会增加该资源引用计数,使用可以减少计数,直到计数清零才会释放该资源。2.Addressables.Release是异步操作。因为我写的资源管理器是对加载资源进行缓存的,不会重复加载,但是调用Release内存中依然保留了该资源。原因是因为是一个异步操作,即使释放了也不会马上清除内存,这时如果我们调用。
2024-06-25 15:34:30
985
原创 Unity定时(延迟)管理器实现
Unity中实现定时功能的方法有很多,比如协程、UpdateInvokeAsync等,可以说是五花八门,对于这类实现方法多、需求频繁的功能还是需要一个管理器来统一处理。
2024-06-21 14:24:30
1056
原创 cocos发布试玩广告关于mraid的处理,以及跳转渠道链接
前段时间将制作完的试玩广告上传Applovin平台失败,反馈说需要对mraid和跳转进行处理。
2024-04-26 17:27:24
626
原创 cocos 3.x版本如何基于ts在检视面板显示Enum枚举类型下拉列表
网上搜索到的大多是基于js或者旧版本cocos。这里记录一下ts显示Enum的方案,cocos版本使用的3.8.2。
2024-04-03 15:31:52
917
原创 cocos使用playable ads adapter打包试玩广告报错RangeError: Invalid string length
最近有做试玩广告的需求,引擎用的cocos,打包使用的playable ads adapter插件。不过最近打包遇到个奇怪的问题,就是通过插件打包报错RangeError: Invalid string length。因为之前也用空包和早期项目测试过都能顺利打包,经过一步步排查找到了问题所在。
2024-04-01 15:12:42
492
2
原创 游戏开发常用算法整理
简单来说,动态规划就是将一个问题拆分成一系列子问题,直到子问题可以直接解决。动态规划(英语:Dynamic programming,简称DP)是一种在数学、计算机科学、经济学和生物信息学中使用的方法,通过把原问题分解为相对简单的子问题的方式求解复杂问题。斐波那契数列是一个数字序列,其中每个数字是前两个数字的总和,但前两个数字分别为0和1。如1,1,2,3,5…从前向后扫描数据,把位置 i 的数据随机插入到前 i 个(包括第 i 个)位置中。时间复杂度为 O(n),空间复杂度为 O(n)。
2024-03-18 00:53:39
822
原创 A*(AStar)算法总结
A* 算法(念做:A Star)是一种常用的路径查找和图形遍历算法,具有较好的性能和准确度。让我为您简要介绍一下 A* 算法的原理和实现。
2024-03-17 18:07:57
1196
原创 C#监听Dictionary、List的写入操作
在开发中,对于内置值类型和string我们可以通过封装属性在中监听写入操作,但是对于等就不能监听到等写入操作。所以一般采取两种方式监听它们的读写操作,一种是封装操作方法,间接进行监听,第二种就是重写和等方法。下面介绍第二种方法。
2024-01-14 01:26:12
949
原创 Unity内打开网页的两种方式(自带浏览器、内嵌浏览器)
这个比较简单,直接调用unity官方的API即可,会直接使用默认浏览器打开网页,这里就不多做解释了。另一种方案是使用unity store里的插件实现的。实现具体需求参考插件文档即可,还是蛮详细的。使用该插件不会切出APP。
2023-11-01 17:34:39
7529
原创 Unity 显示Raycast Padding区域
Raycast Padding 是一个在Unity2020.1左右添加的功能,它可以让你在不改变RectTransform的值的情况下,调整Image或Text等UI对象的射线检测区域。你可以设置四个参数来控制上下左右的边距。这个功能很实用,在推出这个功能之前如果遇到点击区域过大或者过小的问题,只能通过新建Image并设置透明来做正确的点击区域。但是这个功能有个鸡肋的地方,就是无法通过视图Scene显示直观的知道区域变化(吐槽一下官方怎么没考虑到这个问题,很多开发者在论坛反馈)。
2023-04-25 22:08:17
2214
原创 Unity 位运算介绍及使用
位运算是指对二进制数的位(bit)进行操作的运算符,可以实现一些高效的逻辑和数学运算。:只有两个位都是1,结果才是1;:只要两个位有一个是1,结果就是1;:如果位为0,结果是1,如果位为1,结果是0;:两个操作数的位中,相同则结果为0,不同则结果为1;:左移表示乘以2,左移多少位表示乘以2的几次幂;:右移表示除以2,右移多少位表示除以2的几次幂;:无论左侧操作数的类型如何,高顺序空位位置始终设置为零。
2023-04-19 10:27:35
1803
1
原创 Unity 使用RenderTexture显示黑屏、重影、锯齿解决方法
脚本new一个纹理贴图,而不是用序列化拖拽的RenderTexture。调整RenderTexture的antiAliasing抗锯齿参数即可。抗锯齿值必须是(1, 2, 4 或者 8)之一,表明每像素样本的数量。只需要将Camera的Clear Flags设置为。我择中使用的是4,在移动端上锯齿就不那么明显了。
2023-03-21 17:14:38
4382
3
原创 Unity 2020 URP Camera UI相机问题
现在正在开发中的项目使用的URP,发现相机结构有变化直接使用场景相机和UI相机无法正常显示。
2022-12-09 14:43:49
3821
5
原创 Unity ILRuntime Debugger使用及常见问题
ILRuntime支持在VS中断点调试,说一下ILRuntime Debugger的使用及常见问题。
2022-12-07 16:11:30
2615
1
原创 Unity实现Text BestFit文本超框时再缩小字体
因为要做多语言自适应功能,但是Unity自带的BestFit超过一行后就会自动缩小字体,想要的效果是文本满框后再缩小字体,所以需要重写OnPopulateMesh绘制部分。
2022-09-27 11:22:10
3174
2
原创 Unity Editor编辑器开发相关知识点
EditorPrefsUnity编辑器为开发者提供了类似PlayerPrefs的数据保存方式EditorPrefs。EditorPrefs是适用于编辑器模式,而PlayerPrefs适用于游戏运行时。示例代码 bool currentValue = EditorPrefs.GetBool(key, false); bool newValue = GUILayout.Toggle(currentValue, label); Edito
2022-05-17 18:11:50
1578
原创 Unity编辑器界面绘制之GUIStyle和GUISkin的使用
前言合理使用GUIStyle可以让自定义编辑器界面更加精致美观。而GUISkin是用于本地化储存GUIStyle的,更方便使用。GUIStyle代码示例 private GUIStyle _tabStyle; _tabStyle = new GUIStyle(); _tabStyle.alignment = TextAnchor.MiddleCenter; //字体对齐 _tabStyle.fontSize = 16; /
2022-05-17 11:40:37
2393
原创 Unity Gizmos使用绘制
前言正文Gizmos绘制要使用到两个函数,分别是OnDrawGizmos和OnDrawGizmosSelected。当有脚本中
2022-05-11 17:00:58
4265
原创 Unity项目性能优化整理
1.Mono下减少foreach使用,频繁调用容易触及堆上限,导致GC过早触发,出现卡顿现象。尤其是Update中如果非必要不要使用foreach。会产生GC Alloc。2.频繁修改的string应使用StringBuilder。3.gameObject.tag会在内部循环调用对象分配的标签属性以及拷贝额外的内存,推荐使用gameObject.CompareTag(“xxx”)来代替.tag。4.贴图压缩:(1).能使用九宫格就不要使用大图。(2).可以上tinypng网站对原始图片进行压缩。
2022-05-07 17:55:36
2858
3
原创 Unity 2D游戏跳跃优化
2D游戏跳跃下落速度问题有些2D游戏会感觉到向上跳跃和下落速度不一致,感觉下落时更干脆一些,比如马里奥,不过也跟具体的项目需求手感有关系。直接上代码。下面是优化下落速度手感的代码。using UnityEngine;public class BettlerJump : MonoBehaviour{ public float fallMultiplier = 2.5f; //下落速度倍数 public float lowJumpMultiplier = 2f; //长按跳跃
2022-05-04 02:52:15
2823
原创 Slua中的iter和IsNull用法
iter:在lua中遍历IEnumertable对象c#中使用foreach语句遍历IEnumertable,例如List,Array等, 在slua中,可以使用Slua.iter作为迭代函数遍历这些对象, 例如: for t in Slua.iter(Canvas.transform) do print("foreach transorm",t) endIsNull:判断GameObject是否为null因为Unity GameObject被destroy后,并不是真正的nul
2022-04-20 10:59:24
2969
1
原创 Unity的LayoutGroup和ContentSizeFitter同时使用时,动态改变子节点不会刷新位置的问题
前言做图文混排同时用到了LayoutGroup和ContentSizeFitter组件(图文混排教程),发现带有ContentSizeFitter的Text通过代码修改文本内容后UI布局并没有自动刷新。解决方案通过ForceRebuildLayoutImmediate强制刷新UI布局。 //传入带有LayoutGroup组件对象的RectTransform UnityEngine.UI.LayoutRebuilder.ForceRebuildLayoutImmediate(ui.rectTrans
2022-03-29 09:52:48
4490
原创 Unity使用自带组件实现图文混排自适应
1.背景图片跟随文字长度变化新建UI结构。在Image上挂载组件ContentSizeFitter和HorizontalLayoutGroup。根据需求调整跟随宽还是高,调整对应参数即可。混排的对齐方向调整父节点(例子中是名为Image的游戏对象)的Pivot即可。2.图文混排自适应示意图新建UI结构。在Image上挂载组件ContentSizeFitter和HorizontalLayoutGroup。根据需求调整跟随宽还是高,调整对应参数即可。但是我们会发现Icon上的Imag
2022-02-21 18:17:49
4264
1
原创 Unity粒子特效UI层级问题
前言方案一,使用shader解决下面介绍下用unity自带组件处理粒子特效层级问题。可以先了解下相关知识。Unity中Depth、SortingLayer、Order in Layer和RenderQueue的讲解解决方法通过给UI添加Canvas组件然后调整Order In Layer实现层级区分,如果UI没添加Canvas的话默认和父级Canvas中的Order In Layer保持一致。Order In Layer越大就显示在越上层。粒子特效中也有Order In Layer选项,根据具
2022-02-21 17:40:26
10470
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人