
Unity
文章平均质量分 87
本专栏为唐老狮就业实战课程笔记。
weixin_53163894
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
点到平面距离计算方法
本文介绍了Unity中计算点到平面距离的两种数学方法实现。点法式通过平面点和法向量计算距离,公式为|(P-P₀)·n|;一般式使用平面方程ax+by+cz+d=0,公式为|ax+by+cz+d|/√(a²+b²+c²)。代码提供了三种重载方法,包括点法式、一般式和三平面点定义平面的实现。扩展功能包含带符号距离计算、点投影和射线与平面交点检测。这些方法适用于三维开发中的碰撞检测、空间分析等场景,支持选择不同计算方式满足具体需求。原创 2025-07-07 17:37:10 · 360 阅读 · 0 评论 -
Unity XML3——XML序列化
数据对象/// 文件名// 1.得到存储路径// 2.存储文件// 3.序列化/// 从xml文件中读取内容/// 对象类型/// 文件名原创 2023-07-28 09:46:39 · 1404 阅读 · 0 评论 -
Unity XML2——C#读写XML
放在 Resouces 或者 StreamingAssets 文件夹下,详见。 放在 Application.persistentDataPath 路径下。原创 2023-07-28 09:23:36 · 847 阅读 · 0 评论 -
Unity XML1——XML基本语法
全称:可拓展标记语言(EXtensible Markup Language) XML 是国际通用的,它是被设计来用于传输和存储数据的一种文本特殊格式,文件后缀一般为 .xml 我们在游戏中可以把游戏数据按照 XML 的格式标准存储在 XML 文档中,再将 XML 文档存储在硬盘上或者传输给远端,达到数据持久化的目的。原创 2023-07-28 09:15:17 · 1298 阅读 · 0 评论 -
Unity-AssetBundle
AB 包是特定于平台的资源压缩包,类似于压缩文件。其中资源可包括:模型、贴图、预设体、音效、材质球等等。 相较于 Resources 文件夹下的资源文件,AB 包能够更好管理资源:Resources 文件夹:打包时资源固定,只读,无法修改。AB 包:存储位置可自定义,压缩方式可自定义,后期可动态更新。 用途:减小包体大小压缩资源减少初始包的大小热更新资源热更新脚本热更新第一步:获取资源服务器地址第二步:通过资源对比文件检测和更新AB包客户端。原创 2023-07-22 13:49:03 · 491 阅读 · 0 评论 -
Unity-数据持久化-JSON
File 存读字符串的方法 ReadAllText 和 WriteAllTextJsonUtlity 提供的序列化反序列化方法 ToJson 和 FromJson自定义类需要加上序列化特性 [System.Serializable]私有保护成员需要加上 [SerializeField]JsonUtlity 不支持字典JsonUtlity 不能直接将数据反序列化为数据集合Json 文档编码格式必须是 UTF-8。原创 2023-07-22 13:32:19 · 493 阅读 · 0 评论 -
Unity内文件夹详解
这些扩展可以添加新的菜单项、工具栏按钮、面板等等,这些脚本会在Unity编辑器中运行而不会出现在游戏中。Unity中的包是用于扩展Unity功能的可重用模块,它们可以包含脚本、预制件、材料等。注意:如果使用版本控制系统(如Git),应该忽略Temp和Logs文件夹,因为它们包含的文件是临时的,并且会在每次构建或运行时生成。Temp:此文件夹包含临时文件和数据,例如构建过程中的临时文件、导入的临时文件等。ProjectSettings:该文件夹包含Unity项目的设置,如输入管理器、标签、物理设置等。转载 2023-07-19 10:12:01 · 2015 阅读 · 0 评论 -
Unity-数据持久化-PlayerPrefs
数据持久化就是将内存中的数据模型转换为存储模型,以及将存储模型转换为内存中的数据模型的统称。简单来说:就是将游戏数据存储到硬盘,将硬盘中数据读取到游戏中,也就是传统意义上的存盘。是Unity提供的可以用于存储读取玩家数据的公共类。原创 2023-08-02 16:16:48 · 692 阅读 · 0 评论 -
Unity 延迟执行的5种方式
方法1适合需要同步显示时间的场合方法2适合简单的延迟场合方法3适合较为复杂的延迟场合方法4适合UI动画场合(配合其他功能一起使用)方法5可以自行尝试,不觉得能平替所有方法。原创 2023-06-20 18:35:27 · 9625 阅读 · 0 评论 -
Unity核心10——导航寻路系统
Unity 中的导航寻路系统是能够让我们在游戏世界当中,让角色能够从一个起点准确的到达另一个终点,并且能够自动避开两个点之间的障碍物选择最近最合理的路径进行前往中的导航寻路系统的本质,就是在 A 星寻路算法的基础上进行了拓展和优化导航网格(NavMesh)的生成——要想角色能够在场景中自动寻路产生行进路径,那么必须得先有场景地形数据,导航网格生成就是生成用于寻路的地形数据导航网格寻路组件(NavMesh Agent)——寻路组件就是帮助我们根据地形数据计算路径让角色动起来的关键。原创 2023-06-20 15:55:04 · 5598 阅读 · 0 评论 -
Unity核心9——3D动画
Has Exit Time:是否有退出时间,如果勾选,当切换动画时,动画一定是播放到下方的 Exit Time(百分比)的时间时才过渡到下一个动画。 我们是否可以这样做,比如开枪动画只影响上半身,下半身根据实际情况播放站立,跑动,蹲下动作,通过上下半身播放不同的动画就可以达到动画的组合播放。不同的是有一个上层的图标(Up Base Layer),通过连接该状态来转移到上层状态机的某个状态。主要用于直接从另一个层复制状态过来,在该层中进行修改,另一个层的设置信息都将保留,我们只需要替换状态对应的动画即可。原创 2023-06-20 15:53:08 · 7292 阅读 · 0 评论 -
Unity核心8——模型导入
支持很多模型格式。比如 .fbx /.dae /.3ds /.dxf /.obj 等等。 99%的模型都不是在 Unity 中制作的,都是美术人员在建模软件中制作,如 3DMax、Maya 等等。 当他们制作完模型后,虽然 Unity 支持很多模型格式但是官方建议是将模型在建模软件中导出为 FBX 格式后再使用 在 Project 窗口选中导入的模型,在 Inspector 窗口进行相关设置,4 个页签分别是Model 模型页签Rig 操纵(骨骼)页签动画页签Materials 材质。原创 2023-06-20 15:50:11 · 7763 阅读 · 0 评论 -
Unity核心7——2D动画
我们最常见的序列帧动画就是我们看的日本动画片,以固定时间间隔按序列切换图片,就是序列帧动画的本质 当固定时间间隔足够短时,我们肉眼就会认为图片是连续动态的,进而形成动画(会动的画面) 它的本质和游戏的。原创 2023-06-20 15:47:53 · 13311 阅读 · 0 评论 -
Unity核心6——Animation
通过 Window Animation Animation 打开 Animation 窗口 Animation窗口主要用于在 Unity 内部创建和修改动画,所有在场景中的对象都可以通过 Animation 窗口为其制作动画 原理: 制作动画时:记录在固定时间点对象挂载的脚本的变量变化 播放动画时:将制作动画时记录的数据在固定时间点进行改变,产生动画效果 动画时间轴: 每一个动画文件都有自己的一个生命周期,从动画开始到结束 我们可以在动画时间轴上编辑每一个动画生命周期中变化 动画中的原创 2023-06-20 14:53:59 · 6608 阅读 · 0 评论 -
Unity核心5——Tilemap
1.预设体笔刷——用于快捷刷出想要创建的精灵可以关联预制体,用于快速创建该预制体2.预设体随机笔刷——用于快捷随机刷出想要创建的精灵。原创 2023-06-19 15:58:35 · 12113 阅读 · 1 评论 -
Unity核心4——SpriteShape
(一)Open Shape:开放形状 在 Project 窗口中,右键创建 Sprite Shape Profile 参数界面如下Use Sprite Borders:是否使用精灵边框,用于九宫格拉伸,默认勾选即可Texture:用于填充实心部分的纹理使用的纹理的平铺模式必须是 Repeat 模式Offset:纹理偏移量Angle Ranges:角度范围Start:起始角度End:结束角度Order:Sprite 相交时的优先级,优先级高的显示在前面。原创 2023-06-19 15:55:25 · 2704 阅读 · 0 评论 -
Unity核心3——2D物理系统
Dynamic 动态刚体:受力的作用,要动要碰撞的对象Kinematic 运动学刚体:通过刚体 API 移动的对象,不受力的作用,但是想要进行碰撞检测Static 静态刚体:不动不受力作用的静态物体,但是想要进行碰撞检测。原创 2023-06-19 15:54:17 · 4561 阅读 · 0 评论 -
Unity核心2——Sprite
我们可以利用 Sprite Editor 的多边形工具创造出各种多边形,Unity 也为我们提供了现成的一些多边形,它的主要作用是 2D 游戏的替代资源。 打开 Sprite Editor,可看见如下界面。 当我们的图片资源是图集时,我们需要在设置时将模式设置为 Multiple,这时我们可以使用 Sprite Editor 自带的功能进行图集元素分割。 Sprite Mask 是精灵遮罩的意思,它的主要作用就是对精灵图片产生遮罩,制作一些特殊的功能,比如只显示图片的一部分让玩家看到。原创 2023-06-19 15:52:11 · 5900 阅读 · 0 评论 -
Unity核心1——图片导入与图片设置
Non-Power of 2:如果纹理尺寸非 2 的幂该如何处理None:纹理尺寸大小保持不变To nearest:将纹理缩放到最接近 2 的幂的大小(PVRTC 格式要求纹理必须为正方形)To larger:将纹理缩放到最大尺寸大小值的 2 的幂的大小To smaller:将纹理缩放到最小尺寸大小值的 2 的幂的大小Read / Write Enabled:启用可以使用 Unity 中提供的一些方法从纹理中获取到数据,会占用额外内存Streaming Mipmaps:启用则可以使用纹理串流。原创 2023-06-19 15:40:26 · 9865 阅读 · 0 评论 -
Unity UGUI6——UGUI进阶
虽然 UGUI 的 RectTransform 已经非常方便的可以帮助我们快速布局,但 UGUI 中还提供了很多可以帮助我们对 UI 控件进行自动布局的组件,他们可以帮助我们自动的设置 UI 控件的位置和大小等。 如果想做一些类似长按,双击,拖拽等功能是无法制作的,或者想让 Image 和 Text,RawImage 三大基础控件能够响应玩家输入也是无法制作的。 一般情况下布局元素的这些属性都是 0,但是特定的 UI 组件依附的对象布局属性会被改变,比如 Image 和 Text。原创 2023-06-18 17:32:49 · 2119 阅读 · 0 评论 -
Unity UGUI5——图集
字面理解 DrawCall,就是绘制呼叫的意思,表示 CPU(中央处理器)通知 GPU(图形处理器-显卡)就是 CPU (处理器)准备好渲染数据(顶点,纹理,法线,Shader 等等)后告知 GPU(图形处理器-显卡)开始渲染(将命令放入命令缓冲区)的命令 简单来说:一次 DrawCall 就是 CPU 准备好渲染数据通知 GPU 渲染的这个过程 如果游戏中 DrawCall 数量较高会影响 CPU 的效率,最直接的感受就是游戏会卡顿 以拷贝文件来进行类比。原创 2023-06-18 17:11:14 · 1982 阅读 · 0 评论 -
Unity UGUI4——组合控件
Interactable:是否接收输入若不勾选,则表示被禁用,对应显示为 DisableTransition:响应用户输入的过渡效果None:没有状态变化效果Color Tint:用颜色表示不同状态的变化。原创 2023-06-18 16:34:10 · 1485 阅读 · 0 评论 -
Unity UGUI3——三大基础控件
Source Image:图片来源图片类型必须是“精灵。原创 2023-06-18 16:24:23 · 1770 阅读 · 0 评论 -
Unity UGUI2——Canvas与EventSystem
Canvas 的意思是画布,它是中所有 UI 元素能够被显示的根本,它主要负责渲染自己的所有 UI 子对象 如果 UI 控件对象不是 Canvas 的子对象,那么控件将不能被渲染 我们可以通过修改 Canvas 组件上的参数修改渲染方式 场景中允许有多个 Canvas 对象,可以分别管理不同画布的渲染方式,分辨率适应方式等等参数 如果没有特殊需求,一般情况场景上一个 Canvas 即可 Canvas 有三种渲染模式::屏幕空间,覆盖模式,UI 始终在前。原创 2023-06-18 16:20:41 · 3759 阅读 · 0 评论 -
Unity UGUI1——基础组件概述
UGUI 是Unity引擎内自带的 UI 系统,官方称之为:Unity UI 是目前 Unity 商业游戏开发中使用最广泛的 UI 系统开发解决方案 它是基于 Unity 游戏对象的 UI 系统,只能用来做游戏 UI 功能 不能用于开发 Unity 编辑器中内置的用户界面(一)UGUI 发展史 Unity 最初版本 ~ Unity4.6 版本: Unity 官方只提供了 GUI 用于游戏 UI 的开发,所以更为高级和方便的 NGUI 是做 UI 的不二选择。原创 2023-06-15 21:57:33 · 1720 阅读 · 0 评论 -
Unity基础5——物理检测
射线检测就是来解决这些问题的,它可以在指定点发射一个指定方向的射线,判断该射线与哪些碰撞器相交,得到对应对象。 类似这种并没有实体物体,只想要检测在指定某一范围是否让敌方受到伤害时,便可以使用范围判断。 简而言之,在指定位置进行范围判断,我们可以得到处于指定范围内的对象,目的是对对象进行处理。 我们需要通过编号左移构建二进制数,这样每一个编号的层级都是对应位为 1 的 2 进制数。 我们通过位运算可以选择想要检测层级,使用一个 int 就可以表示所有想要检测的层级信息。 比如受伤、减血等等。原创 2023-06-15 21:55:59 · 2267 阅读 · 0 评论 -
Unity基础4——LineRenderer
在 Scene 窗口中选中多个相邻的点,再点击此按钮后会在中间插入新的点。Subdivide Selected:细分选中的点。此属性指,在一条线中绘制角时使用了多少额外的顶点。End Cap Vertices:终点顶点、圆角。Additional Settings:额外设置。Corner Vertices:角顶点、圆角。Show Wireframe:显示线框。Width:线段宽度曲线的调整。偏离值,其值越大,画线偏差越大。Positions:线段的点。Tolerance:宽容度。Material:材质球。原创 2023-06-15 15:11:32 · 2022 阅读 · 0 评论 -
Unity基础3——Resources资源动态加载
Resources 动态加载资源的方法,让拓展性更强。相对拖曳来说,它更加一劳永逸,更加方便。原创 2023-06-14 15:54:51 · 5692 阅读 · 1 评论 -
Unity基础2——MonoBehaviour的重要内容
Unity 支持多线程,只是新开线程无法访问主线程中 Unity 相关内容一般主要用于进行复杂逻辑运算或者网络消息接收等等注意:Unity 中的多线程一定记住关闭协同程序不是多线程,它是将线程中逻辑进行分时执行,避免卡顿继承 MonoBehavior 的类都可以使用协程开启协程方法、关闭协程方法yield return 返回的内容对于我们的意义协程只有当组件单独失活时不受影响,其它情况协程会停止。原创 2023-06-14 15:51:26 · 1686 阅读 · 0 评论 -
Unity基础1——3D数学
四元数是简单的超复数,由实数加上三个虚数单位组成 主要用于在三维空间中表示旋转 四元数原理包含大量数学相关知识,较为复杂,比如:复数、四维空间等等 因此此处我们只对其基本构成和基本公式进行讲解,如想深入了解数学原理请从数学层面去查找资料了解它。原创 2023-06-14 15:46:53 · 2832 阅读 · 0 评论 -
Unity入门9——其他
【代码】Unity入门9——其他。原创 2023-06-14 14:58:53 · 130 阅读 · 0 评论 -
Unity入门8——音效系统
Load In Background:后台加载,不阻塞主线程,适合大音效。Bypass Reverb Zones:快速开关所有混响区。Spatial Blend:音频受 3D 空间的影响程度。Reverb Zone Mix:到混响区的输出信号量。Spread:扩散角度设置为 3D 立体声还是多声道。Streaming:流形式存在于内存,使用时解码。Preload Audio Data:预加载音频。Audio Clip:声音剪辑文件(音频文件)与音频源的距离越远,听到的声音越小,呈线性关系。原创 2023-06-14 14:58:38 · 2959 阅读 · 0 评论 -
Unity入门7——物理系统之碰撞检测
设置为连续动态的刚体,将在测试与该刚体的碰撞时使用连续碰撞检测(物理性能消耗较大,物体运动缓慢时请设置为 Discrete)如果是一个异形物体,刚体在父对象上,如果你想通过子对象上挂脚本检测碰撞是不行的,必须挂载到这个刚体父对象上才行。 为物体添加 Constant Force,若物体之前没有 Rigid Body,则会为其自动添加。 刚体利用体积(碰撞器 Collider)进行碰撞计算,模拟真实的碰撞效果,产生力的作用。如果该对象添加了刚体 Rigid Body,则该选项必须勾选,否则会报错。原创 2023-06-14 14:54:54 · 9674 阅读 · 1 评论 -
Unity入门6——光源组件
Type:光源类型Spot:聚光灯Range:发光距离Spot Angle:光锥角度Directional:方向光Point:点光源Area(Baked Only):面光源仅烘焙。预先算好,不实时参与光线计算2.Color:光源颜色3.Mode:光源模式Realtime:实时光源每帧实时计算,效果好,性能消耗大Baked:烘焙光源事先计算好,无法动态变化Mixed:混合光源预先计算 + 实时计算4.Intensity:光照强度。原创 2023-06-14 14:51:43 · 2022 阅读 · 0 评论 -
Unity入门5——Camera
1. Clear Flags:清除背景Skybox:天空盒背景(通常用来做 3D 游戏)Solid Color:使用 Background 颜色填充(通常设置为全黑或全白,2D 使用)Depth Only:只画该层,背景为透明(多个摄像机叠加渲染时使用)Don’t Clear:不移除上一帧的画面,覆盖渲染,通常不使用在 Game 窗口下取消如下设置,移动物体,会看到叠影:Background:背景颜色,配合如上 Clear Flags 使用。原创 2023-06-14 14:38:14 · 3671 阅读 · 0 评论 -
Unity入门4——重要组件与API
/ 名字this.gameObject.name = "Lesson4唐老狮改名";// 是否激活// 是否是静态// 层级// 标签// this.transform 上一节课讲解的 通过Mono去得到的依附对象的GameObject的位置信息// 他们得到的信息是一样 都是依附的GameObject的位置信息。原创 2023-06-12 15:24:50 · 1455 阅读 · 0 评论 -
Unity入门3——脚本基础
所有继承 MonoBehavior 的脚本,最终都会挂载到 GameObject 游戏对象上 生命周期函数就是该脚本对象依附的 GameObject 对象从出生到消亡整个生命周期中 会通过反射自动调用的一些特殊函数 Unity 帮助我们记录了一个 GameObject 对象依附了哪些脚本 会自动得到这些对象,通过反射去执行一些固定名字的函数 生命周期函数的访问修饰符一般为 private 和 protected。原创 2023-06-12 15:08:52 · 2110 阅读 · 0 评论 -
Unity入门2——Unity工作原理
文件操作:新建工程,新建场景,工程打包等等编辑操作:对象编辑操作相关,工程设置,引擎设置相关资源操作:基本等同于 Project 窗口中右键相关功能对象操作:基本等同于 Hierarchy 窗口中右键相关功能脚本操作:Unity 自带的脚本,可以添加各系统中的脚本窗口:可以打开 Unity 各核心系统的窗口帮助:检查更新,查看版本等等功能。原创 2023-06-12 15:00:28 · 1002 阅读 · 0 评论 -
Unity入门1——窗口布局
文章目录一、Hierarchy 窗口二、Scene 窗口三、工具栏四、Game 窗口五、Project 工程窗口六、Inspector 窗口七、Console 窗口。原创 2023-06-12 14:58:20 · 2995 阅读 · 0 评论 -
Unity-Unity脚本生命周期
Unity脚本生命周期是指在Unity游戏引擎中,脚本在运行过程中所经历的各个阶段。这些阶段包括:初始化、更新、固定更新、销毁等。下面我们来详细讲解一下Unity脚本生命周期的各个阶段。原创 2023-03-20 17:55:29 · 2622 阅读 · 0 评论