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

Sarf Lab

程序控制结构
发表于2026-06-27|编程语言
4.1顺序控制 程序从上到下逐行执行,中间没有任何判断和跳转(默认的控制顺序) 比如:Java 定义变量时采用合法的前向引用。 12graph LRA(A语句)-->B(B语句)-->C(C语句)-->D(D语句)-->E(...) 语句:Java 中最小的执行单位。语句分为 单语句 和 复合语句。 单语句:通常意义的一条语句。语句间以分号 ; 分隔。 复合语句:一对大括号括起来的语句组。也称为 “块” 12345{ 语句1; 语句2; ...} 块中可以有多条语句。块后没有分号 ; 4.2 分支控制 if-else 让程序有选择的执行。主要分为:单分支控制、双分支控制 4.2.1 单分支控制123if (条件表达式) { 语句;} 特别地,把代码块(复合语句)作为语句的场合也能这样写: 123if (条件表达式) { 执行代码块;} 当条件表达式为 ture,就会执行 {执行代码块;};如果为 false 则不执行。特别地:如果 ...
数组
发表于2026-06-27|编程语言
5 数组、排序和查找 数组:可以存放多个同一类型的数据。数组也是一种数据,是引用类型。 即:数组就是一组数据。 5.1 一维数组 数组可以是多个相同类型数据的组合,实现对这些数据的统一管理。 数组中的元素可以是任何数据类型。包括基本类型和引用类型。 数组的下标从 0 开始。且必须在指定范围内使用,否则报错。 数组属于 引用类型,数组型数据是 对象(Object) 数组的构造方法: 使用数组的步骤:1.声明数组并开辟空间 2.给数组各个元素赋值 3.使用数组 构造方式1:动态初始化 123int[] name = new int[5]; // 创建了数组 name,存放5个intint ints2[] = new int[1]; // 这种写法也行ints[2] = 15; // 访问数组第3个数 构造方式2:动态初始化 123char[] arry; // 先声明数组 name,此时数组是 nullarry = new char[2]; // 分配内存空间,可以存放数据了chars[1] = '\t'; 构...
变量
发表于2026-06-27|编程语言
2.1 变量​ 变量:变量相当于内存中一个数据存储空间的表示,你可以把变量看做是一个房间的门牌号,通过门牌号我们可以找到房间,而通过变量名可以访问到变量(值)。 变量:变量是程序的基本组成单位 变量的三个基本要素:类型 + 名称 + 值 示例:int a = 1 类型 int 名称 a 值 1 如何声明变量: 1234int a;//声明变量a,给变量a一块空间a = 100;int b = 100;//变量的赋值,将100赋值给bint c = 5, d; 2.2 变量使用注意事项 变量表示内存中的一个存储区域。不同变量,不同类型,占用的空间大小不同。如 int 有 4 byte,而 double 有 8 byte。 该区域有自己的名称 变量名 和类型 数据类型 变量必须先声明,后使用。 123int a;a=10;System.out.println(a); 变量在同一作用域内不能重名。 该区域的数据值可以在同一类型范围内变化。 变量的三个基本要素:类型 + 名称 + 值 2.3 程序中 +号的使用 当左右两边都是数值型,做加法运算 当左右两边任意一方...
JAVA概述
发表于2026-06-27|编程语言
1.1 Java 历史 目前 Java 版权属于甲骨文公司。 长期支持的版本只有 Java8 与 Java11。这两个版本也是最多使用的版本。 Java SE:标准版 Java EE:企业版(重要) Java ME:小型版(少) 1.2 Java 重要特点 Java 语言是面向对象的(oop) 简单来说,面向对象是一种程序设计技术。其重点放在数据(对象)和对象的接口上。 ——何为面向对象?详见 [[ 6 面向对象编程 ]](https://i-melody.github.io/2021/11/29/Java/入门阶段/6 面向对象编程(基础)/) Java 语言是健壮的。其强类型机制、异常处理、垃圾自动收集是健壮性的保证。 Java 强调早期问题检测、后期动态检测,及消除易出错的情况。其编译器能检测很多其他语言仅在运行时才会发现的问题。 ——异常见 [[ 11 异常 ]](https://i-melody.github.io/2021/12/18/Java/入门阶段/11 异常/) Java 语言是跨平台性的:一个编译好的 .class 文件可以在...
Games101
发表于2026-06-27|图形与引擎
Lecture2 线性代数简单总结 向量的点乘:点乘结果反映两个向量的方向相似程度 Lecture 02 Review of Linear Algebra P2 - 26:00 可以判断向量前与后的信息 点乘>0 同方向 点乘<0 反方向 向量的叉乘 Lecture 02 Review of Linear Algebra P2 - 30:31 输入两个向量,输出一个同时垂直与这两个向量的新向量 如何判断新向量的方向? 右手螺旋定则 如a×b=c 四指从a的方向向b的方向握紧,大拇指指向的就是c的方向 如何判断两个向量的左右关系? Lecture 02 Review of Linear Algebra P2 - 38:10 a×b得到结果是和z轴同向,是正的,说明b在a的左侧 如何判断一个点是否落在三角形内部?(做光栅化,给三角形内部的像素着色需要用到) Lecture 02 Review of Linear Algebra P2 - 39:29 AB×AP > 0 说明P在AB左侧 BC×BP > 0 说明P在BC左侧 CA×CP ...
麦田物语
发表于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...
1…789…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