将 VR 集成进一个 HDRP 项目中,发现快速移动头盔时,画面出现视觉模糊拖影。在 2d 屏幕上该效果表现不错,但在 VR 中会让人迷惑,且加重 3d 眩晕。 现象 由于双眼组合的效果及 VR 头盔显示器效果无法截屏,故以 2d 屏幕截图代替。 静止不动情况 快速晃动视角的情况 可以发现, HDRP 默认情……
Unity HDRP VR 视觉模糊拖影问题(Motion Blur)
某游戏分析之从CSV配表到程序运行逻辑全过程
偶然发现这篇文章三个月前就挂上 TODO 列表了,一直没写,这次把它补上。本文主要分析了某款 Galgame 从策划配表到程序运行起来的整体流程。 热更新资源与 CSV 表 Unity 代码热更分Lua派和ILRuntime派,而资源热更大部分是AssetBundle。我要分析的这款 Galgame 也支持热……
Muse脑电头带Unity OSC数据采集开发指南
Muse是一款 InteraXon 开发的头戴式脑电波传感器,它利用数个干电极采集脑电数据,经过滤波与相关算法处理后可以输出实时脑电波信息。最近涉及到这东西的二次开发,网上基本没有现成的资料。经过一段时间的研究,我找到了在Unity中获取数据的方法。 一、专用名词 注意:按照本文思路,可以通过OSC协议实现在……
UnityWebGL截图/图片/文件调用浏览器下载
有个需求,点击按钮,调用浏览器下载,将UnityWelGL内的截图、图片等文件通过浏览器下载保存。百度没搜到,遂谷歌查了一下,将解决方法放在这里。 原理 C#代码不能直接操作浏览器,不要紧,Unity提供的jslib可以与浏览器交互!它与普通的js文件没什么不同! 一个可行的方法:C#调用引入的jslib,将……
VRTK 重叠Canvas上UIPointer射线穿透的问题(Unity VR)
存在重叠的WordSpace Canvas时,UIPointer射线会穿透Canvas,导致触发错误。 问题探究 解决方法直接跳到最后“解决方法”部分。 2020补充:问题已解决,请移步该文章:https://www.azimiao.com/7509.html 测试场景如下图,有两个重叠的Canvas,分别叫……
给不规则模型(子物体)添加BoxCollider的Editor脚本
前言 经常碰到一些不需要精确碰撞的不规则模型,此时只需要一个BoxCollider把它和它的子物体包裹进去即可。 手动加碰撞盒非常麻烦,不仅中心点不准确,大小也需要手动调整。而利用Renderer组件,可以获取模型的渲染大小及中心点,经过简单的计算就可以自动生成合适的BoxCollider。 实现 1.关键方……
Unity中物体按预设路径简单移动的方法
前言 之前有个需求,要求一个或多个物体按照规定的路径移动。我根据灵魂重新大神所写的脚本做了一点点修改,最终完成了这个需求。 原理 本文内的简单移动不涉及曲线等复杂的东西,所以可以用一个数组保存移动的坐标点,而后通过计算位移坐标的方式依次移动。 实现 1. PathDefine.cs PathDefine脚本用……
SteamVR手柄下的UGUI子物体移动太慢或延迟的问题
使用Unity SteamVR插件时,将一个WordSpace的2D Canvas放置在手柄下,发现UI跟不上手柄的移动速度。 复现 新建一个Canvas,按需调整后放置在手柄对象下,快速移动手柄。 如图所示,UI的移动速度似乎跟不上手柄,出现了模型穿透的情况。 解决方法 1.治标 将2D UI 替换成3D面……
RenderTexture Sprite截图并解决画面太暗的问题
RenderTexture截图 1.原理 通过Texture2D的ReadPixels方法将读取RenderTexture数据,据此创建一个Sprite。 2.代码 //RenderTexture public RenderTexture mainPadTexture; //要填充的Image public ……
Unity直升机飞行HeliHell源码分析(2)-飞行控制
该文章是《Unity直升机飞行HeliHell源码分析》系列文章的第二篇。 源代码下载及前文请见《Unity直升机飞行HeliHell源码分析(1)-摄像机缓动跟踪》。 铰链关节 飞行效果主要通过铰链关节实现,首先分析本项目中铰链关节的结构: 层级视图中可以找到一个空物体ChopperControllerHu……
Unity直升机飞行HeliHell源码分析(1)-摄像机缓动跟踪
突然发现百度网盘里有一堆Unity小游戏Demo的源码,为了更好的学习这些内容,我决定以博客文章的形式记录我对这些源码的理解,同时方便一些像我这样的小白学习知识。今后,争取每一到两周就写一篇关于此的文章。 这篇文章从最简单的一个开始,这个源码包叫做HeliHell,unity商店有售,但已经好久不更新了。 效……
将16进制颜色值转为UnityColor的正确方法,解决显示纯白色
前言 HEX16进制颜色值转化为RGB原理非常简单:取前两位,化为10进制,即为R;取中间两位,化为10进制,即为G;取后两位,化为10进制,即为B。 但如果用这个RGB数值去new一个Color的话,得到的颜色却总是为白色或黑色。 原因 Unity Color构造方法里的三个(或四个,如有alpha)参数的……