![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
unity
吴梓穆
学的越多,会的越少
展开
-
unity 获取物体的AABB包围盒,并根据包围盒自动创建碰撞盒
以上代码传入一个gameobject,返回一个这个gameobject下所有物体的共同的最小包围盒。根据包围盒创建碰撞盒。原创 2024-05-22 17:16:06 · 326 阅读 · 1 评论 -
untiy 为预制体动态加载光照贴图
unity版本为2021.8预制体不能携带光照贴图信息,只能我们自己准备了多方查找加自己摸索终于找到了适合新版本的解决方案,直接贴代码。原创 2024-05-11 09:06:21 · 415 阅读 · 0 评论 -
untiy 室内灯光最佳实践
本文将根据自己的理解,分步解析如何布局室内灯光,如何达到一个比较好的效果由于作者并非专业技美,仅根据工作经验分享处理思路,如果有错误希望读者不惜指正。原创 2024-03-02 11:20:01 · 1558 阅读 · 6 评论 -
utniy urp shinyssrr插件使用
用来实现屏幕空间反射效果unity 版本为2021.3.8LTS,低版本的untiy URP的参数设置位置z可能会不同。原创 2024-02-28 16:32:27 · 724 阅读 · 0 评论 -
unity 安卓 TCP可以连接别人,但是作为服务器无法被连接
问题在于启动监听时,制定了等待监听的长度为0,在windows上这是没问题的,但是在安卓上,它真的会是0个,也就是不处理监听连接,可以为他指定一个大于0的值,或者不填参数。原创 2024-01-06 10:29:10 · 616 阅读 · 0 评论 -
unity 保存和加载窗口布局
右上角,Layout点开后有保存和删除。要切换布局点红框里的已经保存的布局。这么简单的事网上一堆废话文章。原创 2023-12-26 13:48:49 · 429 阅读 · 0 评论 -
untiy zfbrowser显示不支持html5视频播放,或者需要下载flash插件
这是因为zfbrowser不支持h.264格式的视频导致的,因为需要额外支付高额的专利费用可以改用3DWebView,这个支持,需要注意的是这个插件电脑版和手机版是分开的,手机版的名字叫UniWebView电脑版下载链接使用的时候只需要将如下拖到Canvas下即可使用这个属性可以修改进入的地址默认情况下,3DWebView依然弹出不支持html5,此时我们只需要使用菜单栏的选线,即可需要注意的是,很多文章里说可以这样修改网页但是经过测试webview会报Null,问题还在查找,目前可以使用如下来修原创 2023-12-21 09:35:20 · 640 阅读 · 0 评论 -
untiy加载本地文件为声音片段
【代码】untiy加载本地文件为声音片段。原创 2023-12-19 14:42:33 · 390 阅读 · 0 评论 -
untiy 配置iis服务器来打开webgl
最简单的方法是不需要配置服务器,打包的时候直接build and run,但是有时候如果我们需要调整js的内容,会很不方便,所以配置一个iis服务器还是很有必要的。这是因为iis服务器不允许浏览器加载某些文件导致的,我们需要为服务器添加允许的mime类型。通过在浏览器里输入我们电脑的ip地址+刚才指定的端口号来访问我们的webgl,如下图。我们直接把打包的webgl文件放到刚才选择的文件夹里即可。输入站点名,选择一个磁盘上的文件夹,并指定一个端口。控制面板,查看方式选类型,点击程序。原创 2023-11-28 09:57:48 · 906 阅读 · 0 评论 -
unity shaderGraph实例-可交互瀑布
不要问我水在哪里,你自己相像这是一个瀑布,瀑布的效果我还不会做。原创 2023-11-23 22:20:11 · 1564 阅读 · 0 评论 -
untiyWebRequest发送post请求,请求参数为json
【代码】untiyWebRequest发送post请求,请求参数为json。原创 2023-11-20 11:44:23 · 357 阅读 · 0 评论 -
unity shaderGraph实例-扫描效果
用场景深度减去顶点的View空间的视野深度(Z值),这里Z值需要乘-1是因为从相机看到的物体顶点的视野深度为-1,而场景深度是正值,所以需要乘-1让两者都为正。这一步的意义是,用场景中的深度减去sphere的视野深度,当sphere与场景的物体接近时,这个差将会非常接近0,如下图。View空间类似于屏幕坐标,在屏幕正中心永远是(0,0,0),向左为X正,向上为Y正,向摄像机镜头内部为Z正。将值钳制在0-1,并四舍五入,这样可以得到非常锐利的扫描边缘,如果不四舍五入则会得到渐变的效果。原创 2023-11-16 21:09:27 · 1025 阅读 · 0 评论 -
utniy untiyWebrequest加载本地音频
此处为加载mp3,需要加载其他格式可以修改AudioType。原创 2023-11-16 17:30:35 · 212 阅读 · 0 评论 -
unity shaderGraph实例-可交互草地
在草移动时,我们不需要草的根部移动,所以我们使用了顶点颜色,即在制作草的模型的时候,在根部的顶点处添加了顶点颜色(注意不是贴图的颜色)为黑色,可交互部分为白色,这样可以通过一个Lerp,在不需要移动的区域和需要移动的区域里平滑过渡,当然这里也可以用顶点坐标计算。首先上一步已经将值限制到0-1,这一步取反,直观解释就是将黑白条对调,越靠近cube的部分越白,也就代表了对草的顶点shader的影响越强。此处可以理解为,从cube的中心到草的顶点的距离,其距离是一个从0到整数的过程,如下图。原创 2023-11-15 20:55:22 · 382 阅读 · 0 评论 -
untiy打开关闭浏览器
最简单的打开方法,只能打开不能关闭,自动打开默认浏览器。打开关闭Edge浏览器。原创 2023-11-03 10:09:11 · 331 阅读 · 0 评论 -
unity Newtonsoft.Json通过字段名直接读取字段值
使用了插件Newtonsoft.Json,在unity2021之后的版本已经内置了,更早版本需要手动导入。有时候我们并不能明确的知道别人给我们的类型,也就无法构建一个c#的类来解析json对象。但我们明确的知道这个json里我们需要的字段名,此时可以使用JObject来解析对象。原创 2023-10-26 14:51:58 · 448 阅读 · 0 评论 -
untiy 新输入系统 InputSytem
新输入系统的名字就叫InputSystem,新是相对于旧的InputManager来说的核心思想是添加一个动作(action)的概念,代码只监听动作的触发,由动作去绑定物理输入,这样无论什么平台,无论如何重新指定物理输入,我们都不需要修改代码。同时也可以将同一个物理输入同时绑定到不同的输入动作集中,随时切换输入动作集,例如上车后,从走路的动作集切换到开车的动作集。此外还提供了一些方便的功能,例如使用代码重新绑定按键、屏幕按键等、检测设备接入拔出、组合键、次要绑定等。原创 2023-10-23 12:40:21 · 978 阅读 · 0 评论 -
unity 2019 内置渲染管线 光照与Lighting面板 参数详解
本文仅讨论内置渲染管线,高清渲染管线和通用渲染管线不在讨论范围之内内置渲染管线就是最普通的工程自带的渲染管线本文使用的Unity版本为2019.4 ,。如果你的版本不同,参数和参数的功能可能不同。由于作者并非专业技美,只是一个苦逼的码农,难免有错误,请大佬不吝斧正。什么是烘焙在Untiy中,烘焙是进行光照预计算,将光照信息存到一张贴图上,运行时直接读取贴图的信息,而不是实时计算。在烘焙中会产生多种信息,根据设置的不同,我们可以产生 静态光照贴图、动态光照贴图,反射信息等。原创 2023-07-18 21:48:21 · 3852 阅读 · 1 评论 -
untiy 打开windows资源浏览器 选择一个本地文件
有时候我们会需要让用户自己导入一个视频或图片到untiy,此时需要使用windows自己的资源浏览器。直接调用这个脚本的OpenResManager方法即可,返回值为选中的文件的绝对路径。另附将通过上述脚本获取到视频名后,拷贝到本地方法。原创 2023-06-15 10:09:40 · 472 阅读 · 0 评论 -
unity emgucv Texture2D转Mat / Mat转Texture2D / Texture 转 Texture2D
首先需要导入emgucv要用的dll。原创 2023-06-10 09:23:58 · 1225 阅读 · 0 评论 -
Blender 导出fbx模型到 untiy
7 应用变换: Untiy是左手坐标系,blender是右手坐标系,可以帮我们把坐标系转换为unity的坐标系,unity 中以Z轴正方向为前方(例如一个人向前方移动时,untiy中为沿Z轴正方向移动),blender的Y轴负方向为前方,这样获得的fbx的模型空间的Z轴正方向会指向前方,这对程序是友好的,如果不勾选,我们获得的模型正Y轴指向前方,正Z指向上方。1 路径模式:复制 ,这会把模型引用的纹理复制一份到选定的文件夹下,用这个。3 物体类型:只导出我们需要的类型即可。8 烘焙动画:没动画不勾。原创 2023-02-22 17:38:48 · 4141 阅读 · 3 评论 -
unity 拖拽UI
这要求我们需要为UI设置一个2D碰撞盒,鼠标只有在碰撞盒内拖动才会触发事件,需要注意UI的一个像素就是1米,所以碰撞盒需要做的非常大,例如一个长宽都是100的图片,碰撞盒的size 是100*100。我们用两种方式来实现拖拽代码,一种是使用MonoBehaviour里的方法,一种是实现UI事件接口,但不论是那种方法,拖拽的逻辑都是没有区别的。需要注意,想让UI事件生效,场景里必须有EventSystem这个物体,如果你发现UI有反应,可能是误删了EventSystem,可以在新建的UI里新建一个。原创 2023-02-15 10:21:22 · 3307 阅读 · 1 评论 -
unity 天空盒有接缝
注意图片的大小,如果图片尺寸太低,由于缩放采样,纹理的像素可能出现无法对其的现象,此时的天空盒看起来是这样的。我们需要接所用天空盒图片的wrapMode设置为clamp模式,设置完后记得Apply一下。当我们使用立方体天空盒时,有时会出现盒子的接口处有缝隙的情况。虽然没有撕裂,但是像素对不上,存在一条明显的边界。但注意分辨率不是越高越好,会占用太多内存。此时我们只需要适当提高分辨率即可。一般来说有两种可能的情况。原创 2022-11-16 15:23:50 · 1507 阅读 · 0 评论 -
untiy2D 物体的前方,看向一个方向,延一个轴移动
同理,如果用Y轴正方向做为正方向,只需把Vector3.right改为Vector3.up即可,相当用x轴或y轴代替z轴。Quaternion.FromToRotation()获取一个旋转,以第一个参数为正方向轴,转到v代表的方向。v提供一个方向,注意z轴必须为0。原创 2022-10-16 21:11:27 · 902 阅读 · 0 评论 -
unity 手写板 截取游戏画面 识别手写文字 全家桶
注意,我是用的分辨率是1920*1080,使用屏幕坐标画出的线非常巨大,每个像素都是1米,所以我将主相机放在x960y540的的位置,如果你觉得太大,可以使用射线检测一个背景Plane,用射线击中点,代替屏幕坐标,可以有效降低线的尺寸。可以自定义读取的矩形区域,Rect的四个参数分别为 起始坐标X,起始坐标Y,从起始坐标向右读多少像素,从起始坐标向上读多少相许 ,例子中的起始坐标(0,0),是屏幕的左下角。这么做的好处是,截到的画面只和相机拍到的画面有关,因此可以屏蔽UI,并且不受Display窗口限制。原创 2022-09-09 18:17:19 · 2698 阅读 · 5 评论 -
untiy高亮插件
使用方法,为需要高亮的物体添加Highlighter的脚本,通过Gradient属性可以设置颜色和透明度,通过设置twenn属性true启用高亮,false禁用高亮。使用的插件为 highlightingsystem,我上传的这个版本已经去掉了演示场景,只有最基本的代码。为摄像机添加一个HighlightingBase脚本,通过iteraions可以调整线的宽度。需要注意的是,运行后,只能在game视图里能看到线框,scene里看不到。面积分下载 地址待添加。...原创 2022-08-24 18:08:21 · 610 阅读 · 3 评论 -
untiy 多屏显示
unity 自带多屏显示,仅需在场景里多放一个摄像机,并修改相机的targetDispaly即可,默认的display1即第一块屏幕,display2即第二块屏幕,可见最多可支持八个屏幕。如果切换场景后,某个屏幕没有摄像机输出画面,那么画面将保持最后一帧的影响,此时可以使用上方的Display手动关闭对应的画面输出。此外,需要注意切换相机时,主相机Main camera的tag在哪个相机身上,错误的设置会导致ui失去响应。需要注意的是,设置好后不一定有用,需要用代码开启多屏幕显示,代码如下。原创 2022-08-20 10:16:15 · 1689 阅读 · 0 评论 -
untiy 串口通信
untiy的串口通信是垃圾中的垃圾,只能使用线程监听串口消息,而不能使用c#提供的更方便安全的注册委托的方法,根本原因是mono没有完全实现c#的using System.IO.Ports下的内容,导致unity中只能用被阉割过的串口。对于纯c# 代码,可以使用委托更优雅的接收串口消息,因为线程接收的方式可以能出现数据粘包。对于一个串口,我们可以通过一个线程监听串口发过来的消息。以下是批量查找串口,批量接收消息,批量关闭。但这个委托在Untiy中无法使用。这是一个最简单的开启串口的演示。......原创 2022-08-12 18:26:54 · 1350 阅读 · 0 评论 -
untiy加载一张本地图片到Image 精灵
image组件需要一个精灵sprite来显示图片,所以我们要做的是把本地图片转为精灵。原创 2022-08-10 16:07:14 · 1155 阅读 · 0 评论 -
Unity 中文输入和复制粘贴
导入插件,将为InputFiled添加InputField_WebGL组件即可。此外听所2022版本已经开始支持中文输入。原创 2022-08-10 11:20:13 · 1146 阅读 · 0 评论 -
unity webgl报 Uncaught SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON
这个问题是json解析出现了问题,可能的情况比较多,但是如果你没有乱改过unity的模板文件,或者使用了自定义的模板类,那么很有可能是因为打包的时候修改了目标文件夹名导致的。因为我用了自定义的模板,导致这个Json名不会跟随打包的文件夹而变动,但是bulid里的json文件却会跟随打包的文件夹的改变而改变。这很明显会导致找不到json文件,解决方案就是将index.html里的目标Json名修改为正确的名字。问题出在Index.html里。...原创 2022-08-02 16:50:52 · 1292 阅读 · 0 评论 -
untiy Resorces目录动态加载资源
Resources里的资源在程序启动时会全部加载一遍,如果内容过多过大,会对启动时间有比较大的影响,如果对性能比较在意不建议使用。1Resources的次级文件夹前不需要写/,streamingAssets文件夹需要。2Resources文件只需要给出文件名,不能加后缀名。首先文件夹必须叫Resources,名字不能错。这是一个加载音频片段的示例。...原创 2022-07-29 14:22:49 · 133 阅读 · 0 评论 -
c# 字节数组和类相互转换
思想是在内存里开辟一块内存,将字节数组塞进内存里,然后将这块内存封装为对应类的对象。这里的串口信息不是字符串,而是一个由字节数组表示的类。在做串口通信时,遇到了一个很有趣的写法。注意这不是json字符串,而是字节数组。反之,从类对象转到字节数组的代码如下。......原创 2022-07-22 09:54:21 · 1098 阅读 · 0 评论 -
unity 自定义webgl打包模板
对于webgl项目,我们经常需要修改index.html里的内容,但是每次打包,都会覆盖上次的内容,如果每次都要额外保存一份index.html或者css文件的内容再替换掉打包的内容,会浪费很多时间,好在Untiy允许我们自定义打包的模板我们需要在Assets里创建一个文件夹名字叫 WebGLTemplates,这里用来存放所有的模板,然后在WebGLTemplates下再建一个文件夹,名字为我们模板的名字,然后在这个文件里放入我们的模板资源,例如这里,我们创建了一个名为TestTemplates的模板原创 2022-07-06 17:12:26 · 1801 阅读 · 0 评论 -
unity webgl自适应网页尺寸
我使用的是unity 2019.4 LTS版一共有两步1 在Index.html中修改2 修改css 的内容 位置在打包出来的文件/TemplateData/style.css原文连接原创 2022-07-05 17:35:02 · 1941 阅读 · 1 评论 -
Untiy文本框的代码换行问题
如果是我们主动指定换行,我们可以使用\n来换行例如如果文字内容来自别处,比如从服务器下载,如果文字里自带 \n换行,直接把文字放进text里,\n会被识别为字符,而不会换行,这时因为Untiy非常好心的帮我们自动吧 \n替换为\n了(尽管你很确定你拿到的数据就是\n),所以我们要手动把\n替换为\n,防止被转义例如...原创 2022-07-04 09:48:15 · 2247 阅读 · 0 评论 -
unity 第一人称摄像机 适用于windows和安卓
带左右限制,如果不需要,注释即可using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.EventSystems;/// <summary>/// 俯仰摄像机/// </summary>public class PitchCam : MonoBehaviour{ /// <summary> /// 水平输入原创 2022-05-05 11:16:00 · 687 阅读 · 0 评论 -
untiy坐标过大导致物体和阴影闪烁
如果你拿到的模型非常大,你没有进行缩放直接使用,或者美工把模型的坐标放在了世界边缘,你会发现这些遥远的物体(任意坐标超5000后就已经非常明显)的阴影会发生极其不自然的闪烁,但与此同时,如果你把模型归零,在世界远点的话,你会发现阴影又正常了这是因为浮点数的精度下降,由于浮点数最多只能怪精确表示7位,保证准确表示6位(整数部分加小数部分一共的位数),如果世界坐标太大,Untiy对于阴影的计算就会出现偏差这种情况可以通过修改光源的biss和NormalBias缓解但是最有效的方法是去window/package原创 2022-06-30 21:40:55 · 1191 阅读 · 0 评论 -
untiy强制刷新UI
在向一个自适应内容长度的text里添加文字,并把text放进滚动窗口里,发现虽然text的尺寸自适应扩充了,但是在scroll view里却没有显示第一行,而且是显示了中间,这时随便修改一个scroll view的属性,text都会弹回第一行,这说明创建scroll view时,没有刷新text,导致scroll view认为text还是扩充前的尺寸,这时候我们只要强制刷新一下UI即可LayoutRebuilder.ForceRebuildLayoutImmediate(contentText.rectTr原创 2022-06-23 15:35:08 · 2371 阅读 · 0 评论 -
unity 代码为动画注册事件
我们可以为动画添加事件,来实现自动播放下一段动画之类的效果,代码如下原创 2022-06-09 15:05:47 · 832 阅读 · 0 评论