NGUI与新版Prefab系统冲突问题

Posted uwatechnologies

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NGUI与新版Prefab系统冲突问题相关的知识,希望对你有一定的参考价值。

1)NGUI与新版Prefab系统冲突问题
2)关于HUD的问题
3)RawImage设置DefaultHDR格式的RenderTexture后颜色异常
4)Unity如何烘焙透贴阴影做出真实影子
5)ios下打包AssetBundle出现错误

 


NGUI

Q:Unity 2018.4.0,NGUI的预设物点击inspector中“Open Prefab”报错。

技术图片

A:我们的项目升级完成后也遇到了这个问题,据说是因为NGUI的部分代码与新的Prefab工作流不兼容,产生的原因没有深究过。

对于这种不能在Prefab Mode中编辑的Prefab,如果想修改,我们的做法是在场景中生成Prefab的实例,然后断开Prefab关系,改好之后再覆盖回原来的Prefab。

技术图片

 

感谢BingLau@UWA问答社区提供了回答


Rendering

Q:请问如何让角色头顶名字(HUD)既能与场景中物体有正确遮挡关系,又不受场景后效的影响?

我尝试过两个方案:
1、使用两个相机,第一个相机渲染场景并附带后处理,第二个相机专门渲染HUD,并将Clear Flag 设置为 Don’t Clear。但是iOS平台开启MSAA后,第一个相机的depthBuffer就频繁出错。判断跟MSAA的Resolve有关,但不知道如何解决。
2、单个相机渲染,然后使用Stencil来区分是否处理后效。但是Stencil在blit之后就没法正常使用了。(尝试过钱康来的https://www.qiankanglai.me/2015/03/07/unity-posteffect-stencil/在OnPostRender()中进行SetRenderTarget(),编辑器上正常,但到iPhone上就不行)

A:关于在后处理之后用CommandBuffer绘制HUD,我想到:
用DrawMesh(DrawRenderer不能用于Canvas Renderer)绘制,那么就要手动从后往前排序(这些HUD是半透明的)一个个绘制,并且在C#中手动计算位置Matrix。并根据场景中HUD出现和消失的情况、前后顺序的变化,频繁修改CommandBuffer去Drawmesh。不知道是否有更好的方法。

感谢题主秦威@UWA问答社区提供了回答


Shader

Q:查看FrameDebugger发现,RenderTexture进入UI/Default Shader之前还是对的,经过这个Shader处理后颜色就异常了。

具体效果如下图所示:

技术图片

 

本人对Shader不熟,请问大家知道是什么原因导致的吗?

A:正常情况赋给RawImage的贴图,其Alpha值只为0或1,RenderTexture则是已经对Alpha值已经进行了处理。

UI/Default Shader的Blend默认为SrcAlpha OneMinusSrcAlpha,对于RenderTexture相当于多乘了一次Alpha值,改为One Zero就会正常。

感谢题主于翔@UWA问答社区提供了回答


Rendering

Q:Unity烘焙透贴阴影可以做真实影子吗?现在想烘出比较真实的阴影,考虑省内存的情况下不用混合和实时,只用烘焙光来做怎么做到比较真实的阴影?(接近一点也可以,不要太模糊)

A:对于常规方案来说,要想马儿不吃草,又想马儿跑得快是挺难的,各种方案总有取舍。
要是只说烘焙,常规的做法有:
1、提高Lightmap贴图尺寸,这个效果提升最直接,代价就是内存和包体。
2、调整烘焙参数,这块细节很多,可以参考这篇文章,讲得挺好的。调整得好,可以让视角中心位置的阴影效果质量较高,而整体Lightmap的占用较为合理。
3、关注下Lightmap的压缩方式,这块可能影响真机设备上的效果。

感谢贾伟昊@UWA问答社区提供了回答


Build

Q:打包iOS下的AssetBundle的时候,出现错误。提示:

Moving file failed

Moving Temp/unitystream.unity3d to /Users/jufeng/Desktop/jufeng/trunk/src/Client/Game3D/Platform_ab/IOS/AssetBundles/effectcommon/water_fall: No such file or directory

求助,怎么解决这个呢?同样的资源在Android平台没问题。(版本:Unity 2018.3.8f1)

A:自己测试了,是因为对应的AssetBundle里面包含了dds格式的图片(美术提交时没注意)。这个在android打就没问题,在iOS就报错了。把dds的改成了png就没问题了。

感谢题主逃逸速度@UWA问答社区提供了回答


今天的分享就到这里。当然,生有涯而知无涯。在漫漫的开发周期中,您看到的这些问题也许都只是冰山一角,我们早已在UWA问答网站上准备了更多的技术话题等你一起来探索和分享。欢迎热爱进步的你加入,也许你的方法恰能解别人的燃眉之急;而他山之“石”,也能攻你之“玉”。

官网:www.uwa4d.com
官方技术博客:blog.uwa4d.com
官方问答社区:answer.uwa4d.com
UWA学堂:edu.uwa4d.com
官方技术QQ群:793972859(原群已满员)

以上是关于NGUI与新版Prefab系统冲突问题的主要内容,如果未能解决你的问题,请参考以下文章

unity布局无法删除

Unity,NGUI如何像GUI一样,点击按钮后弹出一个窗体呢

NGUI HUDText

Ngui动作系统(Action)

NGUI新版本 UIDrag Panel Contents 怎么找不到了

NGUI----简单聊天系统一