在玩《战地 2042》时发现一个模拟 RGB 像素显示的大屏幕:远观内容为完整图像,贴近观察是发光的 RGB 像素点。该效果很有趣,在 Unity 中复现一个玩玩。 实现的效果 截图 动图(GIF) 本文包含的内容 本文用 Unity 实现,但部分内容参考自 Youtube/Jam2go 的 Unreal E……
Shader:模拟LCD/CRT屏幕RGB像素显示效果
Shader:双向穿越魔法门(Stencil Test)
很久之前在某 3D 滑动列表中用过模板测试(Stencil Test),这次回顾,尝试用它搞一个双面穿越门出来。 效果 原理 把一个值写入 Stencil Buffer 中,后续同位置的其他片元渲染时,若开启了模板测试,将会把自身的预设值与 Stencil Buffer 中的值对比(即 Test),基于比较结……
Android导出Activity到AAR包供Unity使用
想在 Unity 中显示 Android 界面,但又不想导出 Unity 工程在 Android Studio 里编辑,于是探索将 Activity 导出到 AAR 包,用 Unity 编译打包的方法。 说明 本文介绍了通过 Unity Editor 打包含 Android Activity 在内的多 Act……
SMB手机VR播放器(四):http video intent-filter
前文说到的 intent-filter 仅能匹配普通本地文件的 intent,那么如何匹配 http video 类型的 intent 呢? HTTP video intent 结构 一般情况下,Android 端发起一个隐式 http video intent 的代码如下: Uri uri = Uri.pa……
后台UnityPlayer.UnitySendMessage不生效(Android)
与安卓接口对接时,常使用UnityPlayer.UnitySendMessage给 Unity 发送一些消息。如果 App 进入后台,安卓端代码即使正常执行,Unity 方法也不会被调用。 问题描述 当应用进入后台一段时间后,即使安卓端 Java 代码正常执行,但其调用的UnityPlayer.UnitySe……
Unity Button等悬浮高亮状态不重置的问题(Selectable)
在 Unity 2018.4 及以下版本中,偶现在悬浮状态(hover)时隐藏并再次显示该 UI 后,高亮状态不重置的问题,其中以 Button 居多。 问题描述 UGUI 按钮 A,点击时隐藏自身(SetActive(false))。之后通过其他方式将其开启,发现 A 仍然保持高亮状态,并没有重置。 此情况……
Unity多线程调用安卓方法闪退解决方法
在 Unity 中使用安卓 AAR/JAR 插件时,如果在主线程中调用安卓 java 方法,可以正常调用,但新开一个线程调用时,将会闪退。这里记录下解决方法。 问题复现 有如下测试代码,生成一个安卓对象,并调用其 JAVA 实例方法 TestFunc。 1.同步调用(正常) 在 Unity 主线程中调用安卓方……
Unity Landroid/arch/lifecycle NoClassDefFound报错
在 Unity 项目中集成 Android 插件时,某插件不能使用,查看 Logcat 处报错 NoClassDefFoundError:Failed resolution of:Landroid/arch/lifecycle$Event。 问题复现 在 Unity 中集成AndroidUtilCode插件以……
Unity由灰度高度图生成Mesh并计算UV
偶然看到一个网站有三维地形展示栏目,描述说用 Unity + 灰度图做的,看着挺有意思,就顺便研究下相关的东西。 效果图 我没有对应的实景贴图,因此使用了粒子的 Shader 做颜色渐变用于演示。 基础知识 1.点线面及Mesh 点构成线,线构成面,面及其相关顶点、额外信息等构成 Mesh。在现代 3d 渲染……
给不规则模型(子物体)添加BoxCollider的Editor脚本
前言 经常碰到一些不需要精确碰撞的不规则模型,此时只需要一个BoxCollider把它和它的子物体包裹进去即可。 手动加碰撞盒非常麻烦,不仅中心点不准确,大小也需要手动调整。而利用Renderer组件,可以获取模型的渲染大小及中心点,经过简单的计算就可以自动生成合适的BoxCollider。 实现 1.关键方……
Unity中物体按预设路径简单移动的方法
前言 之前有个需求,要求一个或多个物体按照规定的路径移动。我根据灵魂重新大神所写的脚本做了一点点修改,最终完成了这个需求。 原理 本文内的简单移动不涉及曲线等复杂的东西,所以可以用一个数组保存移动的坐标点,而后通过计算位移坐标的方式依次移动。 实现 1. PathDefine.cs PathDefine脚本用……
Unity直升机飞行HeliHell源码分析(2)-飞行控制
该文章是《Unity直升机飞行HeliHell源码分析》系列文章的第二篇。 源代码下载及前文请见《Unity直升机飞行HeliHell源码分析(1)-摄像机缓动跟踪》。 铰链关节 飞行效果主要通过铰链关节实现,首先分析本项目中铰链关节的结构: 层级视图中可以找到一个空物体ChopperControllerHu……