插件单
前言记录有用的插件以及相关资源,包括但不限于:要学习的,打折的,在愿望单的,已购的等等。
插件列表
Easy Save - The Complete Save Data & Serializer System
数据存储与序列化插件。
$69,unity Assert store已加入愿望单,关注圣诞节等节日促销。
持续更新…
UnityShader学习总结:基础初级篇
前言上个月读了《Unity Shader 入门精要》这本书,原本准备将学习笔记整理一下,作为博文发布出来,复习的时候检查了一下。发现很大程度上与书籍内容相同,有点抄书的嫌疑,想了想还是决定整理归纳一下,顺便查缺补漏,看看有没有被遗落的知识点,内容极其主观,特此声明。
基础部分:渲染流水线与Unity Sahder基础这本书的基础部分主要是由渲染流水线的介绍和Unity Shader的基础写法构成的。这部分内容主要分布在全书的第2章与第3章。第一章主要介绍了一下全书内容结构,并没有涉及到太多的知识点。第4章主要介绍一些涉及图形学相关的数学知识,关于这部分内容,想要深入学习的同学可以去阅读一下相关书籍《3D游戏数学》。这本书详细介绍了3d游戏中,涉及图形学的数学概念,各个空间变换所需要的矩阵计算方法的底层原理等等。
渲染流水线由于在大学期间学习过龙书(DirectX12 3D游戏开发实战),还跟着老师写过论文(混),所以对渲染流水线还是有着基本上的认识的,虽然DirectX12的渲染流水线与Unity的渲染存在一定程度上的差别,但是基础原理与专有名词还是相同的,对理解起来不会存在太大的难 ...
Lua学习总结
2023年10月1日更新
前言工作一直在写 Lua 相关的游戏逻辑脚本,但一直没做个总结,前端时间看了一下 Lua 语言的底层逻辑,做个记录总结让以后可以拿出来翻翻看。文章有点长,可以通过索引查找对应内容。
Lua 的底层与编译语言类型与区别Lua 语言是以 C 语言为底层的脚本语言(动态语言,运行时编译),与 C 语言,C++等静态语言(静态语言,运行前编译)不同。其中 Lua 的执行主要运行流程如下:
程序员编辑 Lua 脚本代码,保存.lua 文件
语法词法分析,并生成指令集(*lua.byte 文件),属于编译过程
Lua 虚拟机执行指令集,属于执行过程
输出结果
这里放一张由大佬(烟雨迷离半世殇)做的对比表格:
语言
编辑
预编译
运行时编译
执行
Lua
编写 lua 文件
无
虚拟机读取字节码并转换成虚拟机指令,汇编器编译成机器码
CPU 执行机器码
C#
编写 cs 文件
被 C#编译器编译成 dll,包含 IL 代码
CLR 使用 JIT 编译把 IL 转换成机器码
CPU 执行机器码
Lua 语言编译原理Lua 语言的的编译,首先需要明白 ...
Unity渲染顺序探究
2023年10月7日更新
前言前段时间在群里看见一个有关于求问Unity渲染透明物体与不透明物体渲染顺序的问题,有群友提到了深度与渲染顺序有关,就去找了相关资料学习,并在这里记录一下。
Unity的UGUI层级渲染顺序管理主要是层级管理可以看下方这一张图片,其中RenderQueue的数值关系到了渲染队列的划分。unity中的渲染队列主要有5个,分别是背景渲染队列,不透明渲染队列,透明度测试渲染队列,透明度混合渲染队列以及特殊物体渲染队列(主要用来渲染同一个物体存在相互遮挡且透明的情况)。其中最主要的不透明与透明渲染队列的划分也就如下图所示,是以2500为分界线。
摄像机的Depth:值越大,渲染物体越靠上,摄像机会根据Depth从小到大的顺序,渲染各自Culling Mask的层。
RenderQueue:渲染物体的透明度,小于2500的先渲染
SortingLayer:SortingLayer在Inspector面板中点击Tag -> AddTag -> SortingLayer,可以添加自定义的sortingLayer,默认的sortingLayer为Defaul ...
A*算法
定义一种在静态路网中求解最短路径最有效的直接搜索算法。
计算公式F=G+H(f*(n)=g*(n)+h*(n))
G:代表从起点A移动到指定方格的移动代价(路径长短)
H:代表从指定方格移动到终点B的移动代价(路径长短)
G点的计算PS:需要使用到开放列表中父节点的应用
假设角色横向与纵向的移动代价是10,对角线的移动代价是14(平方根),。计算G值的方法就是找到父节点的G值,再根据横纵向,还是对角线为G值加上10或14。
H值的估算(Manhattan 方法:试探法)PS:方法有很多不同的,可上网查找。
计算从当前方格横向或纵向移动到达目标所经过的方格数,忽略对角移动,然后把总数乘以 10。
openlist(开放列表)与closelist(封闭列表)
openlist:记录所有被考虑来寻找最短路径的网格集合(经过路径的所有相邻节点逐渐加入该列表)
closelist:一个记录下不会被考虑的网格集合(已经被选中的路径点加入该列表)
寻路步骤:
简化搜索区域,将搜索区域简化成2维数组,数组中每一项代表一个格子。状态分成可走与不可走。
从起点A开始,将其加入方格组成的o ...