Unity
文章平均质量分 58
Unity
jjinglover
这个作者很懒,什么都没留下…
展开
-
零基础入门Unity Shader(八)
这里的SV_TARGET就是指定输出颜色到RenderTarget的语义,其实我们也可以采用Struct的方式,就是像应用阶段到顶点与顶点到片断一样,只是由于平时我们只需返回一个颜色所以就无需再用一个Struct了(你非要用也是可以的)。顶点着色器在处理完应用阶段传过来的数据后,会需要输出并传入片断着色器,这个时候我们同样需要定义一个结构来承载其中的数据,同样的,输出给片断着色器的值也需要语义来标识。虽然这两种语义我们可以根据需要自由定义,但是,它并不是可以无限定义的,不同的GPU硬件有不同的数量限制。转载 2024-06-17 16:18:59 · 106 阅读 · 0 评论 -
零基础入门Unity Shader(七)
如上图所示的代码中,我们在应用程序阶段把模型的顶点位置信息(float4 vertex:POSITION)传输到了几何阶段,然后在顶点着色器中利用UnityObjectToClipPos矩阵转换把模型顶点坐标从本地转换到齐次裁剪坐标中,并输出转换后的坐标(SV_POSITION)到光栅化阶段中,最后在光栅化的片元着色器中我们给所有像素都返回了一个颜色值_Color。,就是因为它和一根管子的概念很像,我们可以理解为这根管子的末端连接的是我们最终的显示屏幕,管子的起始端连接的是我们的原始素材。转载 2024-06-17 16:17:41 · 59 阅读 · 0 评论 -
零基础入门Unity Shader(六)
在Cg/HLSL中我们可以通过_Color来访问颜色,也可以通过_Color.rgba来访问,这里的.rgba就是表示颜色的四个分量,如果只想获得颜色的红通道就是_Color.r。在Shader中,我们在Properties中定义的变量是为了在材质面板中显示并方便我们调节,如果要在Cg/HLSL中使用的话就必须要重新声明一次(要求命名一样)。好了,现在我们已经了解了Cg/HLSL中的数据类型,那么Properties中的与Cg/HLSL中的是如何对应的呢?sampler2D_half(中精度2D纹理)转载 2024-06-17 16:16:33 · 38 阅读 · 0 评论 -
零基础入门Unity Shader(五)
顶点着色器与片断着色器的执行并不是1:1的,举个例子,一个三角面片,只有三个顶点,顶点着色器只需执行3次,而片断着色器由最终的像素数来决定,执行几百上千都是很正常的。经过顶点着色器的处理,我们已经得到了最终显示在屏幕上的顶点矩阵,内部会自动进行插值计算,以获得当前模型的所有片断像素,然后每个像素都会执行一次片断着色器,得到最终每个像素的颜色值。这一节的内容对于初学者来说学习曲线有点陡,如果没有理解也没有关系,先照着做,就当是固定规则好了,在后续我们会慢慢的进行扩展介绍,到时自然会清晰明了。转载 2024-06-17 16:15:14 · 33 阅读 · 0 评论 -
零基础入门Unity Shader(四)
如果我们不希望用户去调节此参数,或者为了使性能极致化,我们可以考虑把它们的代码功能移除掉,但一旦如此,材质面板中的参数将不起作用,这时我们就可以使用[NoScaleOffset]属性标记来将它们隐藏掉。默认值,当第一次指定此Shader时,或者在材质面板上执行Reset时,属性的值会自动恢复到默认值,不同的类型具体写法也不太一样,下面会结合类型进行详细说明。属性的名称,也就是变量名,在Shader的CG代码中就是通过这个名称来调用此属性内容的,在外部利用脚本调用时也是这个名称,所以一定要用英文。转载 2024-06-17 16:12:01 · 45 阅读 · 0 评论 -
零基础入门Unity Shader(三)
备胎,就是备胎的意思,有的时候我们写的Shader难免在一些机器上会出现不支持的问题(最终呈现的就是显示成粉红色),而这个时候我们只要添加了FallBack,并且在后面的双引号内写上了其它Shader的有效路径名称,那么在碰到不支持的硬件时这个Shader就会自动切换成FallBack内的Shader,如果FallBack内的Shader也不支持呢,那就继续从FallBack内的Shader中再找FallBack。在材质球中的路径会变成如下,其中双引号中的/表示的是创建子层级。转载 2024-06-17 16:10:45 · 149 阅读 · 0 评论 -
零基础入门Unity Shader(二)
标准表面着色器,是一种基于物理的着色系统(使用了Physically Based Rendering(简称PBR)技术,即基于物理的渲染技术),以模拟现实真实的方式来模拟材质与灯光之间的关系,可以很轻易的表现出各种金属反光效果,同时此种Shader的书写逻辑也更符合人类的思维模式。它代表的是当前这个材质球是与哪个Shader绑定关联的,我们可以点击它的下拉列表框从中进行选择,前提是我们知道我们想关联的那个Shader的名字路径是哪个,这一点我们在后面会具体说明。效果华丽丽的,性能也是妥妥的!转载 2024-06-17 16:08:11 · 47 阅读 · 0 评论 -
零基础入门Unity Shader(一)
但是Surface Shader也有它的局限性,就是Vertex/Fragment Shader能实现的效果,Surface Shader不一定能实现,反过来则成立,Surface Shader能实现的Vertex/Fragment Shader则一定可以实现。Surface Shader其实就是Unity对Vertex/Fragment Shader的又一层包装,以使Shader的制作方式更符合人类的思维模式,同时可以以极少的代码来完成不同的光照模型与不同平台下需要考虑的事情。转载 2024-06-17 16:05:53 · 35 阅读 · 0 评论 -
Unity 报错:SSL CA certificate error
注意:如果是本地调用使用 http 不要使用 https,使用https需要证书验证在本地使用会报证书验证错误。证书验证失败 和 SSL CA证书错误。通过以上方式就能解决。转载 2024-05-23 13:50:34 · 500 阅读 · 0 评论 -
Unity实现TableView
基于Scrollview封装的TableView,实现对视野外的Cell回收利用,减少创建Cell的开销。原创 2024-05-18 16:48:04 · 357 阅读 · 0 评论 -
Unity Scrollview设置大小
【代码】Unity Scrollview设置大小。原创 2024-05-06 18:35:08 · 269 阅读 · 2 评论 -
Unity3d 学习之按钮绑定事件
选中待绑定的按钮->点击Button组件中On Click下方的+号->把绑定脚本的载体赋值给新增属性->点击No Function下拉框选择脚本中对应的函数。原创 2024-04-28 10:30:32 · 803 阅读 · 1 评论 -
Unity3d 如何使用Protobuf
如何在unity中使用protobuf转载 2024-04-11 17:18:24 · 504 阅读 · 0 评论 -
Unity动画系统详解:在Unity中如何制作动画?
Unity中内置了强大的动画系统,可以支持在Unity内制作动画,也支持从外部导入动画。动画系统基于一种名为Animation Clip(动画剪辑)的资源,这些资源以文件的形式存在工程中。这些文件内的数据记录了物体如何随着时间移动、旋转、缩放,物体上的属性如何随着时间变化。每一个Clip文件是一段动画。这些动画可以在Unity中直接制作,也可以由美术同学在3D建模软件中制作并导入到Unity中。转载 2024-04-08 15:29:08 · 1374 阅读 · 0 评论 -
Unity3d攻击范围的绘制
Unity3d攻击范围的绘制。转载 2024-03-26 15:42:09 · 169 阅读 · 0 评论 -
Unity中设置允许的最大帧数,锁定游戏的最大帧率(游戏锁帧)
在实际的游戏中一般会对项目进行一个允许范围内的最大帧率限制,锁定在某个玩起来能够流畅的帧数。可以保证游戏运行的稳定(不会让运行游戏的时候帧数忽高忽低),也可以减少性能的消耗(不至于耗尽所有的硬件性能)。Vsync Count 指的是 垂直同步 ,垂直同步的主要作用不是为了限制帧率,而是为了防止出现画面撕裂等现象。比如王者荣耀中就有一个玩家可定义帧率的选项,帧率 :节能(30帧)、高(60帧)、超高(90帧)玩家可以根据自己的设备性能情况开启不同的帧率,已达到自己满意的流畅度的同时,让手机不会那么卡顿。转载 2024-02-19 13:57:34 · 3034 阅读 · 0 评论 -
Unity3d实现简单的战斗
使用u3d实现一个简单的战斗demo,记下学到的知识点,以备后查。原创 2024-01-29 17:24:06 · 639 阅读 · 0 评论 -
Unity3d 学习笔记
俯视角,单位朝向目标的角度计算。原创 2023-12-12 16:21:09 · 98 阅读 · 0 评论 -
Unity3d 灯光阴影开启,法线贴图出现BUG
URP项目打开灯光的阴影后,法线贴图出现BUG。解决方案:按照下图所示调整材质的选项即可原创 2023-11-28 17:05:13 · 613 阅读 · 0 评论 -
Unity3D 鼠标拖动地图实现
1.鼠标按下记录鼠标位置;2.拖动时设置拖动偏移量;原创 2023-11-21 15:27:22 · 345 阅读 · 0 评论 -
Unity UGUI的Slider(滑动条)件组的介绍及使用
Slider(滑动条)是Unity UGUI中的一种常用UI组件用,于在用户界面中实现滑动选择的功能。通过拖动滑块,用户可以选择一个数值范围的内值。转载 2023-11-20 15:28:51 · 1413 阅读 · 0 评论 -
Unity3D 监听键盘事件
Unity3D 监听键盘事件。原创 2023-11-15 11:47:22 · 289 阅读 · 0 评论 -
Unity使用NavmeshObstacle解决多人寻路终点堵塞问题以及解决NavmeshObstacle打开抖动(瞬移)问题
是因为这是在同一帧执行的,虽然写了关闭挖洞,但是在还没来得及真正的关闭挖洞就又打开了navmeshAgent,此时navmeshAgent判断自己不在寻路网格上,于是把自己移动到最近的寻路网格上就导致了顺义。此外:如果你想各个单位能够更好的到达终点则每个单位的终点并不应该设置为同一个点,你可能需要根据每个角色的寻路半径来预先随机设置每个角色会到达的对应的位置,这样在寻路时才不会互相推挤。解决办法就是分为两帧执行,在一般的逻辑中这完全是可以接受的,因为从静止到移动确实需要花一些时间。你也可以直接改成协程。转载 2023-11-10 18:28:18 · 784 阅读 · 0 评论 -
Unity 3D 调整cube的颜色
2.调整Material的颜色,然后将Material拖到对应的cube上。1.选中Assets后,右键->Create->Material。原创 2023-11-08 17:12:56 · 2271 阅读 · 0 评论 -
Unity3d学习 创建我的第一个工程
搭建Unity开发环境1.下载Unity并安装(官网:http://www.unity3d.com/)2.下载Visual Studio并安装(官网:https://visualstudio.microsoft.com/)安装时记得勾选 【使用Unity的游戏开发】创建工程:1.启动Unity创建工程2.在Project窗口选择Assets,右键选择Cr...原创 2019-12-01 21:23:00 · 588 阅读 · 0 评论