坏人的博客

怒马鲜衣少年郎

UnityShader常用函数(UnityShader内置函数、CG和GLSL内置函数等)

UnityShader

一、CG和GLSL常用函数 CG语言中的变量修饰符 修饰符 解析 const 变量被定义成常量的话,在程序中,就不能再对该变量赋值,除非const和uniform,varying一起使用。const修饰的变量,需要在声明时给予一个初始值 extern ...

记一次GC查找

GC

在il2Cpp的模式下 try catch 会产生的alloc。如果频繁调用会导致卡顿。 目前测试在Vivo y81s (MTK芯片) 测试有这个问题。

Unity Dynamic batch 动态合批的规则及注意事项

Unity Dynamic batch 动态合批的规则及注意事项

检查Dynamic Batching的规则,可以简单概括为以下几条: 一般情况下,Unity仅支持对Meshes小于900顶点的物体进行Dynamic Batching,如果Shader里使用了顶点位置,法线,UV值,则仅支持300顶点以下的物体;如果使用顶点位置,法线,UV0,UV1和Tangent向量,则仅支持180顶点以下的物体。 如果两个物体的scale刚好是呈镜像的,如...

List 排序

C#

[C# List.sort排序(多权重,升序降序)] 很多人可能喜欢Linq的orderBy排序,可惜U3D里面linq在iOS上会报错,所以就必须使用List的排序。 其实理解了并不难 升序降序比较 sort有三种结果 1,-1,0分别是大,小,相等。 默认List的排序是升序排序 如果要降序排序,也很简单,只需要在前面加一个负号 List<int> tmp ...

Unity中多维材质的Render材质球顺序

Unity中多维材质的Render材质球顺序

Renderer存在多个材质的情况下,是按照绘制模型的顶点索引顺序决定的。 假如第一个三角面绘制使用了材质A,第二个面使用了材质B。那么在导入unity后的材质数组就是[材质A, 材质B]

bundletool dump命令使用守则

bundletool dump命令使用守则

谷歌最新的aab文件需要获取信息 可以用bundletool的dump命令来获取。下列是相关的命令行指令 Description: Prints files or extract values from the bundle in a human-readable form. Examples: 1. Prints the AndroidManifest.xml of the ...

TimeLine更换物体绑定[转载]

TimeLine更换物体绑定

简介:     使用Timeline可以非常方便的进行场景动画的创建和修改,包括物体、声音、粒子、动画、特效、自定义Playable以及子Timeline等多种资源进行整合,从而能够较方便的生成效果很棒的场景动画。 有些时候在使用Timeline进行过场动画制作,要在场景中新建Timeline后把指定要做动画的物体拖入轨道,这样可以在运行的时候,播放该轨道,但是很多时候,我们需要代码去动...

Unity UGUI Mask组件实现原理

文章转载

Masking is implemented using the stencil buffer of the GPU. ==即Mask是利用了GPU的模板缓冲来实现的 #FF5722==,关于模板,打个简单的比方,就像一个面具,可以挡住一部分“脸”的显示一样。Mask的关键代码其实只有一行,如下(为方便理解,对代码做了简化处理): var maskMaterial = StencilMa...

Obi-Rope

Obi-Rope

在绳子特别短的时候 绳子之间的碰撞会有不贴合的现象。 解决方案: 整体场景放大了20倍 然后把绳子的路径改长就好了。

UIParitcles

副标题

在使用了 OnRenderImage 函数的时候, UIParticles在ui上所绘制的图像会看不到。 需要给OnRenderImage添加特性 ImageEffectOpaque 让OnRenderImage在执行完不透明的pass以后就开始处理。不过具体要看是否影响到效果。如果影响效果则不可取。 参考文章: