unity3d
文章平均质量分 63
zhjzhjxzhl
这个作者很懒,什么都没留下…
展开
-
Unity线性空间UI的问题
问题描述:如果项目切到过线性空间,或者一开始就在线性空间,而美术制作ui的时候没有做设置,那么很快你就能发现这个问题了。美术会发现他们制作的ui效果和在unity里摆出来的不一样,特别是设计到透明度混合等问题问题的根源: 比如AB两个图层,A在上层,B在下层,A的alpha不为1 PS中默认的工作空间是Gamma空间,半透明图层使用的混合公式如下: color = A.rgb*A.alpha + B.rgb*(1-A.alpha) ...原创 2021-08-25 21:04:58 · 6283 阅读 · 4 评论 -
在unity里实现Hi-z occlusion
先看效果:可以看到,随着相机的移动,被相机平截头和深度遮挡的物体,就会被剔除。因为考虑到计算精度的问题,所以也会有个别物体漏过去,这个只能暂时忽略。hi-z算法就不介绍了,基本都可以搜索到。...原创 2020-12-22 10:14:27 · 1343 阅读 · 0 评论 -
Unity手动计算球谐光照参数
uinty的lightprobes封装是以场景为单位的,如果想要自己加载,就比较麻烦了。研究了几天,给出一个粗略的自己计算球谐光照参数的过程。还比较粗略,如果想在产品中使用基于这个粗略的计算逐步细化就行了。计算流程如下:1、遍历场景内所有的需要参与球谐的光源,根据光源和目标的位置,计算光照方向(点光源是连线,方向光是forward)2、在目标位置,在球上均匀取点,或者随机取点(蒙特卡洛方法),均匀的感觉效率更好些,结果也更稳定。因为这里是计算光源的球谐,又不是计算cubemap的,所以可以不用按原创 2020-12-15 11:24:13 · 1281 阅读 · 0 评论 -
Unity Animator 的State之间Transition的问题汇总
官方文档关于状态的打断和转移写的非常模糊,首先读这个blog(https://blogs.unity3d.com/2016/07/13/wait-ive-changed-my-mind-state-machine-transition-interruptions/),是一个很好的补充:其次,关于打断转移的部分,官方文档的解释和实际测试效果并不相同在这个none的情况下,说的是不再添加更多的,但是anystate的已经添加,实际测试图如下:这个状态机中,a->b设置了5秒的转移时间,如果原创 2020-09-15 20:07:49 · 1853 阅读 · 0 评论 -
spine变色
Shader "Spine/SkeletonColorMatrix" {Properties {_Cutoff ("Shadow alpha cutoff", Range(0,1)) = 0.1_MainTex ("Texture to blend", 2D) = "black" {}_ColorMatrixR("color matrix r",Vector) = (1,0,0,0)_C...原创 2018-03-29 16:30:24 · 1200 阅读 · 0 评论 -
基于spine的换装技术
效果:换发行换表情可以实现同一套动作,不同的皮肤。涉及到公司使用的技术,就不写具体实现了。方法就是通过一些列工具链,自动对齐,然后导入。也支序列帧之类的,发型就是序列帧。同样可以实现隐藏和显示部分部件。...原创 2018-03-29 16:38:06 · 3986 阅读 · 5 评论 -
Toony Colors Pro 里海浪的shader分析
先看下效果:这个海浪除了正常的坐标点周期性变化之外,这个拍岸的浪花和靠近陆地部分的深度很吸引我。果断找到这个shader做了下分析。发现拍岸浪和颜色,都是根据水深计算的。而水深是根据场景的深度计算的。COMPUTE_EYEDEPTH(o.sPos.z);//将z值赋值为点到视点的深度。这行先计算水面的视深度float sceneZ = SAMPLE_DEPTH_TEXTURE_PR...原创 2019-02-16 21:56:42 · 1208 阅读 · 0 评论 -
3D优化之ShadowGun系列一:旗子飘扬效果实现方法及shader注解
先看效果:飘动全是使用shader偏移顶点的位置做的几个点:1、顶点数据的alpha值,标识了受风的权重。alpha越大,受风越厉害。通过观察模型可以看出这点。而shader里这句也有说明。以_Time作为参数,使用frac来取模,形成周期性的动画。下面是注释后的shader// - Unlit// - Per-vertex (virtual) c...原创 2019-02-17 23:29:46 · 1481 阅读 · 0 评论 -
3D优化之ShadowGun系列二:浓烟,使用面片模拟粒子效果
先看效果:看一下网格模型:这就是个面片模型,越靠近边缘的地方,alpha值越低。所以烟有变淡的感觉。如图:注意箭头指的地方,面片这里故意做了个折角,这样让烟看起来更有在某个位置受风改变方向的感觉。看shader参数:两张贴图,一张做base,一张做2nd。分别控制:上面12个参数,控制的是两张贴图的使用方式,修改的都是uv,speed是x,y方向...原创 2019-03-02 10:24:39 · 546 阅读 · 0 评论 -
3D优化之ShadowGun系列三:shader系列汇总
这是shadowgun中是所有shader。效果汇总:按系列分为以下几种:1、Scroll2Layers系列,通过uv滚动,来实现效果。包括前面分析的浓烟效果,天空盒上的云飘动效果.包括:Scroll2Layers名字的这三个。2、god-rays系列,主要是使用面片来模拟上帝光线。包括窗子射进来的光(god-rays),小射灯的效果(blinking-god-rays),窗...原创 2019-03-02 11:04:01 · 888 阅读 · 0 评论 -
poco自动测试使用
具体文档参考官方文档就行了,写的比较详细。这里记录下,在unityEditor模式下一个对不齐的bug。可能和我多屏的环境有关系。dev = UnityEditorWindow()dev.monitor["top"]=0手机上是没有问题的,看了poco的源码,坐标对齐都是依照全屏来计算的。写了个测试例子,效果还不错。addr=('',5001)poco = UnityPoc...原创 2019-04-23 18:31:00 · 2548 阅读 · 0 评论 -
一个表达式求值计算器
using UnityEngine;using System.Collections;using System.Collections.Generic;using System.Reflection;using System.Text;/// <summary>/// <para>Author: zhaojun zhjzhjxzhl@163.com</para>...原创 2018-03-29 16:18:49 · 286 阅读 · 0 评论 -
android 6.0的问题
打包的时候,targetsdkversion尽量设置为22,这样权限问题会少很多参考文章:http://unclechen.github.io/2016/03/06/Android6.0%E6%9D%83%E9%99%90%E9%80%82%E9%85%8D%E4%B9%8BSD%E5%8D%A1%E5%86%99%E5%85%A5/http://bxbxbai.github.io/2...原创 2019-02-15 14:35:56 · 141 阅读 · 0 评论 -
NGUI中UIPanel和DrawCall的性能问题
NGUI将使用相同atlas的组件,归类到一个drawcall中,也就是这些组件的绘制,只消耗一次gl调用。这样来提高gup的绘制效率。其原理如下: UPPanel作为drawcall的组织归类结构,以下UIPanel简称panel。panel会根据自己child的层次,将不同的UIWidget归结到不同的drawcall中。理论归结过程如下: 将所有的panel的...原创 2018-09-28 16:46:46 · 488 阅读 · 0 评论 -
u3d WWW.LoadFromCacheOrDownload 详情
loadfromcacheordownload是u3d中从网络更新资源的一个比较快捷的方法。这个方法封装了以下几个事情:1、网络加载2、资源解压(加载过来的assetbundle是压缩过的文件)3、缓存到本地文件(将加载过来的文件解压到内存中,并且将此解压后的内容写一份到本地cache(根据不同平台,自动定位到不同目录)),windows下cache的目录是C:\Users\MUH...原创 2019-03-02 11:10:59 · 2599 阅读 · 1 评论 -
unity内存管理(资源(resources,assetbundel),代码,gc,堆管理)
星尘博客园 首页 博问 闪存 新随笔 联系 订阅 管理随笔-47 文章-23 评论-44Unity3D占用内存太大的解决方法最近网友通过网站搜索Unity3D在手机及其他平台下占用内存太大.这里写下关于Unity3D对于内存的管理与优化.Unity3D里有两种动态加载机制:一个是Resources.Load,另外一个通过AssetBundle,其实两者区别...转载 2018-03-29 15:31:43 · 589 阅读 · 0 评论 -
unity www 序列加载,进度显示
序列加载功能由3个类划分开LoadRequest 负责保存加载相关的数据,url,回调等Loader 负责具体的加载工作,暴露一些通用接口和数据出来QueueLoader 负责队列加载 控制同时发起的最大加载数 控制失败重新加载写的时候发现的问题:1。C#里的foreach不能再foreach过程中修改List的数据。否则会报运...原创 2019-03-02 11:10:20 · 229 阅读 · 0 评论 -
unity知识手册
NGUI菜单: 功能选项部分 Options->handles :负责空间缩放是否显示,以及缩放的颜色 Options->snapping:绑定Ator之后是否可以移动 Normalize Depth Hierarchy:自动将panel中的东西按照默认顺序进行排序。 unity3d相关:...原创 2019-02-15 15:19:31 · 182 阅读 · 0 评论 -
Unity BuildPipeline BuildAssetBundleOptions
BuildAssetBundleOptionsDescriptionAsset Bundle building options.See Also: BuildPipeline.BuildAssetBundle.VariablesCollectDependencies Includes all dependencies. 包括所有的引用,会循环查找 CompleteAs...原创 2019-02-15 15:18:43 · 848 阅读 · 0 评论 -
Assetbundle打包的时候,带入shader相关的问题
使用buildpipe将shader打包进Assetbundel的时候,如过使用shader lab写成的shader,会保持原样打包进去,等到运行时在再编译。如果是采用cg写的,会提前根据打包平台编译。如果打包成android平台,在windwos上调试程序的时候,就会出现找不到shader的问题。如果在android上调试android的资源,并不会有问题。只是win上开发调试的时候,会不对。...原创 2018-03-29 15:31:24 · 778 阅读 · 0 评论 -
spine粗略描边shader
Shader "Spine/Skeleton" {Properties {_Cutoff ("Shadow alpha cutoff", Range(0,1)) = 0.1_MainTex ("Texture to blend", 2D) = "black" {}}// 2 texture stage GPUsSubShader {Tags { "Queue"="Transparent"原创 2018-03-29 15:31:15 · 4110 阅读 · 1 评论 -
Unity socket 关于阻塞接收的问题
如果socket的recive放在update里,当这个比较卡的时候,就会丢失掉部分数据。最好是单独开一个线程来处理。using UnityEngine;using System.Collections;using System.Net.Sockets;using System.Text;using System.Threading;using System.Collectio...原创 2019-03-02 11:09:53 · 2246 阅读 · 0 评论 -
Unity3d ZWrite ZTest Blend 相关的测试 以及 Queue
ZWrite 的意思是 是否将当前像素z值写入zbuffer,其实这个值是别的图形在做zTest的时候使用的 Queue决定绘制顺序,先绘制的写入zbuffer,后绘制的在做ZTest的时候,会受到影响。 两个Queue相同的时候,则按照创建顺序绘制。在不写入zwrite的时候,效果如下。 棕色的先创建,灰色的后创建的。 如果给棕色的 Queue改为Tr...原创 2018-03-29 15:30:55 · 621 阅读 · 0 评论 -
给tolua也加个HotFix功能
之前工程用了tolua,为了开发速度能快点,没有全部选在lua。而是只有活动部分选择了lua热更新。基本功能部分,还是c#开发的,那么修复的时候就略麻烦。后来xlua提出了热修复功能,但是已经用了ulua了,也懒得换成xlua。于是本着自己动手(造轮子),丰衣足食的程序员精神,参考了下xlua自己给tolua里也简单加了个hotfix的功能,功能比较受限,主要是c#和lua的数据结构并不能很好的兼原创 2017-04-10 18:34:59 · 1110 阅读 · 0 评论