Unity3D
文章平均质量分 62
进击的Shader
这个作者很懒,什么都没留下…
展开
-
解决 Unity3D AssetBundle 异步加载与同步加载冲突问题
解决 Unity3D AssetBundle 异步加载与同步加载冲突问题原创 2022-09-10 18:22:09 · 3030 阅读 · 1 评论 -
如何修改Unity3D UGUI 默认 shader 实现自定义 UI 表现
如何修改 Unity3D UGUI 默认 shader 实现自定义 UI 表现原创 2022-08-04 10:12:50 · 5967 阅读 · 0 评论 -
.NET 之 垃圾回收机制GC
.net GC转载 2022-07-06 11:23:52 · 1860 阅读 · 0 评论 -
Unity 模型直接用 Scale 负数做镜像原理
Unity 模型直接用 Scale 负数做镜像原理转载 2022-06-22 11:11:40 · 1019 阅读 · 0 评论 -
Unity Atlas 图集资源依赖打包规则
Unity Atlas 图集资源依赖打包规则原创 2022-06-04 14:11:20 · 1555 阅读 · 0 评论 -
GameFramework.ObjectPoolManager 详解
总图1.存储实例想要使用对象池,存储实例的类型必须继承于ObjectBase。 其中诸多属性决定了该实例在池中的生命周。其中索引相关的属性为:Name 对象的名称Target 对象携带的内容这两个属性均可以用来在池中索引对应的 ObjectBase 实例。释放相关的必要属性为:Locked 锁定状态,锁定状态为 true 不会被释放。CustomCanReleaseFlag 自定义释放标记,自定义释放标记为 true 不会被释放,可在继承的类中编写逻辑通过控制释放标记原创 2020-09-24 10:13:23 · 370 阅读 · 0 评论 -
Transform.SetSiblingIndex() 设置规则
1.SibingIndex 从0开始依次向后增加12.设置SibingIndex 时,如果设置的索引>当前索引,原有索引上的元素至当前元素之下的元素一律向上移动(索引-1)3.设置SibingIndex 时,如果设置的索引<当前索引,原有索引上的元素至当前元素之上的元素一律向下移动(索引+1)4.设置SibingIndex 时,大于ChildCount-1 等于 ChildCount-1,小于0 无效5.新加元素,索引一律为 ChildCount-1, 也就是最后一个...原创 2020-06-10 16:23:26 · 13194 阅读 · 2 评论 -
GameFramework.DataTable 详解
不废话直接上图原创 2020-05-30 14:25:21 · 1186 阅读 · 0 评论 -
GameFramework 框架 Resource 详解
不废话上图总图单机加载模式可更新加载模式1.加载与核对2.更新加载资源原创 2020-05-26 11:57:51 · 3851 阅读 · 1 评论 -
明白.net中的垃圾回收机制
https://www.red-gate.com/simple-talk/dotnet/net-framework/understanding-garbage-collection-in-net/转载 2020-04-28 13:27:12 · 217 阅读 · 0 评论 -
Unity优化之GC——合理优化Unity的GC
Unity优化之GC——合理优化Unity的GC 转载请标明出处http://www.cnblogs.com/zblade/ 最近有点繁忙,白天干活晚上抽空写点翻译,还要运动,所以翻译工作进行的有点缓慢 =。= PS: 最近重新回来更新了一遍,文章还是需要反复修改才能写的顺畅,多谢各位的支持 :D 本文续接前面的unity的渲染优化,进一步翻译Unity中的GC优化,...转载 2020-04-27 15:48:28 · 299 阅读 · 0 评论 -
C Shap 如何唯一确定一个类,当多个程序集具有相同的全名类时,避免冲突或意外的替换。
1.首先 c shap CLR 运行时如何确定一个类 ? c shap 源码中调用一个类,在编译成IL时,IL 并不仅仅记录类全名,而是记录 程序集名+类全名,这样就能唯一确定一个程序集中的类,从而避免冲突和替换。如上图中反编译出的IL代码中,所有涉及到对类的调用都时采用程序集名加类全名的方式。2.外部别名,外部别名只是作为源码层面的语法使用,当采用外部别名访问某个类的操作被编译为IL...原创 2020-03-12 14:43:45 · 433 阅读 · 0 评论 -
AssetBundle中加载资源的三种方式
AssetBundle中加载资源的三种方式原创 2020-01-20 16:36:10 · 2809 阅读 · 0 评论 -
Unity3D RectTransform 成员 localPosition 和 anchoredPosition 详解
1.RectTransform.localPosition(本地位置) RectTransform.localPosition 顾名思义就是表示相对于父元素的位置,但是它不同于Transform.localPosition ,它是一个像素为单位的坐标,这个像素坐标系的原点依然是 RectTransform.parent.position,但是相较于Transform.localPosi...原创 2020-01-02 11:02:00 · 12317 阅读 · 0 评论 -
Unity3D 重复的使用 AssetBundle.LoadAsset<T>() 同一资源对象,并不会导致性能问题
之前查找网络上一些资料,说是重复的使用 AssetBundle.LoadAsset<T>()来获取资源对象; 虽然不会导致重复的反序列化资源,但是相比于将对象存储在字典中的管理方式,依然会慢上三倍的速度,对此一直比较疑惑,想必Unity官方的内部实现应该也不至于如此不堪,于是做了如下测试,(为了公平起见资源包中仅有一个预制体Cube,字典中也只存有一条内容,这样两种方式查询时的干扰都一...原创 2019-12-25 10:50:07 · 5742 阅读 · 0 评论 -
Unity3D 层剔除距离与层球形剔除 layerCullSpherical 和 layerCullDistances
Camera.layerCullDistances 层剔除距离,可以分别设置不同Layer的物体的剔除距离,比如可以将小物件比如地上的石头灌木的剔除距离设置的近一些,而大的物体如房子子树木等设置的远一些,这样可以节省算力,这个属性是一个float类型的数组,如果要设置这个值,你需要创建一个float[32] 也就是含有32个元素的数组,因为Unity3D最高支持32个Layer,然后按照...原创 2019-12-13 09:53:07 · 1522 阅读 · 0 评论 -
Unity3d 关于碰撞事件触发,触发器事件触发和 RigidBody以及IsKinematic RigidBody,Collider以及IsTrigger Collider 的条件总结
本人刚开始对碰撞事件和触发器事件的触发条件搞不清楚,经过网上查找了几篇博文和自己的手动测试,总结如下,只要记住这些可信规则和原因,在任何情况下应该都可以明白,会不会触发,避免新手走弯路,网上的博文和表格可以看一下,但是那个没有总结规律,只是表象意义不大Unity3d 关于碰撞事件触发,触发器事件触发和 RigidBody以及IsKinematic RigidBody,Collider以原创 2017-08-14 19:16:03 · 3589 阅读 · 1 评论 -
Unity3d 空间变换中齐次矩阵的w小秘密
1.使用变换齐次矩阵与某个齐次坐标相乘得到的结果,2.使用结果中的w分量,进行齐次除法得到归一化后的齐次坐标,3.用变换齐次矩阵的逆矩阵与归一化后的齐次坐标相乘(注意我们是用归一化后的齐次坐标,不是上面第一步变换后的齐次坐标),的到还原后的齐次矩阵,其w分量将会有一个特殊的值,4.如果将还原后的齐次矩阵使用其w分量进行齐次除法,将得到我们最开始用于变换的齐次坐标,彻底还原还原原创 2017-11-30 11:03:45 · 1893 阅读 · 0 评论 -
Unity3D 片元NDC空间z值(ZBuffer)转View空间z值,公式推导
《Shader入门精要》中十三章中深度和法线纹理一节,别后的原理中列出了如何从 Z纹理中将本片元的NDC空间下的z值还原成View空间下的z值附上表达式推导过程,手写方便和我一样数学都换老师的童鞋,少走弯路,呵呵。原创 2017-11-30 17:51:21 · 2669 阅读 · 0 评论 -
Unity3D GI 模式下光照贴图对实时光照系统的影响
GI Baked 模式1.灯光工作模式为 baked ,静态物体所接受包含间接和直接光的光照贴图,实时渲染时静态和动态物体都不计算该光源2.灯光工作模式为 mixed ,静态物体接受包含间接光的光照贴图,实时渲染时静态和动态物体都会计算该光源的直接光照信息3.灯光工作模式为 realtime ,静态物体无该光源的光照贴图,实时渲染时静态和动态物体都会计算该光源的直接光照信息原创 2017-12-01 10:55:52 · 2019 阅读 · 0 评论 -
四元数的简单应用
关于四元数,网上的教程很多,但是大多都是装B版本,像我一样早就把线性代数换给老师的同学,会发现看了之后还是云里雾里,既不知道怎么用,也不知道用了有什么意义,现在我来已最直白,最简单的方式告诉大家用法。1.四元数表示的旋转公式如下代表旋转行为的四元数有四个分量:(X,Y,Z,W),W为实部,XYZ为虚部,什么是实部虚部?不懂忽略就行了,等有空去看《3D游戏与计算机图形学中的数学方法》youku 视频...原创 2018-04-09 09:26:36 · 4613 阅读 · 8 评论 -
一句话总结Unity物体渲染先后顺序
依次按条件先后顺序进行排序渲染处理。先按上层条件排序,如上层条件相同,则进入下层条件牌序,最终分出先后Camera Depth: 越小越优先|---1.RenderQueue 2500已下(含2500),优先于RenderQueue 2500已上|----|---1. Sorting Layer/Order in Layer 按照Sorting Layer/Order in Layer...原创 2018-07-20 17:08:58 · 9313 阅读 · 2 评论 -
Unity3D 光照数据简介
之前一直对光照部分不清不楚很多地方也没有研究,恰逢遇到一本《 UNITY 3D SHADELAB实战详解》里面详细的讲解了部分Shader段,有关光照的的详细内容,但是依然不全,于是硬着头皮啃了一部分,这里把一些心得写下防止忘记了。我个人认为Unity3d 光照处理流程分为三步,1.决定调用什么Pass,2.为Pass准备合适的光照数据,3.在Pass中进行对应的光照计算。这三步其实就是我们的...原创 2018-08-10 14:16:51 · 678 阅读 · 0 评论 -
Unity.Time 小白科普
Unity.Time 里面的一系列和时间相关的数据,往往是我们做动画处理的依据,比如 Time.deltaTime*每秒移动距离=本帧需移动的距离,等等,可以说Time类是非常重要的,他直接关系游戏中的逻辑更新,同时Unity.Time 和fixedUpdate 也息息相关,直接决定了每帧中fixedUpdate的调用次数。现在因为一个偶然的任务需要做客户端和服务端的帧同步,所以我有...原创 2018-08-12 13:19:40 · 4407 阅读 · 1 评论 -
Unity3D 游戏画面像素与单位关系,简介。
1.游戏画面像素-》Unity3D单位(Unit)可以看到屏幕中,正交相机的视口高度,刚好可以填满一个单位的cube,注意2点1.图中cube 的缩放xyz设置的都是1,这样cube 就是默认的一个Unity3D单位的长宽高2.正交相机的视口大小Size 设置的是0.5而不是 1也就是说正交相机的视口大小Size 的意义是,本正交相机输出的游戏画面的原创 2017-08-01 11:32:45 · 18004 阅读 · 3 评论