- 博客(14)
- 资源 (1)
- 收藏
- 关注
原创 Unity 中 DontDestroyOnLoad() 方法
往往不怎么清楚unity 这个方法的具体含义的时候,很容易犯一些令人苦笑不得的错误。比如,有一个物体挂载着一个脚本,里面执行了一句DontDestroyOnLoad(this)。乍看之下没任何问题。但是如果考虑下如下的情形,你是不是也曾经头疼过?比如:有多个场景之间来回切换,你会发现,你的这个挂载的脚本的物体越来越多。 其实,unity的官方API里说的很明确,加载下一个场景的时候,其他的资源都会被清掉,但挂载了这个脚本的物体会留在下一个场景中。这样造成的问题是,场景里有多个该脚本的实例,导致 ...
2020-09-08 20:53:28
10219
1
原创 体素游戏中,环境光剔除(Ambient Occuling)实现过程中的各项异性问题的解决
在上一篇文章中(https://blog.youkuaiyun.com/zhetianyun/article/details/103054640),我们实现了体素的环境光剔除功能,但是忽略了一个视觉上的小瑕疵:在体素的某一个平面上,由于顶点连接方向(顺时针和逆时针)的不同,导致各向异性问题的产生,这里用实际效果展示更形象些: ...
2020-08-24 13:07:10
345
原创 体素风格游戏中,环境光剔除(Ambient Occuling)技术的实现
首先,解释清楚什么是环境光剔除(Ambient Occlusion short for AO)AO技术可以让虚拟环境更加真实而有效地模拟出现实世界的光照,其基本思想是,从一个点的每个方向散射的环境光,被场景远处的地方接收到的数量,估算出接收到的光数量,就代表该点处的AO值。所以,有了这个想法的基础,通过数学上或经验的论证,可以给定点可见的半球表面积来计算: 给场景添加环境光剔除,可以极大的提高视觉保真度,正因如...
2020-06-11 19:11:37
589
原创 Unity通过WWW 类从persistentDataPath(或从网络)加载图片之内存暴增的问题
问题描述 在游戏中过程中,我们可能需要动态的加载某一些图片。这些图片不一定要在build的时候放在包中,那么就需要在可读可写的路径persistentDataPath下加载,或者给一个网络地址(URL)下载。无论采取哪种,需要用到Unity的WWW类来获取。 值的高兴的是,www有一个关于如何获取下载的图片的API:www.texture字段和www.LoadImageI...
2020-04-02 16:45:02
1470
3
原创 Unity中使用截屏图片提取特定内容的方法的探讨
需求分析 有时候,我们的策划同学需要对摄像机渲染的图像进行截屏保存,然后从这张图片中提取出我们想要的内容,以做后面的其他用途(比如用于展示、美术再加工处理,等等)。 这个需求中,对于我们程序来说,可以拆解长两个问题:第一,如何截屏;第二,如何提取截图中指定的内容。这两个问题不能分割开来看待。如果单独考虑使用Unity的API截屏很简单,但是这就给第二个问题的解决造成了很大的困难。...
2020-03-30 15:18:50
841
原创 TextMeshPro不显示文字内容?看看这里是不是这里出了问题
问题:在同一个场景中,同时使用 TextMeshPro 和 TextMeshProUGUI 组件的时候,如果不注意某些细节,有可能导致显示的文字在屏幕上渲染不出来,但在场景中查看,确实正常显示。原因:在使用TextMeshPro的时候,在canvas上还是在canvas外,...
2020-03-07 13:53:16
7041
原创 游戏总是打断播放其他应用的声音?看这里
当进入应用之后,其他应用播放的音乐被暂停,有时候是不符合策划的要求的,所以我们程序员开始搜怎样关闭这个功能。所以你开到了这里。,在unity出包的时候,打开Player Settings,在 Other Settings 一栏的众多选项中,有一个“Mute other sounds when application start”,如果你想让你的应用在运行的时候不让其他应用播放音乐,请勾选,否则...
2020-03-07 13:29:43
2830
1
原创 在unity中,自己动手实现多线程作业功能----使用C#的线程
疫情当前,呆着家里,总结关于工作中遇到的问题和解决思路,是一个很好的学习机会,珍爱生命,懂得感恩,一切会好起来的。一、写在之前之前的一篇文章中https://blog.youkuaiyun.com/THUNDERDREAMER_OR/article/details/104213670,我提到了网格规划算法的计算量比较大,对三个切面分别进行计算的时候,使用多线程是一个不错的想法,实际上我也是这么做的。现...
2020-02-17 16:17:03
1127
原创 单向链表C#的实现----以面向对象的思维理解数据结构的构建
为什么要使用单向链表? 首先,单向链表的删除非常方便,如果你的程序设计中,需要对数据删除操作频率高,那么,以单向链表作为数据结构是一个不错的选择。链表的删除操作只是需要删除的位置删除数据,不需要对该位置后面的元素一一移位,这样大大提高了删除操作的效率;插入操作同样的,由于是非顺序非连续的存储结构,链表在插入时的复杂度是O(1),仅需创建一个节点修改该位置处的指针关系,而数组结...
2020-02-13 18:58:29
329
原创 游戏数据安全----一个关于数据加密的简单代码实现
1. 一个思路 一般游戏数据的安全性,在项目的后期才会考虑到,尤其是像休闲益智类、玩法吸睛而且迭代快速的游戏类型,一旦在市场上出现,为了避免相同类型竞品短时间内蜂拥而至,游戏数据的安全性就显得更为重要,进而影响到游戏团体的盈利模式。 游戏数据安全一般是指对游戏中的资源进行加密,主要是代码层的加密(Unity使用开源mono运行商开发的代码逻辑,读取Assembly-CS...
2020-02-12 12:20:48
2454
原创 从《我的世界》了解“体素”引擎的工作,----网格优化算法的比较
一. 写在之前 目前正在制作一个3D体素类的项目,大量的模型带有大量面数的模型在Unity中直接跑不动,FPS在15以下,考虑到一个场景中不仅有一个模型需要显示,想要提高游戏流畅度,必须对这些模型的网格面数进行深度优化,至少优化到5000面以下。先在网上调研了很多的资料,发现了一个确实很实用,但是不那么容易理解的优化算法----贪心网格规划算法(GreedyMesh,翻译过来的)。...
2020-02-07 18:52:52
3148
2
原创 Unity中关于图形切割的问题----计算机图形学之三角化(Triangulation)在游戏中的应用
写在之前 最近的一个2D项目中,要求对一个方块不断进行切割,切掉较小者,留下较大者,如此,便引出了一个问题:不同形状图形的数据的更新。而图形的数据结果的计算,就涉及到了计算机图形学相关的知识---三角化的概念边产生。 2.问题拆分 a> 一个简单的图形(此处仅指2D)--如正方形,在代码中的表示方法 b> 三角化概念以及三角化的方法...
2020-02-05 18:46:56
2102
原创 Unity中关于AssetBundle的相关知识总结
什么是AssetBundle? Asset在英文中是资产,有价值的东西的意思,在Unity中翻译过来就是:资源,这个资源囊括了音频(audioclip)、游戏模型文件(.FBX)、纹理贴图(Texture)、材质(Meterial)、3D模型(3DModels),这些资源以文件的形式被保存在电脑的硬盘中。(既有Unity内置格式的,如prefab,Material等,也有其他内...
2019-10-11 12:02:43
725
GreedyMeshMeth.rar
2020-02-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人