美文网首页
NGUI与新版Prefab系统冲突问题

NGUI与新版Prefab系统冲突问题

作者: 侑虎科技 | 来源:发表于2019-12-20 13:57 被阅读0次

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

    这是第187篇UWA技术知识分享的推送。今天我们继续为大家精选了若干和开发、优化相关的问题,建议阅读时间10分钟,认真读完必有收获。

    UWA 问答社区:answer.uwa4d.com
    UWA QQ群2:793972859(原群已满员)


    NGUI

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

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

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

    感谢BingLau@UWA问答社区提供了回答,欢迎大家转至社区交流:
    https://answer.uwa4d.com/question/5de0d4fe14ec712eefaf0226


    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问答社区提供了回答,欢迎大家转至社区交流:
    https://answer.uwa4d.com/question/5dc432f914ec712eefaf0179


    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问答社区提供了回答,欢迎大家转至社区交流:
    https://answer.uwa4d.com/question/5dea4dc373f93355f9667ed0


    Rendering

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

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

    感谢贾伟昊@UWA问答社区提供了回答,欢迎大家转至社区交流:
    https://answer.uwa4d.com/question/5d9f240af4053b206c80f87c


    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问答社区提供了回答,欢迎大家转至社区交流:
    https://answer.uwa4d.com/question/5dedb6ed73f93355f9667ed2

    封面图来源于网络


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

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

    相关文章

      网友评论

          本文标题:NGUI与新版Prefab系统冲突问题

          本文链接:https://www.haomeiwen.com/subject/gdibnctx.html