avatar
文章
118
标签
22
分类
9
搜索
主页
内容库
  • 文章导航
  • 笔记分类
  • 时间轴
  • 人生感悟
创作台
  • 项目
  • 工具
  • 音乐
  • 视频
网站相关
  • 关于
  • 友链
  • GitHub
  • B站
Sarf Lab
搜索
主页
内容库
  • 文章导航
  • 笔记分类
  • 时间轴
  • 人生感悟
创作台
  • 项目
  • 工具
  • 音乐
  • 视频
网站相关
  • 关于
  • 友链
  • GitHub
  • B站

Sarf Lab

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定制的“手脚”和“接口” 📦...
Unity
发表于2026-06-27|图形与引擎
生命周期1)游戏对象生命周期 游戏对象的生命周期主要有这几个状态:创建、激活、禁用和销毁。游戏对象的状态直接影响挂载在其上的脚本的生命周期和函数调用。 ①创建:游戏对象被创建时,它的所有组件(包括脚本)都会被初始化,但这时脚本的生命周期方法尚未被调用。 ②激活:当游戏对象被激活时,脚本的生命周期方法开始生效。如果游戏对象在场景中被激活或设置为启用状态,那么挂载在该对象上的所有脚本附加的脚本会按顺序调用OnEnable()、Start()等生命周期函数。 ③禁用:当游戏对象被禁用时,游戏对象及所有挂载的脚本会停止调用生命周期函数,直到它再次被启用。 ④销毁:当游戏对象被销毁时,它和所有附加的组件(包括脚本)都会被清理,相关的生命周期方法会被调用来处理清理工作。 2)脚本生命周期 只有继承了MonoBehavior的脚本才可挂载到游戏对象上,这样的脚本才有生命周期。脚本的生命周期与游戏对象的状态密切相关,但脚本的生命周期函数会按照固定顺序执行,即该脚本从创建到销毁的各个阶段,这就是我们说的Unity的生命周期。 Unity生命周期的主要阶段及各个阶段常用的生命...
SurviveShootGame
发表于2026-06-27|图形与引擎
角色移动通过RigidBody组件,Capsule Collider组件角色添加碰撞器以刚体组件,通过Player Movement脚本挂载到人物的模型上移动 1234567891011121314151617181920212223242526using UnityEngine;public class PlayerMovement : MonoBehaviour{ public float MoveSpeed = 6f; private Rigidbody rb; //private CharacterController player; private void Awake() { rb = GetComponent<Rigidbody>(); //player = GetComponent<CharacterController>(); } private void FixedUpdate() { float x = Inp...
PuzzleGame
发表于2026-06-27|图形与引擎
BUG :生成数字的颜色不一致,无法正确区分答案的颜色和题目数字的颜色 SudoKu(数独)🎯 核心任务 数独游戏基础逻辑实现 1.数独游戏的算法实现,回溯法实现数独,不继承MonoBehavior,使用静态方法创建。因为数独的逻辑判定是纯数据逻辑,与GameObject无关,不依赖于游戏对象。 核心思想:关于数独算法的实现,使用回溯法去实现,所有可能的候选解,并在发现当前选择无法导致最终解时进行回溯,撤销上一步的选择并尝试其他可能性。在数独求解中,该算法从第一个空白格子开始,依次尝试填入数字1到9,并通过递归处理后续的空格。如果某个数字的填入导致后续无法合法填充,算法会回溯到上一个空格,尝试其他数字,直到找到解或确定无解。 算法详解: 遍历数独数组,寻找值为0(表示空白)的单元格。对于找到的空白值,尝试找到从 1 - 9的每个值,在填入数字前,使用IsValid方法检查该数字在当 前行、当前列以及所在的3x3子网格中是否已经存在。如果存在重复,则尝试下一个数字。(遍历指定行,确保没有重复数字,遍历指定列,确保没有重复数字,计算当前单元格所在的3x3子网格的起始位置,然...
gitee团队协作
发表于2026-06-27|图形与引擎
Git团队协作标准化流程一套清晰的流程能让大家步调一致,下面的流程图展示了一次完整的功能开发与集成周期,其中也包含了冲突处理的关键节点。 以下是每个环节的操作要点和常用命令: ✨ 开始新功能:从主分支创建你的功能分支 始终从稳定的主分支(如 main或 master)创建新分支进行开发,这能有效隔离不同任务的工作内容。 123456# 切换到主分支并获取最新代码git checkout maingit pull origin main# 创建并切换到新功能分支git checkout -b feature/your-feature-name 💻 独立开发:在功能分支上提交更改 在你的分支上自由地开发、测试和提交。频繁提交是小步前进的好习惯。 1234# 添加修改到暂存区git add .# 提交更改并写清注释git commit -m "描述本次提交完成的具体工作" 🔄 同步更新:定期将主分支变更合并到你的分支 在开发过程中,定期将主分支的最新更新整合到你的分支,这是预防冲突最有效的方法之一。你有两种主要选择: 合并(Merge):更简单安全,会保...
DoTween
发表于2026-06-27|图形与引擎
Unity DoTween 详解一、概述DoTween(现称为 DG.Tweening)是一个功能强大、性能优异的Unity动画插件,它提供了比Unity原生动画系统更简洁、更灵活的API来创建各种补间动画。 二、安装方法1. 从Asset Store安装(推荐新手)- 在Unity Asset Store中搜索”DOTween (HOTween v2)” - 免费版功能完整,专业版(收费)提供额外功能 2. 通过Git URL安装(Package Manager)- 打开Package Manager → Add package from git URL - 输入:https://github.com/Demigiant/dotween.git?path=Demigiant/DOTween/Assets/DOTween 3. 安装后设置12345// 第一次使用前需初始化using DG.Tweening;void Start() { DOTween.Init();} 三、核心功能与语法1. 基本动画方法12345678910...
1…8910…12
avatar
Sarf
记录游戏客户端开发、Unity 项目、个人 App 岁迹 LifeAtlas 的开发过程。
文章
118
标签
22
分类
9
GitHub
公告
This is my Blog
最新文章
飞鱼科技2026-06-27
面试题2026-06-27
速诺科技面试2026-06-27
腾娱2026-06-27
游戏精酿GameAle笔试题2026-06-27
分类
  • Unity/游戏客户端15
  • 其他笔记2
  • 博客搭建1
  • 图形与引擎25
  • 数据库与持久化9
  • 算法与数据结构19
  • 编程语言18
  • 设计模式2
标签
新建文件夹 数据持久化 UE 游戏算法 笔记 综合笔记 Java GameEngineStudy Mysql Algorithm Python Unity网络编程基础 C# 设计模式 C++ Unity项目以及安卓构建 Games101 Butterfly markdown Unity常见框架学习 Hexo 面试题模拟
归档
  • 六月 2026 118
网站信息
文章数目 :
118
本站访客数 :
本站总浏览量 :
最后更新时间 :
© 2025 - 2026 By Sarf框架 Hexo 7.3.0|主题 Butterfly 5.5.5
鄂ICP备2026033623号-1