avatar
文章
193
标签
39
分类
23
主页
文章
笔记
时间轴
项目
研发手记
更多
  • 搜索
  • 学习路线
  • 简历
  • 工具
  • 音乐
  • 视频
  • 感悟
  • 站点档案
  • 友链
  • GitHub
  • B站
岁迹
主页
文章
笔记
时间轴
项目
研发手记
更多
  • 搜索
  • 学习路线
  • 简历
  • 工具
  • 音乐
  • 视频
  • 感悟
  • 站点档案
  • 友链
  • GitHub
  • B站

岁迹

麦田物语
发表于2026-06-27|图形与引擎
场景切换创建TransitionManager控制人物的场景切换 在游戏中,我们存在多个场景,我们需要进入不同的场景,以便游戏的游玩性。对于场景的管理,我们使用事件来进行管理,对于每一个场景,我们都设置一个进入的以及出去的碰撞体,每当碰撞体的碰撞器检查到玩家后,开始进行场景的切换,将玩家的位置传送到指定的场景中。在切换场景的时候,我们需要对当前场景的物体也进行管理,因为当前的场景需要被卸载,新场景的加载需要时间,可能会在新场景加载进行访问,就可能找不到相应的物体,进而报空。 例如,当新场景加载时,原有场景被卸载,场景中的相机可能无法访问到新场景的边界信息,因为新场景还未被加载完成,所有会报空,所有我们需要在新场景加载完成后,重新获取场景的边界,这个时候就需要事件处理 具体实现场景切换的逻辑:在Hierarchy窗口中创建一个空物体,让其携带碰撞体的组件,将其的位置移动到需要进行场景切换的位置,同时挂载Teleport脚本。每当检测到玩家的碰撞器,进行场景切换 Teleport 12345678910111213141516namespace MFarm.Transition...
银河恶魔城
发表于2026-06-27|图形与引擎
玩家状态机采用了状态机模式,将玩家的不同状态(如闲置和移动)封装到不同的类中,通过状态机来管理状态的切换。 1. Player.cs内容及作用 这是玩家角色的核心脚本,负责管理玩家的基本属性、状态机以及一些基本的行为。 属性: moveSpeed:玩家的移动速度。 wallCheck、wallCheckDistance、groundCheck、groundCheckDistance、whatIsGround:用于检测碰撞,如墙壁和地面。 facingRight、facingDir:控制玩家的朝向。 anim、rb:分别是玩家的动画控制器和刚体组件。 stateMachine、IdleState、MoveState、jumpState、airState:用于管理玩家的状态。 方法: Awake():初始化状态机和各种状态。 Start():获取动画控制器和刚体组件,并将玩家初始状态设置为 IdleState。 Update():每帧更新当前状态。 SetVelocity():设置玩家的速度,并根据速度控制玩家的朝向。 IsGroundDetected():检测玩家是否在地面上。...
移动端游戏发布
发表于2026-06-27|图形与引擎
Goggle Play游戏发布Goggle Play Console端 账号与材料准备 注册开发者账号:访问 Google Play Console,使用你的谷歌账号登录并缴纳一次性注册费。务必准确填写开发者名称等信息,因为这将在应用商店中公开显示。 准备应用材料:除了打包好的应用(APK 或 AAB 文件),你还需要准备:应用图标、截图、宣传图、描述文字、关键词、隐私政策链接等。所有图片素材需符合平台要求的尺寸和格式。 应用创建与配置 在 Play Console 中创建新应用,填写名称、默认语言等基本信息。 需要填写一份内容分级问卷,系统会根据答案自动生成内容分级。 必须提供一个可公开访问的隐私政策链接,详细说明数据收集和使用情况。 测试与发布 充分利用测试轨道:在上线前,强烈建议使用 Google Play 的测试功能。你可以创建内部测试、封闭式测试或开放式测试,将应用包分发给指定的测试人员,收集反馈并修复问题,这能有效避免上线后的差评。 发布审核:完成所有配置后,提交应用审核。审核通过后,可以选择手动发布或定时发布 Unity端项目设置Unity 项目关键设...
热更新
发表于2026-06-27|图形与引擎
AssetBundle和Resources资源加载的区别 对比维度 Resources AssetBundle (AB 包) 资源打包方式 自动打包,放在Assets/Resources目录下即被包含 手动打包,需通过脚本或编辑器指定资源打包 是否包含在主包 是,所有资源打包进游戏安装包 否,独立于主安装包,需单独分发 动态更新支持 不支持,修改需重新发布整个安装包 支持,可通过网络更新单个 AB 包 加载方式 Resources.Load(资源名称),无需路径细节 先加载 AB 包,再通过bundle.LoadAsset(资源名) 卸载控制 只能通过Resources.UnloadUnusedAssets()批量卸载 支持AssetBundle.Unload()单独卸载某个包 安装包体积影响 增大初始安装包体积 不影响主包体积,资源可按需下载 内存效率 整体优化,可能占用更多内存 按需加载,内存占用更可控 分平台支持 不支持分平台单独打包 支持为不同平台生成优化后的 AB 包 适用场景 小型项目、静态资源、原型开发 中大型项目、需更新资...
框架模块
发表于2026-06-27|图形与引擎
单例模式单例模式(Singleton Pattern)是一种创建型设计模式,它确保一个类只有一个实例,并提供一个全局访问点。这种模式常用于需要全局访问点的对象,如配置管理器、游戏管理器等。 唯一性:确保一个类只有一个实例存在 全局访问:提供全局访问点 延迟初始化:通常采用懒加载方式创建实例 unity中的泛型单例,并且继承了MonoBehaviour,确保能够挂载到场景中的物体上,同时能够使用自带的生命周期函数,以及类型OntriggerEnter之类的物理事件 123456789101112131415161718192021222324252627282930313233343536373839public class Singleton<T> : MonoBehaviour where T : Singleton<T>{ private static T instance; public static T Instance { get { r...
Unity组件
发表于2026-06-27|图形与引擎
Hinge Joint组件铰链组件(Hinge Joint)是一种关节组件,主要用于模拟物体间像门、秋千这类具有铰链连接的运动。铰链默认施加位置在物体的正中心,即(0,0,0) 作用 模拟铰链运动:让游戏对象能够绕指定轴做类似门开合、秋千摆动的旋转运动。 施加物理效果:配合物理引擎,让物体的运动符合物理规律,比如物体在重力作用下的自然摆动。 主要属性 Connected Body:指定与当前物体通过铰链连接的另一个刚体。若不指定,默认连接到世界坐标系。 Anchor:铰链在当前物体局部坐标系中的位置。 Axis:物体绕着旋转的轴,在当前物体局部坐标系中定义。 Use Limits:启用角度限制,开启后可设置物体旋转的最小和最大角度。 Min 和 Max:当 Use Limits 启用时,这两个属性分别定义物体旋转的最小和最大角度。 Use Motor:启用电机驱动,开启后物体可在电机的作用下主动旋转。 Target Velocity:电机驱动时的目标旋转速度。 Force:电机施加的力大小。 使用步骤 创建游戏对象:创建两个或多个带有刚体组件(Rigidbody)的游戏对象,...
Unity性能优化
发表于2026-06-27|图形与引擎
性能工具性能问题本质是什么? CPU忙不过来:脚本逻辑、物理、动画、AI、UI计算太多 GPU画不过来:画面太复杂、透明太多、Shader太重、阴影后处理太狠 内存/GC:突然卡一下(尤其是移动端) 加载/IO:进场景、切关卡、打开界面时卡 Profile就是来说明是那个部分在拖后腿 ProfilerUnity 中有两种 Profiler:普通 Profiler 和 Profiler(Standalone Process)。两者的界面和功能基本一致,区别在于普通 Profiler 运行在 Unity Editor 进程内,会对性能产生一定额外开销,可能影响分析结果;而 Standalone Process 以独立进程运行,对主进程干扰更小,数据更接近真实表现。因此,小型项目或日常调试可使用普通 Profiler,而在大型项目或进行精确性能优化时,更推荐使用 Standalone Profiler。 上面:时间轴(Timeline) 像心电图,看到尖峰就说明那帧很慢(卡了)。 中间:模块图(CPU/GPU/Memory等) 选哪个模块...
Unity主程之路
发表于2026-06-27|图形与引擎
Unity性能优化三个阶段:预言阶段,开发阶段,测试阶段: 优化阶段 核心目标 关键优化方向 预言阶段(规划与设计) 确立性能标准,规避设计层面的性能隐患 制定性能预算、规划场景分割、确定资源规范 开发阶段(实施与集成) 高效实现并集成资源,确保运行流畅 模型与资源优化、渲染优化、内存管理 测试阶段(分析与调优) 定位并修复具体性能瓶颈 使用Profiler等工具分析,针对性优化 预言阶段:规划与设计这个阶段的核心是 “前置规划” ,在代码编写和资源制作之前就建立起性能意识,从源头上避免许多问题。 制定性能预算(Performance Budget):为关键指标设定明确上限,例如Draw Calls数量、每帧内存分配(GC Alloc)、纹理内存占用、目标帧率等。这为团队提供了清晰的量化标准。 场景与关卡设计规划: 场景分块(Scene Splitting):对于大型开放世界,提前将大地图划分为多个区块,并设计流式加载(Streaming) 方案,实现玩家在场景中的无缝漫游,避免一次性加载所有资源。 视线阻挡设计:在关卡中合理设计墙壁、山体等障碍物,自然地...
UnityShader
发表于2026-06-27|图形与引擎
渲染管线为后续的渲染操作提供数据,包括顶点,材质,法线,纹理等。应用阶段由 CPU 负责,剔除不可见物体、整理渲染资源、优化合批、准备 Shader 参数、生成并提交 DrawCall,为 GPU 渲染做好全部前置准备。 渲染管线 指的是将三维场景中的网格、纹理、灯光等数据,最终转换成二维屏幕图像的一系列步骤。你可以把它想象成一个流水线,原料(模型数据)从一端进入,经过一系列加工(变换、光照、着色等),最终产品(像素图像)从另一端出来。(将数据分阶段变成屏幕图像的过程 应用阶段 -> 几何阶段 -> 光栅化阶段) Unity 主要支持两种渲染管线: 1.内置渲染管线:Unity 传统的、固定的渲染管线。开发者对其流程的控制相对有限,主要通过设置影响一些开关和参数。 2.可编程渲染管线:Unity 现代的高端解决方案,允许开发者通过编写 C# 和 Shader 代码来完全控制和定制渲染的每一个阶段。主要包括: •Universal Render Pipeline:通用渲染管线,适用于所有平台(移动、PC、主机),是新项目的推荐选择。 •High Definition ...
UnityGameFramework
发表于2026-06-27|图形与引擎
GF与UGFGameFramework(GF)与UnityGameFramework(UGF)是UnityGameFramework框架的两个核心组成部分,它们的关系和区别主要体现在设计目标、依赖关系和功能分工上。 🔧 1. 核心定位与设计目标 GameFramework (GF):是框架的核心逻辑层。它包含了对象池、事件系统、流程控制、资源管理等19个核心模块的具体实现 。其关键设计目标是与Unity引擎解耦,这意味着GF本身是一个纯C#类库,不引用任何Unity的API,因此理论上可以移植到其他C#环境中 UnityGameFramework (UGF):是GF在Unity引擎上的适配层或“外壳”。它负责将GF的核心功能与Unity引擎的具体实现(如GameObject、AssetBundle、编辑器扩展)连接起来。UGF通过继承MonoBehaviour的组件(Component)来接收Unity的生命周期事件,并作为桥梁,让游戏逻辑层能够通过UGF调用GF的功能 简单来说,GF是独立于引擎的“大脑”和“规则”,而UGF是专为Unity定制的“手脚”和“接口” 📦...
1…151617…20
avatar
岁迹
记录游戏客户端开发、Unity 项目、个人 App 岁迹的开发过程。
文章
193
标签
39
分类
23
GitHub
公告
记录游戏客户端开发、项目复盘和个人成长。
最新文章
KiHan ActFramework详解2026-09-19
KiHan Manager台账速查2026-09-19
KiHan Plugin框架详解2026-09-19
KiHan UI框架详解2026-09-19
KiHan 框架阅读索引2026-09-19
分类
  • Unity/游戏客户端15
  • 其他笔记2
  • 博客搭建1
  • 图形与引擎25
  • 数据库与持久化9
  • 游戏拆解2
  • 研发手记73
    • Model6
标签
系统拆解 Unity常见框架学习 综合笔记 新手奖励 黑神话悟空 游戏设计 Notes image Java Model Algorithm Ugit 快速上手 数据持久化 游戏算法 笔记 火影海外 Unity项目以及安卓构建 Mysql UE 新建文件夹 设计模式 拍脸系统 研发手记 markdown 活动开发 面试题模拟 策划 UE-C++ C# GameEngineStudy Hexo Butterfly Games101 C++ 综合记录 Python Unity网络编程基础 无畏契约
归档
  • 九月 2026 32
  • 八月 2026 43
  • 六月 2026 118
网站信息
文章数目 :
193
本站访客数 :
本站总浏览量 :
最后更新时间 :
© 2025 - 2026 By 岁迹框架 Hexo 7.3.0|主题 Butterfly 5.5.5
鄂ICP备2026033623号