自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(87)
  • 收藏
  • 关注

原创 游戏开发中常用的设计模式

本文介绍了游戏开发中常用的设计模式,如工厂模式用于创建对象,单例模式确保全局唯一,观察者模式实现对象间事件通知,状态模式管理对象状态转换,策略模式提供行为选择,组合模式构建复杂对象结构,命令模式分离操作与执行,装饰模式动态扩展功能。

2025-01-19 16:49:06 1393 4

原创 【Unity】打包发布到微信平台详细过程

需要注意的是,如果你是小游戏创建者,那么允许你用HTTP协议,如果你想让别人参与测试和开发,让别人可以在微信里测试小游戏,服务器必须支持HTTPS。但如果你的小游戏规模较大内存消耗较多,那么需要把这里调大,否则不会通过编译。游戏AppID:微信小游戏ID,这个ID需要在微信小游戏平台上通过创建账号、建立游戏来获得,拿到ID后填这里,如果这里为空就无法执行程序。是游戏本体,需要放到你的资源服务器上(如七牛云cdn、腾讯云cos、阿里云oss等云存储),这个文件夹在服务器上的目录就是上一步骤中。

2024-09-12 11:10:34 5875

原创 【Unity】热更新框架之xLua

xLua是由腾讯维护的一个开源项目,xLua为Unity、 .Net、 Mono等C#环境增加Lua脚本编程的能力,借助xLua,这些Lua代码可以方便的和C#相互调用。自2016年初推广以来,已经应用于十多款腾讯自研游戏,因其良好性能、易用性、扩展性而广受好评。现在,腾讯已经将xLua开源到GitHub。

2023-12-30 02:30:44 6307

原创 【Unity入门】脚本生命周期简介及MonoBehaviour常用方法

脚本作为我们游戏的“灵魂”,往往不单独存在,而是经常作为组件的形式挂载到特定的游戏物体身上,比如: 游戏主角,敌人,Boss,子弹,建筑物…脚本的生命周期,也就是所挂载到的游戏物体的生命周期脚本的生命周期,就是挂载到的游戏物体“从出生到死亡”,所经历的一些事件。这些生命周期事件,是一些特定的方法,且是由 Unity 引擎事先定义好的,在游戏的运行过程中,由引擎自动调用。这些生命周期事件,全部定义的 MonoBehaviour 这个类中。也就意味着只有继承自这个类的脚本,才有这些生命周期事件。

2023-11-30 15:30:59 1765 1

原创 C#释放内存空间的方法

释放 C# 对象内存的方法包括:显式释放 (obj = null)、使用 Using 语句、使用垃圾回收器(GC)、调用 GC.Collect()、调用 GC.WaitForPendingFinalizers()、使用 WeakReference 类。

2025-03-03 21:42:09 612

原创 C# 类库打包dll文件

在C#中,有多种方式可以对代码进行加密,以保护源代码不被轻易查看或修改,这里我们将C# cs类文件加密为dll文件的方式进行保护。

2025-03-02 02:48:22 590

原创 C# dll文件的反编译获取源码

上一篇文章介绍了将C# cs类文件加密为dll文件,在此给大家写一篇关于反编译dll文件的文章。

2025-03-02 02:27:42 338

原创 【Unity】性能优化:UI的合批 图集和优化

注意:DC指的是Draw Call。

2025-02-10 00:08:15 1472 1

原创 【‌Unity】Unity中物体的static属性作用

‌Unity中物体的static属性主要用于优化游戏性能和简化渲染过程。

2025-02-09 18:08:49 592

原创 常用的排序算法

简单说明:选择数组中的一个数作为基准数(一般是第一个数),并设两个变量low,high用于记录索引值,然后从尾端开始向前逐个比较基准数,直至某个数比基准数小,则将该数索引存入high,将该数放置于low索引上,然后从首端开始向后逐个比较基准数,直至某个数比基准数大,则将该数索引存入low,将该数放置于high索引上,如此循环,直至low=high,将此时的low索引存入中间变量,将基准数存入该索引上,此时原数组被分为了两边,左边小,右边大,然后分组进行上述操作,如此循环,直至正确排序。

2025-02-03 21:34:02 768

原创 【Unity】Sprite Editor 图集插件的安装与使用

将多张图片打包到一张纹理上的技术叫图集(Atlas)。原本图片一张张送到GPU渲染,如果打包到一张纹理上,就有机会将多个物件的渲染在一次DrawCall中同时进行。(不同材质球渲染管线在渲染时需要进行上下文切换,需要启动不同的DrawCall)图集的使用是一把双刃剑,散图和过分的合并图集,都会影响我们游戏运行的效率,最终导致性能降低、手机发热等情况,学会一定的准则,然后根据具体的应用场景去使用,才能发挥图集的最大功效。

2025-01-25 22:29:04 160

原创 【Unity】使用Canvas Group改变UI的透明度

在平时开发中,可以通过控制材质、Color改变UI透明度,除此之外还可以CanvasGroup组件来控制透明度。

2025-01-18 22:47:46 1029

原创 【Unity】Unity3D 屏幕适配详解

屏幕适配是游戏开发中一个非常重要的环节,它能够使游戏在不同的屏幕尺寸和分辨率下都能够正常显示,并且保持良好的用户体验。本文介绍了Unity3D屏幕适配的原理和实现方法,包括固定宽高比适配、缩放适配和等比例适配。通过设置摄像机的orthographicSize属性和Canvas的Scaler组件,我们可以实现不同的屏幕适配方式。

2024-08-27 11:22:08 2439

原创 【Unity】实现轮盘抽奖

"轮盘节点""轮盘旋转的圈数""轮盘旋转初速度""减速度""最低速度""轮盘剩余旋转多少时开始减速""轮盘中物体的数量""旋转停止的位置""精准角度"

2024-05-28 16:07:08 992

原创 【Unity】免费的高亮插件——QuickOutline

开发中,我们有很多地方会用到物体高亮这个功能,网上搜索后大部分是HighLightSystem来实现的高亮功能,其实还有很多的方法实现物体的高亮。Outline And Silhouette:整个模型轮廓高亮+被遮挡的部分整体高亮;用法也超级简单,只要给你想要高亮的模型挂上Outline这个脚本就可以。查看Demo你会发现有五种高亮模式。Outline Visible:模型未被遮挡的部分轮廓高亮;Outline Hidden:模型被遮挡的部分轮廓高亮;Outline All:整个模型的轮廓高亮;

2024-05-22 17:30:15 2257 3

原创 【CocosCreator】对象池概念及创建

当我们需要创建节点时,向对象池申请一个节点,如果对象池里有空闲的可用节点,就会把节点返回给用户,用户通过 node.addChild 将这个新节点加入到场景节点树中。当我们需要销毁节点时,调用对象池实例的 put(node) 方法,传入需要销毁的节点实例,对象池会自动完成把节点从场景节点树中移除的操作,然后返回给对象池。每次创建都需要写一个新的对象池和脚本对象,不方便使用,于是自己封装了一个对象池基类,如果有新的对象池直接继承这个基类使用即可。关于 Unity 对象池的使用在下一章。

2024-05-21 11:04:43 1115

原创 【Unity入门】协程(IEnumerator)的使用方法介绍

协程在Unity中是一个很重要的概念,我们知道,在使用Unity进行游戏开发时,一般(注意是一般)不考虑多线程,那么如何处理一些在主任务之外的需求呢,Unity给我们提供了协程这种方式。为啥在Unity中一般不考虑多线程?因为在Unity中,只能在主线程中获取物体的组件、方法、对象,如果脱离这些,Unity的很多功能无法实现,那么多线程的存在与否意义就不大了。线程与协程有什么区别?对于协程而言,同一时间只能执行一个协程,而线程则是并发的,可以同时有多个线程在运行。

2024-05-13 16:59:08 5057 1

原创 【Cocos入门】保存数据到本地的几种方式

选择哪种方式取决于你的具体需求,例如数据量大小、是否需要持久化、数据类型等。通常,对于简单的数据,使用cc.sys.localStorage就足够了;对于大型或复杂的数据,推荐使用文件存储。这是一个基于浏览器的LocalStorage API的简单封装,适用于小型数据的本地持久化存储。你可以将数据转换为字符串,然后使用cc.fs模块的API将其保存到文件中。这适用于更复杂的数据结构,并且会进行序列化和反序列化。cocos保存数据到本地。

2024-05-09 11:36:54 1372

原创 【Unity】虚拟摇杆控制的实现

手机游戏,经常会用到摇杆来控制角色,本文记录了如何在unity中用比较简单的方法制作摇杆,并且实现摇杆控制角色左右移动。

2024-04-26 15:42:28 650

原创 【Unity入门】详解Unity中的射线与射线检测

碰撞检测可以帮助我们实现诸如抵达某个地点自动触发剧情、判断子弹是否击中玩家等功能,但我如果想要实现如当鼠标悬浮某个人物上,自动弹出该人物信息,要如何判断呢?这时使用碰撞检测,从摄像机生成一个透明碰撞体朝着人物移动,等碰撞到了人物再弹出该人物信息?会不会太繁琐了。或许你又会想,若我直接生成一个足够长的透明碰撞体呢,是不是在创建的那一刻就可以触发该人物的弹出信息逻辑?没错这样的确可以,而这就是射线!不过是把无限长的透明碰撞体变为了无限长的一条线,仅此而已。

2024-03-17 02:27:56 7316

原创 [Cocos入门]缓动系统

相对于 easing,自定义 progress 函数可以更自由的控制缓动的过程。// 对所有属性自定义 progress})// 对单个属性自定义 progressscale: 2,// 注意,传入的属性为 cc.Vec3,所以需要使用 Vec3.lerp 进行插值计算})

2024-02-21 17:37:09 766

原创 【Cocos入门】物理系统(物理碰撞)

物理引擎默认是关闭状态以节省资源开销。但有一个区别,物理引擎的开启必须放在函数内运行,否则不生效。物理碰撞组件也同样具有碰撞回调函数。但如果要使用回调函数,则必须开启刚体的或者 在代码中写。执行顺序:onBeginContact > onPreSolve > onPostSolve > onEndContact上述回调函数的参数解释如下:contact: cc.PhysicsContact 碰撞信息self: cc.PhysicsCollider 自己。

2024-02-15 22:54:36 1129

原创 【Cocos入门】物理检测

CoCos中,物理检测也是物理系统的一部分,它不是用于检测物体的物理特性的,而是用来查询物体的(比如某个地方是否存在物理碰撞体)。其又分成:点检测、矩形检测和射线检测。点测试将测试是否有碰撞体会包含一个世界坐标系下的点,如果测试成功,则返回一个包含这个点的碰撞体。矩形测试将测试指定的一个世界坐标系下的矩形,如果一个碰撞体的包围盒与这个矩形有重叠部分,则这个碰撞体会被添加到返回列表中。射线测试用来检测给定的线段穿过那些碰撞体,我们还可以获取到碰撞体在线段穿过碰撞体的那个点的法线向量和其他一些有用的信息。

2024-02-15 22:51:42 1005

原创 【Cocos入门】物理系统

开启物理引擎后,游戏运行,会发现添加了刚体的节点会受到重力影响向下自由落体。物理引擎默认是关闭状态以节省资源开销。但有一个区别,物理引擎的开启必须放在。函数内运行,否则不生效。

2024-02-12 19:55:53 751

原创 【Cocos入门】场景切换(loadScene、preloadScene)

【代码】【Cocos入门】场景切换(loadScene、preloadScene)

2024-02-08 20:53:07 1533

原创 【Cocos入门】AudioEngine函数的使用

cc.audioEngine提供了不同的音效播放方法这些不同的播放实际上是Cocos帮我们区分了音频文件的类型。直接拿文档给的代码方法。

2024-02-02 00:37:58 877

原创 【Cocos入门】Cocos resources 加载资源

通常我们会把项目中需要动态加载的资源放在 resources 目录下,配合 resources.load 等接口动态加载。你只要传入相对 resources 的路径即可,并且路径的结尾处 不能 包含文件扩展名。所有需要通过脚本动态加载的资源,都必须放置在 resources 文件夹或它的子文件夹下。resources 文件夹需要在 assets 根目录 下手动创建。如下所示:resources 文件夹中的资源,可以引用文件夹外部的其它资源,同样也可以被外部场景或资源所引用。

2024-02-02 00:02:42 2000

原创 【Cocos入门】Cocos中的定时器 (setTimeOut 、setInterval、Schedule以及scheduleOnce )

延迟3秒后,输出abc,此后每隔1秒输出abc,重复5次。所以最终会输出5+1次abc。删除schedule(若要删除,则不能再使用匿名函数了,得能访问到要删除的函数)相当于一个全局的计时器吧,在cc.director上。1秒后输出abc,重复执行,每秒都会输出一个abc。每个继承cc.Component的都自带了这个计时器。以下schedule被删除后,并不会执行。删除计时器,3秒后不会输出abc。删除计时器,不会再输出abc。

2024-01-31 20:11:45 1721

原创 【Cocos入门】脚本生命周期简介及常用方法

脚本作为我们游戏的“灵魂”,往往不单独存在,而是经常作为组件的形式挂载到特定的游戏物体身上,比如: 游戏主角,敌人,Boss,子弹,建筑物…脚本的生命周期,也就是所挂载到的游戏物体的生命周期脚本的生命周期,就是挂载到的游戏物体“从出生到死亡”,所经历的一些事件。这些生命周期事件,是一些特定的方法,且是由 Cocos 引擎事先定义好的,在游戏的运行过程中,由引擎自动调用。这些生命周期事件,全部定义的 cc.Component 这个类中。也就意味着只有继承自这个类的脚本,才有这些生命周期事件。

2024-01-24 23:47:19 1019

原创 怎么在unity3D工程中导入Newtonsoft.Json

在搜索框中输入 “Newtonsoft Json” 进行搜索。(注意要选择Unity Registry)转到菜单栏的 “Window”(窗口)选项,然后选择 “Package Manager”(包管理器)在搜索结果中,会看到 “Newtonsoft Json” 或类似名称的项目。等待 Unity 下载并安装 Newtonsoft.Json 包。单击搜索结果下方的 “Install”(安装)按钮。打开 Unity 编辑器。

2024-01-11 00:00:20 1523

原创 【Unity入门】MenuItem 和 ContextMenu 的使用方法

但是这里有个问题就是,我们并不能够像 GameObject/XXX 这样,把选项放在 UI 的外面,这样做的话,我们只会在顶部栏的 GameObject 目录下发现那个XXX的选项,在 Hierarchy 什么也不会有,这点需要大家注意。这段的意思就是,如果你没有选中任何游戏对象,或者你选中的不是GameObject类型的对象时,MenuItem/Selected GameObject选项会是被禁用的(灰色)状态,只有选的是指定类型的选项时,才是正常的可点击状态。

2024-01-01 03:28:52 4002

原创 【Unity入门】RequireComponent的使用

RequireComponent 属性自动将所需的组件添加为依赖项

2023-12-28 18:18:47 2013

原创 【Unity入门】UGUI之Slider(滑动条)

Slider主要有3部分,一个是最底层的Background,然后是Fill(进度),然后就是Handle(圆点)

2023-12-28 17:20:45 2917

原创 【Unity入门】PlayerPrefs简介及使用

PlayerPrefs 是Unity内置的一个静态类,可以用于存储一些简单的数据类型:int ,string ,float

2023-12-26 14:30:49 1280

原创 【Unity入门】NGUI和UGUI比较

NGUI需要使用工具手动拼接图片成图集。UGUI开发期间可以直接使用图片作为元素,打包时会自动拼接成图集。图集的alpha拆分功能,NGUI可以通过增加工具类和shader来做,UGUI有自带的alpha拆分功能方便许多。组件支持功能比较。

2023-12-24 15:13:18 4075 1

原创 【Unity入门】物体5种移动方法

物体5种移动方法总结

2023-12-17 14:45:29 5737 1

原创 【Unity入门】声音组件AudioSource简介 及实现声音的近大远小

(3)Mute(是否静音):主要是针对游戏中的音效,优势在于不会卸载声音数据,可以做到及时播放,音效一般比较多、占用内存小,使用静音可以让画面快速响应,且可以立刻恢复当前音效。(11)Pitch(音调):播放音频时速度的变化量 ,默认值1,表示正常的播放速度。(13)Spatial Blend(空间混合):指定音源是2D音源(0)、3D音源(1)或者是二者插值的复合音源。(9)Priority(播放优先级):决定音源在场景中存在的所有音源中的播放优先级。(10)Volume(音量):调节音量的大小。

2023-12-02 23:09:33 5013

原创 【Unity入门】LayerMask小结

LayerMask常用的几种方法

2023-11-27 03:20:06 1636

原创 【Unity入门】Input.GetAxis(““)控制物体移动、旋转

Input.GetAxis("") 是 Unity 引擎中的一个方法,用于获取游戏玩家在 键盘 或 游戏手柄 上输入的某个轴(Axis)的值。这里的 "" 是一个字符串参数,表示要获取的轴的名称

2023-11-25 18:18:01 3272 1

原创 【Unity入门】碰撞检测

在unity3d中,能检测碰撞发生的方式有两种,一种是利用碰撞器,另一种则是利用触发器。这两种方式的应用非常广泛。

2023-11-24 16:53:49 2979

Unity C# 蛇蛇大作战

此项目模拟抖音蛇蛇大作战,仅供学习参考!

2025-02-25

Unity动画插件Spine4.2-2024-09-12

我们在Unity研发项目中,美术同学可能会使用Spine来设计制作一些2D骨骼动画,而Unity引擎本身不能直接播放Spine动画,这时需要我们额外的导入Spine动画相关的插件库才能使用

2024-07-04

开源网络资源管理系统-NetBox2

NetBox 是一个使用脚本语言进行应用软件开发与发布的开发环境和运行平台,使用 NetBox,可以完全使用脚本语言(比如 VBScript,Javascript) 创建出稳定高效的应用软件,并且可以平滑移植到从 Windows 98 到 Windows .NET Server 的全部操作系统上。NetBox 提供完全与操作系统无关的高性能的 HttpServer 对象,且完整支持 asp 服务器脚本技术,可以方便地将成熟的 asp 应用通过 NetBox 部署到各种操作环境,由于不再局限于操作系统的限制,甚至可以在 Windows XP 上达到超出 Windows 2000 Advance Server 的性能支持。

2024-01-01

erlang-21.3.1-1.el7.x86-64.rpm

erlang-21.3.1-1.el7.x86_64.rpm

2023-11-16

RedisDesktopManager

Redis管理工具:RedisDesktopManager

2022-11-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除