![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Unity
文章平均质量分 60
刘一码
专注AR、VR以及游戏领域
展开
-
【Unity】【Android】问题记录
将下面的内容加入到strings.xml文件中<string name="game_view_content_description">Game view</string>原创 2021-11-23 10:43:17 · 6952 阅读 · 0 评论 -
【Unity】运用CommandBuffer实现发光特效
首先看下效果: 我们想要实现以下效果:首先确定实现的思路:1、将发光物体单独绘制一遍,并计算在环境中的遮挡,剔除被遮挡的像素,保存绘制后的纹理。2、将发光物体单独绘制后的纹理,添加模糊效果,并向外扩散。3、将模糊处理后的纹理,与相机渲染的纹理进行叠加,形成最终的效果。首先我们看第一步:如何将发光的物体单独绘制一遍并保存纹理?这时候就用到Unity中的CommandBuffer了。CommandBuffer可以简单理解为:创建一系列渲染指令,然后在某个阶段执行这些渲染指令。网上有很多相关的教程和案例,在这就不原创 2022-07-03 22:05:50 · 2126 阅读 · 0 评论 -
【渲染】Unity制作暴风眼效果
前段时间偶然在短视频app上看到一个暴风眼的壁纸,恰巧那段时间在学习体积云,于是便有了运用体积云方案制作一个暴风眼效果的想法。效果如下:该效果以体积云为基础实现,但本文不会对体积云的实现进行太多的讲解,如果你需要了解体积云,可以看我之前翻译的一篇体积云的文章:《GPU Pro7——实时体积云》。第一步:确定云的边界,暴风是一个圆柱形状,我们的视角是在圆柱内部,所以我们先用复制过来的代码做个射线与圆柱的碰撞检测:第二步:确定云采样函数,该函数采用体积云文章中的方式。我们将对该采样函数进行以下修改:1:重原创 2022-06-05 17:04:54 · 760 阅读 · 0 评论 -
【Unity】Shader问题记录
1、精度导致的问题:问题表现:经过时间越长,通过uv采样就会有跳跃(卡顿)感。方法:从half变为float之后,该问题消失原创 2021-11-19 14:11:50 · 2920 阅读 · 0 评论 -
【Unity】一文看懂编辑器扩展(持续更新)
unity提供的编辑器扩展文档其实相对较少,而且涉及到的类很多,经常会搞得开发者一头雾水,无从下手。但是只需要对这些功能进行分类、多看API,就可以快速了解unity提供的编辑器功能。本文为个人在编辑器扩展开发中总结的知识点,了解以下这些知识,编辑器扩展开发将不再犯难。编辑器扩展中重要的几个类(本文只列举个人经常用到的类):Editor、EditorWindow、EditorGUI、EditorGUILayout、GUI、GUILayout、EditorGUIUtility、EditorUtilit原创 2021-02-20 10:53:17 · 2414 阅读 · 0 评论 -
【Unity】编辑器扩展之——TreeView
官方手册:https://docs.unity3d.com/Manual/TreeViewAPI.htmlUnity中的TreeView可以实现这样的效果:或者这样的效果:TreeView可以实现hierarchy面板效果,元素可以进行点击、双击、重命名、拖拽、展开收起等效果(可以查看对应api)。使用treeview,大概的结构如下:使用中的注意点:1、每行绘制函数: protected override void RowGUI(RowGUIArgs args)..原创 2021-01-21 17:26:05 · 3261 阅读 · 0 评论 -
【Unity】AR开发踩坑记录,持续更新...
这篇文章主要针对AR项目中遇到的问题做一个记录,也希望可以帮助大家在开发中少踩坑,会持续更新。开发工具:Unity 2018.4,unity ARFoundation目标:与另一个unity项目一起整合到iOS和Android 原生APP中。一、包体优化1、删除不必要的代码2、删除不需要的模块3、iOS脚本剔除会误删代码,导致运行时报错,使用link.xml可以标记哪些脚本不会被剔除4、Android设置中的目标架构只勾选一个ARMv7,不必选择x86,目前市场上主流的手机都是A原创 2020-09-02 14:26:41 · 569 阅读 · 0 评论 -
【Unity】ViewportPointToRay和ScreenPointToRay的区别
最简单的辨别方法就是:ScreenPointToRay:根据屏幕上的坐标点(范围是0~屏幕尺寸)获得射线ViewportPointToRay:根据视口的上的一个坐标(范围是0~1)获得射线以下这两段代码效果是相同的:void Update(){ var ray = Camera.main.ScreenPointToRay(new Vector3(Screen.width, Screen.height)*0.5f); Debug.DrawLine(ray.origin, r原创 2020-07-21 11:38:19 · 4183 阅读 · 0 评论 -
【Unity】对象池设计
对象池模式,本质就是循环利用对象,需要使用时从池子里拿出来,不需要使用时放入到池子里而不是直接删除。Unity开发中,经常会出现频繁地删除和创建物体的情况,对象池模式可以极大地提高性能。网上关于对象池的设计也有很多,这里介绍一下我设计的对象池的特点:1、采用泛型,可以创建不同类型的对象池。2、可以自定义放入对象、拿出对象的回调。3、实例化完全在对象池类中实现,方便快捷。使用示例:初始化对象池: public LineRenderer lineRenderer;原创 2020-05-19 18:10:44 · 261 阅读 · 0 评论 -
【Unity C#】OpenDRIVE中线条的实现
最近在做地图相关的项目,研究了一下OpenDRIVE,这篇文章主要记录了OpenDRIVE中的几类线条的实现,分享给大家,希望对大家有所帮助。OpenDRIVE中主要的线条有以下几种:直线(line) 弧线(arc) 螺旋线(spiral)只要有这三类线条便可以画出路的引用线(reference line)。先看一下在Unity中的效果(所用案例地址):官方案例unity中还原出的路线首先根据OpenDRIVE官方文档提供的数据格式,创建出各种线条的类。文档中所有线条都继承自geo原创 2020-05-19 14:46:14 · 1856 阅读 · 1 评论 -
【Unity】运用协程设计任务执行队列
在开发的时候,经常会遇到按照顺序执行一些任务的情况,但是其中一些任务必需满足一定条件后才能执行下一个任务,例如进入游戏后需要依次执行检查资源(等待与服务器对比完成)、下载资源(等待下载完成)、加载资源(等待加载完成)、初始化、进入游戏这几个方法,这个时候就容易逻辑混乱和写出一些臃肿的代码。于是我针对这个情况写了一个任务执行队列功能。思路是将每个需要执行的方法都封装为一个IEnumerator,...原创 2019-12-19 17:52:21 · 2092 阅读 · 6 评论 -
Ml agent爬坑记录——训练时效果好,使用训练出的模型效果差
按照官方的教程安装了所有环节,所有步骤都按照教程去做,训练到最后,看了一下效果,确实不错,结果使用训练出的模型效果却很差。解决办法:把python升级到最新(发布该文章时使用的是3.7),把TensorFlow升级到1.14.0(发布该文章时,这个版本没有问题)...原创 2019-11-01 15:24:11 · 810 阅读 · 0 评论