- 博客(92)
- 收藏
- 关注
原创 判断三角面片与空间中球体是否相交
在做项目时遇到了一个数学问题,即,如何判断给定一个三角面片与空间中某个球体有相交部分?已知空间中球体的球心位置center,半径为r,三角形三个顶点分别为v1,v2,v3。算出三角形 ABP、BCP、CAP 的面积和,与 ABC 面积进行比较。 这种情况相对来说比较简单,只需要判断三角形三个顶点到球心的最小距离<半径 r 即可。 计算三边所在直线到球心的距离,最短距离 < r 即可。 根本原因是,我们求的是线段与球体相交,而不是一条直线。 同理,计算球心到平面的距离 < r 即可。
2023-03-06 00:01:25
114
原创 2022-10-26 Unity 2进制3——文件夹操作
DirectoryInfo 和 FileInfo 一般在多文件夹和多文件操作时会用到,了解即可,目前用的相对较少。他们的用法和 Directory 和 File 类的用法大同小异。 Directory 提供给我们了常用的文件夹相关操作的 API,只需要熟练使用它即可。 平时我们可以在操作系统的文件管理系统中,通过一些操作增删查改文件夹。 我们目前要学习的就是通过代码的形式,来对文件夹进行增删查改的操作。
2022-10-26 01:39:39
468
原创 2022-10-26 Unity 2进制2——文件流操作
比如我可以先存一个 int(4 个字节)再存一个 bool(1 个字节)再存一个 string(n 个字节),利用 FileStream 可以以流式逐个读写。 我们之前学过的 File 只能整体读写文件,而 FileStream 可以以读写字节的形式处理文件。 我们存储数据的先后顺序是我们制定的规则,只要按照规则读写就能保证数据的正确性。 通过 FileStream 读写时一定要注意:读的规则一定是要和写是一致的。 我们可以通过 FileStream 一部分一部分的读写数据流。
2022-10-26 01:38:42
729
原创 2022-10-26 Unity 2进制1——文件操作
2 进制文件读写的本质就是通过将各类型变量转换为字节数组,将字节数组直接存储到文件中,一般人是看不懂存储的数据的。 不仅可以节约存储空间,提升效率,还可以提升安全性,而且在网络通信中我们直接传输的数据也是字节数据(2 进制数据) C# 提供了一个名为 File(文件)的公共类,让我们可以快捷的通过代码操作文件相关。 在电脑上我们可以在操作系统中创建删除修改文件,可以增删查改各种各样的文件类型。File 类提供了各种方法帮助我们进行文件的基础操作,需要记住这些关键 API。
2022-10-26 01:37:52
646
原创 2022-09-09 Unity InputSystem5——PlayerInput
PlayerInput 是 InputSystem 提供的专门用于接受玩家输入来处理自定义逻辑的组件配置输入文件(InputActions 文件)通过 PlayerInput 关联配置文件,它会自动解析该配置文件关联对应的响应函数,处理对应逻辑不需要自己进行相关输入的逻辑书写通过配置文件即可配置想要监听的对应行为让我们专注于输入事件触发后的逻辑处理Actions:行为一套输入动作和玩家相关联,帮助我们监听一些按键的输入。
2022-09-09 02:34:35
1738
原创 2022-09-09 Unity InputSystem4——输入配置文件
这里面记录了想要处理的行为和动作(也就是 InputAction 的相关信息),我们可以在其中自己定义 InputAction(比如:开火、移动、旋转等),然后为这个 InputAction 关联对应的输入动作,之后将该配置文件和 PlayerInput 进行关联。 输入系统中提供了一种输入配置文件,你可以理解它是 InputAction 的集合,可以在一个文件中编辑多个 InputAction 的信息。 当切换了控制方案后,该控制方案可能是由多个设备配合控制,可以在这里进一步筛选对应设备。
2022-09-09 02:33:44
477
原创 2022-09-09 Unity InputSystem3——InputAction
许多控件没有精确的静止点(也就是说,当控件位于中心时,它们并不总是精确地报告(0,0)。Stick Deadzone:摇杆死区处理器缩放 Vector2 控件(如摇杆)的值,以便任何幅值小于最小值的输入向量都将得到(0,0),而任何幅值大于最大值的输入向量都将规格化为长度 1。类似 Hold,但是它在按住时间大于等于 Max Tap Duriation 的时候,并不会立刻触发 Performed,而是会在松开的时候才触发 Performed。主要用于状态连续更改的输入,例如鼠标的移动,手柄的遥感。
2022-09-09 02:32:28
2794
原创 2022-09-09 Unity InputSystem2——代码检测输入
或者直接进到类的内部查看具体成员,通过查看变量名和方法名即可了解使用方式。 或者直接进到类的内部查看具体成员,通过查看变量名和方法名即可了解使用方式。 新输入系统提供了对应的输入设备类,帮助我们对某一种设备输入进行检测。 如果想要学习他们的使用,最直接的方式就是看官方的文档。 如果想要学习他们的使用,最直接的方式就是看官方的文档。 新输入系统的设计初衷就是想提升开发者的开发效率, 对于没有细讲的设备,平时在开发中不是特别常用。 对于没有细讲的设备,平时在开发中不是特别常用。
2022-09-09 02:31:30
2099
原创 2022-09-09 Unity InputSystem1——概述
将输入操作进行封装,让我们可以在 Unity 内进行输入配置文件编辑。 不仅可以像老输入系统一样使用,还增加了输入配置的概念,新输入系统。 InputSystem 是 Unity 提供的一种新的输入系统。 我们不需要写代码来判断设备输入,只需要把工作重心放在逻辑处理上。可以同时启用也可以只启用其中之一,每次启用后会重启 Unity。 我们需要自己写各种检测代码来判断设备输入,并处理对应逻辑。 它相对于老的输入系统更具拓展性和可自定义的替代方案。
2022-09-09 02:30:41
558
原创 2022-08-26 Unity视频播放4——全景视频
但是对于一些老设备或者移动设备可能最多只能使用 2K 分辨率,具体根据实际情况而定。 注意:尽量使用较高分辨率率的全景视频(4K 或 8K),这样效果更好。等距圆柱投影布局,也称为球面投影、简化圆柱投影、矩形投影或普通圆柱投影。视频宽高比为 2:1 的 360 度内容或 1:1 的 180 度内容。 我们也可以使用全景视频再游戏中来制作一些动态天空盒效果。 我们可以通过视频分辨率的比值判断该全景视频为哪一种。视频宽高比为 1:6、3:4、4:3、6:1。 全景视频一般在 VR 项目中才会使用。.
2022-08-26 21:40:30
1479
原创 2022-08-26 Unity视频播放3——VideoPlayer
比如:Track 0[en, 2 ch] 表示有一个音频轨道,语言是 en, 并且音频轨道有 2 个声道(2 ch),表示它是双声道音频轨道。 Video Player 顾名思义是视频播放器的意思,它是 Unity 提供给我们用于播放视频的组件。选择视频的路径,可以是远程视频路径,也可以之后通过代码直接关联视频资源路径。Fit Outside:对原视频进行缩放,可能需要进行裁剪,但是不会留黑边。1 表示正常速度,如果数值为 2,则视频速度 ❌ 2,表示两倍速播放。...
2022-08-26 21:39:46
1842
1
原创 2022-08-26 Unity视频播放2——视频剪辑设置
注意:Android 平台的原生 VP8 支持中不包括透明度支持,这意味着必须启用转码,以便 Unity 使用其内部 Alpha 表示方法。VP8:VP8 视频编解码器,受到大多数平台上的软件支持,并受到 Android 和 WebGL 等几个平台上的硬件支持。VP8 得到广泛支持并具有全面的功能集,但与硬件加速的编解码器(例如 H.264)相比,需要消耗更多的资源。H265:MPEG-H Part 2 或高效视频编码(HEVC)视频编解码器,受某些平台上的硬件支持。...
2022-08-26 21:39:05
1563
原创 2022-08-26 Unity视频播放1——视频介绍
比如:我们在 Windows 上开发,最终要发布为 IOS、Android 平台上,那么这个视频最终目的是要在 IOS、Android 这两个操作系统上能正常播,Windows 能不能正常播其实都不是那么重要了,不能播无非就是不能预览。 不同格式的视频文件,比如.mp4、.mov、.avi、.webm等,他们表示视频文件中的数据是使用某种容器格式排列的。 目前大多数的设备都有专用于解码视频的硬件,一般是由 GPU(图形处理器,显卡的核心硬件)来进行硬件解码的。......
2022-08-26 21:35:25
1227
原创 2022-07-15 Unity核心10——导航寻路系统
Unity中的导航寻路系统是能够让我们在游戏世界当中,让角色能够从一个起点准确的到达另一个终点,并且能够自动避开两个点之间的障碍物选择最近最合理的路径进行前往。在游戏中常常会有这样的一个功能,场景中有一道门,如果这道门没有被破坏是不能自动导航到门后场景的,只有当这道门被破坏了,才可以通过此处前往下一场景。导航网格(NavMesh)的生成——要想角色能够在场景中自动寻路产生行进路径,那么必须得先有场景地形数据,导航网格生成就是生成用于寻路的地形数据。如果关闭,则只能Start到End。...
2022-07-15 02:30:34
2261
1
原创 2022-07-08 Unity Json3——实现简单的Json数据管理器JsonMgr
实现简单的 Json 数据管理类 JsonMgr,以便于存储和读取游戏中的数据:
2022-07-08 22:45:48
392
原创 2022-07-08 Unity Json2——LitJson
它是 C# 编写的,体积小、速度快、易于使用 它可以很容易的嵌入到我们的代码中,只需要将 LitJson 代码拷贝到工程中即可前往 LitJson 官网:LitJSON - Home通过官网前往 GitHub 获取最新版本代码点击此处下载最新版本:将讲代码拷贝到 Unity 工程中,即可开始使用 LitJson代码路径在 litjson-0.18.0 src LitJson 使用方法: 注意: 使用方法: 注意: JsonUtlity 和 LitJson 相同点: JsonUtli
2022-07-08 22:44:57
1171
原创 2022-07-08 Unity Json1——JsonUtlity
将内存中对象序列化为 Json 格式的字符串将 Json 字符串反序列化为类对象二、使用 JsonUtlity 进行序列化 预备的数据结构: 使用方法:注意: 使用方法: 注意:
2022-07-08 22:40:23
763
原创 2022-07-06 Unity核心9——3D动画
使用导入的 3D 动画:(一)状态设置相关参数 我们可以选中状态机窗口中的某一个状态为其设置相关参数,我们可以称之为动画状态设置 主要设置的是当前状态的播放速度等等细节 在 Animator 窗口中选择其中一个状态,可以看见 Inspector 窗口中如下参数:Motion:分配给此状态的动画剪辑Speed:动画的默认速度Multiplier:控制速度的乘数,如果要使用需要勾选的 Parameter 选中配合的参数 float 类型Motion Time:运动的时间,如果要使用需要勾选的 Para
2022-07-06 12:46:39
1534
原创 2022-06-30 Unity核心8——模型导入
Unity 支持很多模型格式。比如 .fbx /.dae /.3ds /.dxf /.obj 等等。 99%的模型都不是在 Unity 中制作的,都是美术人员在建模软件中制作,如 3DMax、Maya 等等。 当他们制作完模型后,虽然 Unity 支持很多模型格式但是官方建议是将模型在建模软件中导出为 FBX 格式后再使用 使用 FBX 模型格式的优势: 在 Project 窗口选中导入的模型,在 Inspector 窗口进行相关设置,4 个页签分别是Model 模型页签Rig 操纵(骨骼)页签
2022-06-30 23:00:14
5087
2
原创 使用Typora编辑markdown上传CSDN时图片大小调整麻烦问题
使用typora编写markdown上传csdn时图片大小需要一个个修改,十分繁琐。本文提供了一种解决思路。
2022-06-30 01:14:00
993
原创 typora 使用 gitee 图床失效解决方案——阿里云 + typora 配置图床
文章目录一、创建阿里oss对象存储二、创建Bucket三、创建用户四、生成Access五、创建权限六、配置PicGo七、gitee换阿里云存储方案最近gitee又开始搞心态了,使用gitee白嫖当图床的方案失败。为了更好的获得使用体验,我们使用阿里云的oss进行存储一、创建阿里oss对象存储点击折扣套餐,配置默认的即可,具体时限多久自行选择注意新创建的账户需要实名购买完成后,在此进行开通,进入控制台这里我已经开通了,所以显示的按键不一样二、创建Bucket进入控制台后,创建Bucket
2022-05-19 00:55:24
680
1
原创 2022-05-14 Unity核心7——2D动画
文章目录一、序列帧动画二、骨骼动画 —— 2D Animation三、反向动力学 IK四、换装五、骨骼动画 —— Spine一、序列帧动画(一)什么是序列帧动画 我们最常见的序列帧动画就是我们看的日本动画片,以固定时间间隔按序列切换图片,就是序列帧动画的本质 当固定时间间隔足够短时,我们肉眼就会认为图片是连续动态的,进而形成动画(会动的画面) 它的本质和游戏的帧率概念有点类似,原理就是在一个循环中按一定时间间隔不停的切换显示的图片(二)制作序列帧动画 方法一:创建一个空物体
2022-05-14 03:31:10
2817
原创 2022-05-10 Unity核心6——Animation
文章目录一、动画窗口二、创建与编辑动画三、老动画系统四、Animator 窗口五、Animator一、动画窗口 通过 Window --> Animation --> Animation 打开 Animation 窗口 Animation窗口主要用于在 Unity 内部创建和修改动画,所有在场景中的对象都可以通过 Animation 窗口为其制作动画 原理: 制作动画时:记录在固定时间点对象挂载的脚本的变量变化 播放动画时:将制作动画时记录的数据在固定时间点进行改变,产生动
2022-05-10 21:53:53
1664
原创 2022-05-08 Unity核心5——Tilemap
文章目录一、瓦片资源二、瓦片调色板窗口三、瓦片地图关键脚本和碰撞器四、导入瓦片官方拓展包五、新增瓦片类型六、新增笔刷类型七、代码管理 Tilemap Tilemap 一般称之为瓦片地图或者平铺地图,是 Unity2017 中新增的功能,主要用于快速编辑 2D 游戏中的场景,通过复用资源的形式提升地图多样性 工作原理就是用一张张的小图排列组合为一张大地图 它和 SpriteShape 的异同共同点:他们都是用于制作 2D 游戏的场景或地图的不同点:SpriteShape 可以让地
2022-05-08 15:45:41
9009
3
原创 2022-05-02 Unity核心4——SpriteShape
文章目录一、Sprite Shape Profile 精灵形状概述文件配置二、Sprite Shape Renderer 精灵形状渲染器三、Sprite Shape Controller 精灵形状控制器 Sprite Shape 是精灵形状的意思,它主要是方便我们以节约美术资源为前提,制作 2D 游戏场景地形或者背景的 在 Window --> Package Manager 中搜索 2D,选择 2D Sprite Shape,导入项目一、Sprite Shape Profile 精灵形状
2022-05-02 04:26:38
1272
原创 Typora + Gitee 配置图床——图片自动上传 详细教程
文章目录一、创建 Gitee 仓库二、设置私人令牌三、下载 PicGo四、配置 PicGo五、测试六、注意要点一、创建 Gitee 仓库进入 Gitee 官网 注册一个属于自己的账号,点击创建仓库创建自己的新仓库。创建的时候仓库只能设置为私有,创建完成后需要修改为仓库公开,才方便上传图片点击刚刚创建的仓库将仓库设置为开源二、设置私人令牌进入个人设置选择私人令牌进行创建设置自己的私人令牌记下自己创建的令牌,不能忘了三、下载 PicGo打开 Typora,进入:偏好设置 -
2022-05-01 04:47:50
1089
3
原创 2022-05-01 Unity核心3——2D物理系统
文章目录一、刚体 Rigid Body 2D二、碰撞器 Collider 2D三、物理材质 Material 2D四、恒定力 Constant Force 2D五、2D 效应器 Effector 2D 2D 物理系统和 3D 物理系统大致相同,详情可以参考 Unity入门7——物理系统之碰撞检测。一、刚体 Rigid Body 2D 刚体是物理系统中用于帮助我们进行模拟物理碰撞中力的效果的 2D 物理系统中的刚体和 3D 中的刚体基本是一样的,最大的区别是对象只会在 XY 平面中移动,并且只在
2022-05-01 03:36:44
1504
1
原创 2022-04-30 Unity核心2——Sprite
文章目录一、Single 图片编辑二、Multiple 图片编辑三、Polygon 多边形编辑四、Sprite Renderer 精灵渲染器五、Sprite Creator 精灵创造者六、Sprite Mask 精灵遮罩七、Sorting Group 排序分组八、Sprite Atlas 制作图集 顾名思义,Sprite Editor 就是精灵图片编辑器,它主要用于编辑 2D 游戏开发中使用的 Sprite 精灵图片 它可以用于编辑,图集中提取元素,设置精灵边框,设置九宫格,设置轴心(中心)点等等功
2022-04-30 22:26:35
6030
原创 2022-04-28 Unity核心1——图片导入与图片设置
文章目录一、图片导入概述二、纹理类型设置 Texture Type三、纹理形状设置 Texture Shape四、纹理高级设置 Advanced五、纹理平铺拉伸设置六、纹理平台打包设置一、图片导入概述 Unity 支持的图片格式有很多BMP:是 Windows 操作系统的标准图像文件格式,特点是几乎不进行压缩,占磁盘空间大TIF:基本不损失图片信息的图片格式,缺点是体积大JPG:一般指 JPEG 格式,属于有损压缩格式,能够让图像压缩在很小的存储空间,一定程度上会损失图片数据,无透明
2022-04-28 04:38:00
8084
原创 2022-04-25 Unity XML1——XML基本语法
文章目录一、XML 概述二、XML 基本语法三、XML 属性一、XML 概述 全称:可拓展标记语言(EXtensible Markup Language) XML 是国际通用的,它是被设计来用于传输和存储数据的一种文本特殊格式,文件后缀一般为 .xml 我们在游戏中可以把游戏数据按照 XML 的格式标准存储在 XML 文档中,再将 XML 文档存储在硬盘上或者传输给远端,达到数据持久化的目的二、XML 基本语法 只要能打开文档的软件都能打开 XML 文件,常用的一些打开 XML 文件的方
2022-04-25 21:46:02
1191
原创 2022-04-25 Unity XML3——XML序列化
文章目录一、XML 序列化二、XML 反序列化三、IXmlSerializable 接口四、Dictionary 支持序列化与反序列化五、自定义 XML 数据管理类一、XML 序列化 序列化:把对象转化为可传输的字节序列过程称为序列化,就是把想要存储的内容转换为字节序列用于存储或传递 反序列化:把字节序列还原为对象的过程称为反序列化,就是把存储或收到的字节序列信息解析读取出来使用(一)XML 序列化准备数据结构public class Lesson1Test{ public
2022-04-25 21:43:14
422
原创 2022-04-25 Unity XML2——C#读写XML
文章目录一、XML 文件的存放位置二、C# 读取 XML三、C# 存储修改 XML一、XML 文件的存放位置(一)只读不写的 XML 放在 Resouces 或者 StreamingAssets 文件夹下,详见 2022-04-22 Unity基础3——Resources资源动态加载_蔗理苦的博客-CSDN博客。(二)动态存储的 XML 放在 Application.persistentDataPath 路径下二、C# 读取 XML C# 读取 XML 的方法有几种XmlDocum
2022-04-25 21:41:10
287
原创 2022-04-24 Unity UGUI6——UGUI进阶
文章目录一、UI 事件监听接口二、事件触发器 EventTrigger三、RectTransformUtility四、遮罩 Mask五、模型和粒子显示在 UI 前方六、异形按钮七、自动布局组件八、画布组 Canvas Group一、UI 事件监听接口 目前所有的控件都只提供了常用的事件监听列表 如果想做一些类似长按,双击,拖拽等功能是无法制作的,或者想让 Image 和 Text,RawImage 三大基础控件能够响应玩家输入也是无法制作的 而事件接口就是用来处理类似问题,让所有控件都能够添加
2022-04-24 23:18:47
1092
原创 2022-04-24 Unity UGUI5——图集
文章目录一、Drawcall二、图集一、Drawcall 字面理解 DrawCall,就是绘制呼叫的意思,表示 CPU(中央处理器)通知 GPU(图形处理器-显卡)(一)DrawCall 概念就是 CPU (处理器)准备好渲染数据(顶点,纹理,法线,Shader 等等)后告知 GPU(图形处理器-显卡)开始渲染(将命令放入命令缓冲区)的命令 简单来说:一次 DrawCall 就是 CPU 准备好渲染数据通知 GPU 渲染的这个过程 如果游戏中 DrawCall 数量较高会影响 CPU 的
2022-04-24 20:21:55
1843
1
原创 2022-04-24 Unity UGUI4——组合控件
文章目录一、Button二、Toggle三、InputField四、Slider五、ScrollBar六、ScrollView七、Dropdown一、Button Button 是按钮组件,是 UGUI 中用于处理玩家按钮相关交互的关键组件 默认创建的 Button由 2 个对象组成 父对象——Button 组件依附对象,同时挂载了一个 Image 组件作为按钮背景图 子对象——按钮文本 Text(可选)(一)参数介绍Interactable:是否接收输入若不勾选,则表示被禁
2022-04-24 06:47:38
418
原创 2022-04-23 Unity UGUI3——三大基础控件
文章目录一、Image二、Text三、RawImage一、Image Image 是图像组件,是 UGUI 中用于显示精灵图片的关键组件 除了背景图等大图,一般都使用 Image 来显示 UI 中的图片元素(一)参数介绍Source Image:图片来源图片类型必须是“精灵 Sprite”类型Color:图像的颜色Matreial:图像的材质一般不修改,会使用 UI 的默认材质Raycast Target:是否作为射线检测的目标Maskable:是否能被遮罩
2022-04-23 21:26:44
898
3
原创 2022-04-23 Unity UGUI2——Canvas与EventSystem
文章目录一、Canvas二、Canvas Scaler三、Graphic Raycater四、EventSystem五、Standalone Input Module六、RectTransform一、Canvas Canvas 的意思是画布,它是 UGUI 中所有 UI 元素能够被显示的根本,它主要负责渲染自己的所有 UI 子对象 如果 UI 控件对象不是 Canvas 的子对象,那么控件将不能被渲染 我们可以通过修改 Canvas 组件上的参数修改渲染方式 场景中允许有多个 Canvas
2022-04-23 01:20:24
590
原创 2022-04-22 Unity UGUI1——基础组件概述
文章目录一、UGUI 介绍二、六大基础组件概述一、UGUI 介绍 UGUI 是 Unity 引擎内自带的 UI 系统,官方称之为:Unity UI 是目前 Unity 商业游戏开发中使用最广泛的 UI 系统开发解决方案 它是基于 Unity 游戏对象的 UI 系统,只能用来做游戏 UI 功能 不能用于开发 Unity 编辑器中内置的用户界面(一)UGUI 发展史Unity 初始版本——————Unity4.6——————Unity2018—————————目前GUI(IMGU
2022-04-22 20:24:42
1025
原创 2022-04-22 Unity基础5——物理检测
文章目录一、层级 Layer二、范围检测三、射线检测一、层级 Layer Unity 中设置了共 32 层 Layer,如图,可以点击 Add Layer 添加自定义的 Layer 通过名字得到层级编号 LayerMask.NameToLayer(string layer) 我们需要通过编号左移构建二进制数,这样每一个编号的层级都是对应位为 1 的 2 进制数 我们通过位运算可以选择想要检测层级,使用一个 int 就可以表示所有想要检测的层级信息 层级编号是 0 ~ 31,刚好 32
2022-04-22 03:41:28
488
原创 2022-04-22 Unity基础4——LineRenderer
文章目录一、参数面板二、参数介绍三、新版本参数四、代码控制五、应用一、参数面板二、参数介绍Loop:是否首尾相连Positions:线段的点Width:线段宽度曲线的调整Color:颜色变化需要搭配材质才有效果Corner Vertices:角顶点、圆角此属性指,在一条线中绘制角时使用了多少额外的顶点增加此值,使线角看起来更圆润End Cap Vertices:终点顶点、圆角Alignment:对齐方式View:视点,线段对着摄像机Transfor
2022-04-22 02:39:00
2964
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人