Unity3D开发
文章平均质量分 75
unity3D开发相关
Marco&GalaxyDragon
这个作者很懒,什么都没留下…
展开
-
Unity3D FBM噪声算法代码实现
FBMNoise噪声算法FBM是Fractal Brownian Motion的简写,中文翻译为分形布朗运动。FBMNoise是将其他噪声算法用不同的参数输入叠加起来得到的噪声。其可以平滑噪声里的高频区域(即突变区域),使整个噪声变化更平滑。下图展示了FBM的基本形式,简单来说就是将多个不同频率的噪声按照不同的振幅进行混合。代码实现代码非常简单,这里以perlinNoise柏林噪声为例。只要在perlinNoise的原始文件中加入这样一个函数即可 public static f原创 2021-05-31 19:29:28 · 1588 阅读 · 1 评论 -
Unity3D Worley噪声算法代码实现
Worley Noise噪声算法Worley噪声的算法过程如下。首先需要创建一个2D’网格’,'网格’由’格子’构成,这里的’格子’并不是对应单个像素的,而是一个’格子’里包含有许多个像素。(如图所示的一个格子,一个格子由9个像素组成,而’网格’由无数个这种’格子’组成,一个格子由多少像素组成对最后的效果有很大影响)1.每个格子会关联一个随机生成的点,这里称为特征点。这个点必须在格子内部。2.对于每个像素,计算离它最近的特征点的距离,作为该像素的灰度值。那么如何找到离该像素最近的特征点是哪个呢原创 2021-05-31 19:11:46 · 941 阅读 · 0 评论 -
Unity3D Value噪声算法代码实现
噪声算法上一期我们讲了最经典的perlinNoise算法的实现其实漏讲了一点就是噪声算法的一些规则。虽然并没有很严格的规定,但噪声算法大致都要符合以下几点,才能说是一个’有用的’,看上去’正确’的噪声算法。1.无论使用什么随机算法,都要保证在同样的输入时获取同样的输出。(即用同样的种子可以得到同样的结果,这也是为什么很多依赖地形生成的游戏中有’种子’一说)2.无论输入值是几维,返回值为一维类型3.噪声需要具有连续性,如有参数连续性和几何连续性,这样噪声才不会看上去乱七八糟毫无逻辑可言。4.四方连原创 2021-05-31 12:42:05 · 729 阅读 · 1 评论 -
Unity3D Perlin噪声算法代码实现
Perlin噪声算法perlin噪声算法是比较有名的一种噪声算法,现在很多噪声算法几乎都是对原始perlin噪声进行改进的结果,而perlin噪声在游戏开发中也有许多用处,比如地形的生成,纹理材质的生成等等…perlin噪声的算法过程如下,我们以2D perlin噪声为例。首先需要创建一个2D’网格’,‘网格’由’格子’构成,这里的’格子’并不是对应单个像素的,而是一个’格子’里包含有许多个像素。(如图所示的一个格子,一个格子由9个像素组成,而’网格’由无数个这种’格子’组成,一个格子由多少像素组成原创 2021-04-21 21:57:33 · 2001 阅读 · 4 评论 -
你知道Unity3D中一个cube有几个顶点吗?
本文的标题是一个疑问句,也是我之前学习过程中觉得挺值得思考的一个东西。如果你对unity3d了解不够深入的话,我想这个问题的答案肯定不像你想的那么简单。第一层有的人可能会觉得问题不是太简单了嘛。回忆一下数学里的立方体定义,一个立方体自然有且只有8个顶点。要是这么想,那你肯定只在第一层。想知道unity3d里的cube里有几个顶点吗?直接打开编辑器查看就可以了,当然不是在运行时查看stats窗口,因为即使是空场景也包含了很多隐形的顶点,大部分隐形顶点都属于场景外面用来贴天空盒子的一个包围盒。正确的查看原创 2021-05-31 20:57:45 · 2339 阅读 · 7 评论 -
Unity3D Mesh类的使用以及网格地形生成
三角面片的生成一般来说我们开发中对mesh类的接触并不多,mesh类可以让你在unity3d里动态生成一个网格,一般用在地形或者建筑生成,或者是一些建模或者优化插件中。这里简要介绍一下mesh类的用法。要生成一个可以正常显示的mesh需要以下几步。1.设置该网格所有的顶点位置(局部坐标)2.设置每个顶点属于哪个三角形3.如果需要接受到光照,需要设置每个顶点的法线4.如果需要贴材质,需要正确设置uv我们先以一个三角形为例首先new一个mesh类,然后创建一个三维向量数组,最后赋值。1.设置原创 2021-05-31 20:13:29 · 4273 阅读 · 2 评论 -
unity3d内存分析工具memory profiler
unity在2018.4之后的版本中新增了内存分析工具。虽然在之前的版本中也能在Profiler 中的memory模块中看到大致的内存使用情况,但是不能具体看到细节,诸如哪个纹理占用了多少内存。安装新的内存分析工具过程如下打开package manager,选择高级选项勾选show preview package,这个选项可以使用非稳定版的包,意思就是这个工具现在还没有正式发布,还在测试阶段。不过实际上使用起来没什么问题然后就可以搜索到memory profiler这个包,进行安装安装完成后原创 2021-02-17 16:15:24 · 2952 阅读 · 1 评论 -
设计模式在游戏中的运用(工厂模式)
工厂模式分为简单工厂,工厂方法,抽象工厂三种模式。 我们先来说说为什么要使用工厂模式,因为我主要是做游戏的,我们这边就拿游戏来举例子,假设有一个rpg游戏,需要在地图中加载怪物,因为这种需求可能从多个地方触发,比如碰到一个陷阱加载几个怪物,然后可能根据特定时间又要加载怪物,还可能使用一个道具加载几个怪物。 如果我们把创建怪物的过程分别写在陷阱的处理,时间处理,道具处理过程中,则创建怪物的逻辑就分原创 2017-09-26 14:35:06 · 2144 阅读 · 0 评论 -
unity3d编写缓动跟随摄像机
首先声明target为需要跟随的物体public Transform target;声明跟随距离,以及跟随距离的增长速度,使用鼠标滚轮可以拉伸镜头public float viewDistance = 8f;public float viewDistanceMoveSpeed = 1f;声明缓动系数public float springRatio = 0.05f;然后在LateUpdate函数里编写代码,因为摄像机追踪需要发生在物体移动后。首先鼠标滚轮可以拉伸镜头viewDistan原创 2021-02-17 15:06:43 · 1131 阅读 · 0 评论 -
unity3d编写2D缓动跟随摄像机
首先声明target为需要追踪的物体public Transform target;之后因为是缓动,肯定要声明一个移动速度和缓动系数public float moveSpeed=5;public float spring = 0.01f;因为是2D摄像机,所以一个轴是不需要动的,也不需要旋转操作。我们这里以俯视相机为例,此时相机从上往下看,旋转属性为然后在LateUpdate函数里编写代码,因为摄像机追踪需要发生在追踪物体移动后。我们这里是y轴不需要动,先算出和追踪物体的偏移 offs原创 2021-02-17 11:13:29 · 457 阅读 · 2 评论