202312-16 使用ripgrep快速搜索引用关系 反向搜索某个资源被哪里引用,比如贴图被那个资源使用了,可以利用ripgrep这样搜索会秒出结果。如下图所示,拖入待搜索的贴图,然后搜索它被哪里用了。 rg.exe 下载 https://github.com/BurntSushi/ripgrep/releases 代码利用 rg.... Read More >
202203-11 URP在小米10安卓12系统闪退 在小米10安卓12系统上闪退,同样的手机在安卓11系统和安卓12.5系统上就不闪退,原因是自己拓展的效果在CBuffer里没有字节对齐。 闪退错误 :ApiGLES::ClearBufferSubData(unsigned int, gl::BufferTarget, long, long)+.... Read More >
202103-06 URP从原理到应用 今年春节又是个特殊的时期,我也响应政府号召就地在北京过的年。我以为北京过年期间是不能放烟花爆竹的,开始觉得除夕夜应该会很冷清,没想到除夕当天周围从晚上8点开始一直放到了12点(中间就没有间断过),后来才知道原来政府允许5环以外燃放烟花爆竹。 趁着这这股劲春节期间我将这一年URP的使用提炼总结出一份教.... Read More >
202102-28 Unity3D研究院之C#数据绑定 最近研究了一段时间MMVM的数据绑定,目前得出的结论单向绑定就已经够使用了,目前有2种方法实现数据绑定。 方法1 使用一个类代替基础数据 如下代码所示,我使用int32来代替int 数据,这样就可以监听数据绑定了。由于C#并没有提供"="符号的运算符重载,所以需要.value=xx 来触发数据变化事件,而其它计算,比较等都可使用运算符重载或隐式转换的方式。 [crayon-673ee.... Read More >
202007-14 C#事件管理器清空所有监听 C#事件使用+= -=使用起来是很方便的,但是却不能整体清空所有事件。比如一个常见的操作,打开界面注册监听事件,关闭界面需要把所有的事件清空了,这要在写一堆-=操作,如果漏清空的话肯定会造成隐患,如果在lua里这个很容易,但是C#却不行。所以我想了个办法,对Action和Func进行一次包装,就可以解决这个问题了。 这里我只封装了两个参数,大家可以继续拓展新的参数,我在项目里一共拓展了5个参.... Read More >
202005-23 Unity3D研究院之方便找和写URP的shader 项目升级URP了一段时间了,Shader找起来太麻烦各种嵌套。以前的shader基本都在一个文件里搞定,普通的记事本都能写。 第一步安装VSCode以及Shader Languages support for vs Code 插件。 如果是内网办公的同学,可以先把插件下载下来,然后点击下.... Read More >
201802-13 Unity3D研究院之Mac下利用MonoDevelop查看c#内部代码 如下图所示,用MonoDevelop打开工程后, 选择一个Unity自己的DLL,比如UnityEditor.dll 面板中间选择一个你需要查看的C#类,此时代码已经出现在右侧,但是只有函数名却没有函数实现。 如下图所示,右上角Language这一栏选择c# ,然后在看代码,函数.... Read More >
201802-03 Unity3D研究院之3DTouch 最近把3DTouch功能加入到游戏中了,调研了一下,其实挺方便了。 代码很简单,如下代码所示,判断当前手机是被是否支持3DTouch ,在Update中获取压力的大小,接着就能做逻辑了。 [crayon-673ee1a264342075526082/] Android应该有些手机也支持3DTouch功能。 唯一需要注意的是,当触发3DTouch的时候希望有一个震动的反馈,Unity.... Read More >
201704-15 Unity3D研究院之Json序列化字典 Unity自己的json序列化是不支持字典格式的。无意间发现了一个全新的json .net库,功能很强大,还支持序列化字典推荐给大家。 http://www.newtonsoft.com/json 点击下载,zip. 解压后,把bin/net20/Newtonsoft.Json.dll .... Read More >
201704-10 [投稿]Unity3D游戏优化之头顶UI 3D角色头顶会显示文字、图标、血条等,它会跟随角色移动,始终朝向相机,可能还有定制的缩放,一般情况下会考虑用UGUI来做,但完成后发现这样做的效率很低,而且遮挡正确性也保证不了。 效率低因为: 1,渲染上每块文字、图片都要用一次drawcall,图片文字又可能是交替出现的没法利用dyna.... Read More >
201608-18 Unity3D研究院之限制RectTransform下某个属性不可被修改 如图所示,让RectTransform下某些属性不可以在Inspector面板上修改。 DrivenTransformProperties这个结构体你可以|符号 设置你希望禁掉的属性。 [crayon-673ee1a26566a923779055/] .... Read More >
201608-17 Unity3D研究院之ContentSizeFitter同步立即响应回调 ContentSizeFitter使用Preferred Size来设置RectTransform不能立即生效,必须要等一帧,也可以利用OnRectTransformDimensionsChange的回调方法。 但是这么做还是很恶心,最好还是能同步的计算出它的区域,一般我们可能会横向纵向的.... Read More >
201608-02 Unity3D研究院之Prefab不挂脚本保存数据 今天和同事一起发现了一个新科技,我们想在Editor下不给Prefab挂脚本,但是又想保存一些信息到Prefab上。 通过AssetImporter可以把数据保存在userData上,它是get set属性。 [crayon-673ee1a2672fc031252692/] 这样最终数据会.... Read More >