zoukankan      html  css  js  c++  java
  • NGUI: UIPanel控件

    转自:http://blog.csdn.net/huang9012/article/details/19411703

               http://bbs.9ria.com/thread-417659-1-1.html

    NGUI官方文档:http://tasharen.com/ngui/docs/annotated.html


    概述

    UIPanel用来收集和管理它以下全部widget的组件。

    通过widget的geometry创建实际的draw call。没有panel全部东西都不可以被渲染出来。

    假设你对Unity熟悉,你可以把UIPanel当做Renderer。





    全部panel都有一个Depth值,会影响全部它包括的widget。

    假设你的UI有非常多窗体,那么最好每个窗体有一个panel。

    Panel上的depth权重会远远高于每个widget的depth权重。所以保证panel不要使用相同的depth。假设使用相同的depth在panel上,那么draw call会被自己主动拆分来保证渲染顺序。所以会添加很多其它的draw call。


    • Alpha属性影响全部在panel以下的widget。所以能够用它来淡出整个窗体。
    • 假设你的UI须要被灯光影响。须要勾选上Normals

    • 假设创建了一个有非常多geometry的scrollable panel。你须要勾选Cull选项来降低三角形的数目。这样也可能降低性能。由于widget的可视性须要每次update都检验一次。
    • 勾选Static选项来告诉NGUI这个panel以下的widget不会被移动,这样能够提高性能。

      NGUI会忽略全部的position/rotation/scale改变。所以在执行时移动widget不会有效——所以小心使用。

    • 假设要调试由panel创建的draw calls,Show All选项可能帮助到你。你会看到由panel创建的全部draw call,以渲染顺序排序。每一个draw call会包含它使用到material的具体信息。那个widget用的这个material,甚至能够让你关闭某些draw call来让你查询某些问题。


    Panel会依据dimensions自己主动Clip全部它的子节点。

    使用这个功能须要选择Clipping下拉列表中的随意选项,之后调整Scene View中紫色矩形的尺寸。就像调整widget的尺寸一样。通过这样做你能够把一个panel放到Scroll View中,让他轻松的拖拽。

    注意clipping的panel不能嵌套。每一个panel仅仅能clip自己管理的widget,假设一个panel在另外一个panel里面,仅仅有一个会影响到里面的widget。这个限制以后会去掉。

    默认NGUI中panel的Render Queues从3000開始往上添加。你能够通过Render Q来改动。假设你想在两个panel中间添加粒子。仅仅要改动两个panel的render queue一个高于粒子,一个低于粒子就可以。假设想要让全部的draw call使用和NGUI 2.x版本号的渲染方式一样,使用z轴而不是depth。那么给panel的Render Q指定为Explicit。(NGUI 2.x用的是3000)。

    假设你找和Anchors相关的文档,能够看基类——UIRect。

    小贴士

    一个动力学Rigidbody会自己主动添加到你的panel上,由于对于Unity来说这样会提升性能。移动静态的collider会有非常多消耗性能的操作,可是移动rigidbody就不会。

    类文档

    http://tasharen.com/ngui/docs/class_u_i_panel.html




    ............................................................完美的切割线........................................................................

    UIPanel的一些小知识


    UIPanel用来收集和管理它以下全部widget的组件。通过widget的geometry创建实际的draw call。没有panel全部东西都不可以被渲染出来,你可以把UIPanel当做Renderer。



     

       假设创建了一个有非常多geometry的scrollable panel,你须要勾选Cull选项来降低三角形的数目。这样也可能降低性能。由于widget的可视性须要每次update都检验一次。
        勾选Static选项来告诉NGUI这个panel以下的widget不会被移动。这样能够提高性能。

    NGUI会忽略全部的position/rotation/scale改变。所以在执行时移动widget不会有效——所以小心使用。
        假设要调试由panel创建的draw calls,Show All选项可能帮助到你。

    你会看到由panel创建的全部draw call,以渲染顺序排序。

    每一个draw call会包含它使用到material的具体信息。那个widget用的这个material,甚至能够让你关闭某些draw call来让你查询某些问题。

    Panel会依据dimensions自己主动Clip全部它的子节点。使用这个功能须要选择Clipping下拉列表中的随意选项,之后调整Scene View中紫色矩形的尺寸。就像调整widget的尺寸一样。

    通过这样做你能够把一个panel放到Scroll View中,让他轻松的拖拽。

    注意clipping的panel不能嵌套。

    每一个panel仅仅能clip自己管理的widget。假设一个panel在另外一个panel里面,仅仅有一个会影响到里面的widget。这个限制以后会去掉。

    默认NGUI中panel的Render Queues从3000開始往上添加。

    你能够通过Render Q来改动。

    假设你想在两个panel中间添加粒子,仅仅要改动两个panel的render queue一个高于粒子。一个低于粒子就可以。

    假设想要让全部的draw call使用和NGUI 2.x版本号的渲染方式一样,使用z轴而不是depth。那么给panel的Render Q指定为Explicit。(NGUI 2.x用的是3000)。

    小贴士
    一个动力学Rigidbody会自己主动添加到你的panel上。由于对于Unity来说这样会提升性能。

    移动静态的collider会有非常多消耗性能的操作,可是移动rigidbody就不会。

    上面关于UIPanel知识參考于此链接:http://www.tasharen.com/forum/index.php?topic=6705.0

  • 相关阅读:
    hdu 1704 Rank(floyd传递闭包)
    codeforces 85D. Sum of Medians(线段树or分块)
    hdu 1706 The diameter of graph(folyd计数)
    hdu 4705 Y(树形DP)
    hdu 4123 Bob’s Race(树形DP+rmq)
    hdu 2196 Computer(树形DP)
    hdu 3534 Tree(树形DP)
    hdu 6017 Girls Love 233(dp)
    [HDU5903]Square Distance(DP)
    HDU5878~HDU5891 2016网络赛青岛
  • 原文地址:https://www.cnblogs.com/yutingliuyl/p/6703530.html
Copyright © 2011-2022 走看看