![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Unity
PresleyGo
只心向前,无问西东
展开
-
状态机和行为树
对游戏NPC的行为控制一般有2种,一种是状态机,一种是行为树。状态机:Unity对人物动画的控制是基于状态机的,如下图:可以看到,每个状态除了包含自身的状态行为外,还需要和其他的状态打交道,需要输入状态机之间切换的条件。因为这一点,导致增加状态会使得状态机越来越复杂。状态机是一种网状结构,耦合性很大。行为树:图片源自:https://blog.csdn.net/goo...原创 2020-01-19 17:01:36 · 15615 阅读 · 0 评论 -
四元数解析
四元数对游戏开发来说是一个绕不过的知识点。四元数之所以比欧拉角好用,是因为四元数没有万向节死锁,并且可以很方便的对旋转轴增量旋转,计算量较小。简单总结一下:四元数当然由四个部分组成,一般描述为: q = ( x, y, z, w ),其中 x, y, z是复数,具体是:q = { xi,yj,zk, w}四元数用来表示绕着某个轴旋转,q里面的xyz部分表示旋转轴,w表示旋转的角度。复数...原创 2020-01-19 13:26:10 · 2403 阅读 · 0 评论 -
Shader的几何数学、线性代数
要会写Shader,需要掌握一些基本的空间知识,比如空间坐标,矢量,线性代数等。下面介绍一些相关知识。坐标系: 常见的坐标系分为二维坐标系和三维坐标系,二维坐标系比较容易理解,它就是我们初中就已经接触过的X-Y轴坐标系,相信大家都已经有所认识,不再赘述。三维坐标系比二维坐标系多了Z轴,也多了一些特性。三维坐标系可以分为左手笛卡尔坐标系和右手笛卡尔坐标系。之所以存在2种坐标系,是因为两...原创 2020-01-19 00:57:56 · 691 阅读 · 0 评论 -
Unity Shader的ShaderLab语法
Shader简要概括:1、Shader在可编程渲染流水线中,所处的位置是顶点着色器和片元着色器,这两个部分是高度可编程的。2、Unity的ShaderLab是Untiy特有的着色器编程语言,他是对Cg/HLSL/的一层封装,是为了简化编程而诞生的。3、Shader脚本和Material密切相关,和Material一起作用在GameObject上。4、Unity的着色器包括2种类型,...原创 2020-01-18 17:10:48 · 390 阅读 · 0 评论 -
Unity渲染流水线
今天过年回家了,不过要准备面试,认真学习下《Shader入门精要》因为里面不单涉及到shader的知识,还有一些渲染的知识,对我来说很有帮助。渲染流水线: 渲染流水线的目的是把场景从3维空间转化到2维空间,并最终在屏幕上显示的过程。之所以称之为流水线,是因为渲染有并行性,每个渲染图元可以并行处理,相互之间没有必然的前后顺序。渲染流水线的过程分为:应用阶段,几何阶段,光栅化阶段。应...原创 2020-01-18 15:21:05 · 347 阅读 · 0 评论 -
Unity 欧拉角万向节锁的原理
网上文章很多,有些写的很详细,但是我个人理解起来有不是很顺畅,把几个重要的知识点整理一下欧拉角:欧拉角用于控制物体的旋转角度,在Unity中欧拉角的表示就是一个Vector3,例如 Vector3 v3 = new Vector3(30,30,30) Unity的欧拉角旋转顺序是 Z-X-Y,这个旋转顺序在不同的软件,行业有所不同,没有一个全球统一标准。旋转顺序:同样的输入值,...原创 2020-01-16 11:12:22 · 850 阅读 · 0 评论 -
简单理解Unity UGUI Anchors
简单快速理解Anchors:1 Anchors翻译为锚点,但其实它不是一个点,而是拥有四个点的一个矩形,当这四个点在一起的时候,就可以看成一个点2 每个UI元素都有Width和Height,所以每个UI元素其实都占用一块矩形空间3 Anchors是描述子UI相对于父UI的位置关系的一种方式4Anchors是父对象上的4个点,子物体UI的4个角和父对象UI的4个点的相对位置保持不变...原创 2020-01-15 14:05:19 · 595 阅读 · 0 评论 -
Unity 的 UGUI Pivot学习
Pivot很常见,也很简单,有时候简单到让人忽视,再简单的东西也希望自己能够熟知,而不是一知半解。Pivot就是中心点的意思,在UGUI里面是长这样的:一个UI控件是一个矩形,我们先建立UI的坐标模型:以左下角为原点(0,0),按照顺时针的方向设矩形的四个角坐标为(x1y1, x1y2, x2y2, x2y1)。现在我门可以计算Pivot.x = 0.5时,x的值。x = (x...原创 2020-01-14 17:26:27 · 1334 阅读 · 0 评论 -
Unity接入ShareSDK的操作详解(Demo)
最近一星期在了解Android接入SDK的过程,之前用Android Studio生成一个简单的jar来实现Unity和Android的相互操作,今天尝试接了下ShareSDK的接入,比预想的容易很多,详细记录一下,也希望对大家有所帮助。环境:Unity2018.2.41夜深模拟器AndroidSDK 29JDKandroid-ndk-r13b一 新建Unity项目...原创 2019-09-19 16:42:06 · 1840 阅读 · 1 评论 -
Unity——EditorWindow的一些常用方法
合理使用Unity的Editor编写工具,可以提高工作效率,平时开发过程中,一些比较频繁,复杂,易出错的操作,可以通过编写工具来简化操作。下面介绍EditorWindow里面常用的API1 void OnDestroy(),类似MonoBehaviour,EditorWindow里面的OnDestroy()会在工具窗口关闭时调用,如果窗口关闭时,你想对之前的操作进行清理或恢复,那么可以写在这个...原创 2019-08-09 14:27:14 · 2280 阅读 · 0 评论 -
编写Unity的Editor工具提交Svn脚本
开发过程中少不了要提交一些代码,文件,虽然操作过程简单,但是容易遗漏提交文件,写个editor工具可以减少文件漏提交的情况。 提交到SVN的代码很简单,不过有一个前提,就是要先配置SVN的环境变量。代码如下:public class SvnTool : EditorWindow{ [MenuItem("GameTools/Svn工具")] public stati...原创 2019-08-09 13:50:42 · 435 阅读 · 0 评论 -
Unity(C#)编辑和保存Excel文件
需要先下载2个dll,一个是Excell.dll,一个是EPPlus.dll将下载的2个dll文件放到Unity目录下的Plugins,比如:"....Assets/Plugins"然后点击Unity的窗口,这个时候unity会自动加载,引用刚刚放进去的2个dll再重新打开VS项目,打开解决方案,点击引用就可以看到这2个dll了脚本添加引用:using Excel; usin...原创 2019-07-30 18:51:13 · 894 阅读 · 2 评论 -
Unity的协程Coroutine实现原理和C#的IEnumerator、IEnumeratable、yield 介绍
Unity的协程实现一直困扰着我,花了很多时间去翻资料也没看出个所以然,今天又去查阅相关博客,总算有个比较清晰的理解,记录一下。 想要弄清楚Coroutine的机制,就必须先弄清楚什么是IEnumerator,IEnumeratable,yield。IEnumerator和IEnumeratable: 这两个接口的代码非常简单,但是理解起来其实也需要一点思路。先贴出它们的代...原创 2019-07-30 18:30:21 · 1359 阅读 · 1 评论 -
Unity资源优化,资源包AssetBundle管理
最近一段时间都在想办法优化游戏资源,记录一下* Unity引擎会自动把Resources文件夹里面的资源打到包体里,这个想必大家都清楚。它这样做的好处是:只要你把资源丢到这个文件夹里,资源就会自动放到包体里。坏处是:如果你的游戏不是单机,并且需要划分出资源包,那么由于Resources文件夹的机制,非常有可能会导致一个游戏包里出现资源(图片等)重复。这是因为在Resources里面的资源...原创 2019-03-14 17:46:15 · 539 阅读 · 0 评论 -
Unity中Material的“Tiling" 和 "Offset"参数介绍
Unity粒子系统和3D模型里面会用到Material,而Material需要用到贴图。有些贴图是单张图片组成,有些贴图是由很多张图片组成的图集。如果Material的图片是从图集里面切割出来,就会需要修改Tiling 和 Offset参数。下面做简单的说明。 Tiling的作用是确定一张图片的尺寸 首先把图集图片的横坐标和纵坐标最大值取1,图片的左下角对应坐标系的原点...原创 2019-01-16 09:21:30 · 3483 阅读 · 0 评论 -
XLua踩坑,入门推荐
今天是2018年7月21日最近投简历,发现Lua是手游必用的语言,于是投入学习XLua,记录一些步骤,问题。希望有所帮助XLua的github 链接,整个XLua项目都在这里https://github.com/Tencent/xLua另外,链接有官方教程,也有很多demo,多看多想。<1> 如何导入XLua1 打开github的链接,下载该项目的zip2...原创 2018-07-21 12:54:31 · 6212 阅读 · 1 评论