NGUI ScrollView总结】的更多相关文章

1顶级父类加boxCollider和UIDragScrollView脚本保证在item拖走后也能通过拖拽剩余区域的方式操作. 2下一级添加UIPanel在Clipping设定区域,注意如果设定softClip就不能保证item填满,会从alpha值为1的地方开始填充. 3添加UIScrollView脚本和SpringPanel脚本(如果位置不是zero要在SpringPanel中设置). 4再下级如要保证item位置总是合适则添加UICenterOnChild脚本(如果添加则不能保证充满),如要…
今天来说说一直都让我在项目中头疼的其中一个问题,NGUI 的scrollView 列表性能问题,实现循环使用item减少性能上的开销. 希望能够给其他同学们使用和提供一个我个人的思路,这个写的不是太完美,目前我在项目中使用了,希望大神能够给更多的建议来优化scrollView. 思   路:通过调整item位置来实现item循环使用,在通过delegate来实现数据刷新 功   能: SetGrid(int imax, ScrollGridSetItem sc) NextIndex() PreI…
获取到的Bounds值是固定的,是因为Bounds区域的计算是被动计算,需要主动调用使其刷新 scrollView.InvalidateBounds(); 另外Bounds的Min和Max似乎和NGUI屏幕坐标是反过来的,先记一下下次研究…
动态加入,基本思想是: 1.先把要加入的元素在编辑器中编辑好,制作成一个prefab. 2.在代码中,动态的生成一个新的对象增加到Grid对象的子对象中.这里利用到了Resources对象,这个对象的使用方法能够參照官网,就是在Assets文件夹下有一个Resources文件夹,位置随便,仅仅要是在Assets文件夹下即可. 3.加入对象之后,能够从这些对象中获取子对象进行属性的改动,比方加入了十个武器,那么十个武器的Icon,名字和价格都不一样. 以下代码代码中: 代码例如以下: var Ga…
主要是子节点没更新.乍一看调用UIPanel的Refresh()会管用,其实不然. 解决方法调用UIPanel的Invalidate让他所有子节点更新. panel.Invalidate(true);…
Scroll会计算边界,和直接拖拽的效果类似 MoveRelative不计算边界,超出边界了也不会管,也不会应用缓动效果…
 不知不觉使用NGI插件已经有一段时间了.感觉NGUI真的是眼下Unity3D中最好用的UI插件. 可是它也有一些不是BUG的BUG,这些问题可能会让新人摸不着头脑,那么这篇文章将总结一下这段时间用NGUI的一些开发心得.这些也好几个朋友问题我的一些问题,我将这些东西列出来. 上一章我们学习了p=821" rel="bookmark">NGUI研究之自制Scroll View实现触摸滚动相冊效果不明确的同学能够去看看. 1.对图片的限制 假设是移动平台中iPhone…
腾讯是如何做 Unity 手游性能优化的 https://juejin.im/entry/5774af485bbb50005925a3b1 Unity - NGUI - 优化ScrollView的一些心的 https://www.cnblogs.com/9-de/p/5109057.html NGUI滑动优化,滑动系数,滑动慢问题UIScrollView https://www.bobsong.net/356.html NGUI ScrollView 性能优化 http://gad.qq.com…
懒,是老毛病了,周末跑了半马,跑完也是一通累,好久没锻炼了..也是懒的,有时都懒的写博客..最近看到项目中各种滑动列表框,本着要懒出水平来的原则,决定花点时间简单处理下(暂时未做列表太多时的优化):1.首先分析共性方面的东西:逻辑上,都有个基础Item类及对应的管理类ItemManager显示上,都是显示某个基本对象ViewItem,并且都需要管理者UIScrollView(封装为ViewManager) 2.根据初步的分析结果,进行抽象,这里直接使用泛型处理:(这里直接使用了原有的Json插件…
Unity开发NGUI代码实现ScrollView(放大视图) 下载NGUI包 导入NGUI3.9.1版本package 创建MainCameraScript.cs脚本 MainCameraScript.cs using UnityEngine; using System.Collections; public class MainCameraScript : MonoBehaviour { // Use this for initialization void Start () { } //…
Unity开发NGUI代码实现ScrollView(滚动视图) 下载NGUI包 导入NGUI3.9.1版本package 链接: http://pan.baidu.com/s/1mgksPBU 密码: bacy 导入NGUI包 创建MainCameraScript.cs脚本 MainCameraScript.cs using UnityEngine; using System.Collections; public class MainCameraScript : MonoBehaviour {…
基于UIPanel的scrollview实现方式在移动设备上的性能不如基于camera的方式.因为UIPanel的scrollview实现方式要渲染很多的道具图,性能自然就降低了.如果是用第二个摄像机camera的方式,物体并没有动,只是拖动第二个摄像机摄像机,这样会只渲染第二个摄像机内部能看到的区域,其他看不到的区域不会渲染,性能就比较高. 层级思路 UIRoot--Camera --空object(window) -----LU(UIAnchor或者UIWidget 内置的定位点) ----…
Tab商城实例 UIToggle 和 UIToggledObjects+ Box Collider(实现商城功能必备) 1.创建两个个UI Sprite,Sprite1和Sprite2 2.给Sprite1和Sprite2都添加UI Toggle组件和UI Toggled Objects组件,设置UI Toggle组件中的Group值一样,归为同一组,这样只能有一个被选择,就像男女只能选一个,再勾选Sprite1的Toggle组件的Starting State,设置为默认的Tab 3.再给Spr…
下面我们来看看游戏UI开发中比较核心的开发,我称为列表开发,比如背包和各种形式不一的列表等,下面我们来看几个具体的样例:   基本上就是一些重复的制作好的多个UI控件进行排列,同时可以支持滚动,当然,高级一点的话也可能需要支持拖拽操作等. 下面我们来学习一下这些功能该如何使用NGUI实现,最后再给出一个具体的示例. 基础控件 NGUI已经帮助我们设计好了相关的组件,所以我们要实现上面的效果不需要从头开始,只要学会使用NGUI提供的相关的脚本即可,非常简单. ScrollView 即滚动视口组件,…
一.createScrollView 1.First, select the panel you want to be your scroll view and right-click anywhere in the Scene View to bring up the context menu, then choose Attach -> Scroll View. 2.The last step is to add the UIDragScrollView script to at least…
ScrollView是NGUI非常好用的一个内置组件,但是效率不好,当子物体过多的时候,一旦开始拖动就帧数狂掉,我目前有3个解决思路: 1. NGUI自带的Example 8 - Scroll View (Camera),用摄像机代替panel进行裁切和移动 2. NGUI自带的Example 14 - Endless Scroll Views,它使用了一个脚本叫做UIWrapContent,这个脚本实现了循环改变子物体位置的功能,可以参考该脚本实现复用Item来实现大列表的功能 3. UIWr…
NGUI,目前Unity3D Assert Store中最火的2D图形界面工具. 本文假设读者有Unity3D使用经验.有基本了解.NGUI3.6.0 1.新建Pannel(Scroll View),确保Clliping为soft Clip 2.Add Component增加Scroll View 3.在Scroll View下增加一个Grid(UIGrid) 4.在该Grid下增加空游戏对象Item 5.构建Item,加入Label.Sprite(Tiled为背景,simple为前景) 6.选…
用panel.localCorners而不是panel.finalClipRegion,Region还要再换算 首先通过ScrollView取panel,然后取Corners,它返回值代表4个点,映射的索引分别是: 0 左下  1 左上 2 右下 3 右上…
效果预览 注:Cube上附着的绿色是我添加的粒子效果. 软件环境 NGUI 3.9.x Unity 5.1 x64 相关知识 RenderTexture RenderTexture是一种特殊的纹理,它是在运行时创建和更新. 文档:http://www.ceeger.com/Components/class-RenderTexture.html ScrollView ngui的一个滑动组件 UITexture ngui显示贴图组件 原理 用一个相机单独照射3D模型和粒子 ——> 把相机的图形映射到…
NGUI长列表优化利器 优化原理 NGUI3.7.x以上版本 有个新组件 UIWrapContent ,当我们的列表内容很多时,可以进行优化.它不是一次生成全部的child,而是只有固定数量的child,在滑动时更新child的内容. 当前NGUI3.6.X也有此组件,不过不完善,比如更新每一条渲染未实现,protected virtual void UpdateItem (Transform item, int index) ,还有未提供便捷的接口供外部调用. UIWrapContent详解…
先上效果 Shader Shader "Unlit/Transparent Colored Flow Texture" { Properties { _MainTex ("Base (RGB), Alpha (A)", 2D) = "black" {} _FlashTex("Flash (RGB), Alpha (A)", 2D) = "white" {} _FlashColor("Flash C…
UIRoot 管理 scalePixelPerfect : 像素匹配,图片不会被缩放,除非屏幕高度小于 Minimum Height 或者大于 maximum  Height,如果那样的话,就使用 FixedSize. FixedSize : 图片都会被等比缩放. FixedSizeOnMobile : 意思是PC用 PixelPerfect,手机用 FixedSize. Sprite的各种类型 Simple: 简单的填充,缩放 Sliced: 九宫格,要设置好border Tiled: 重复平…
前言 这篇日志的比较是根据自己掌握知识所写的,请各路大神多多指教. 引擎版本: Unity 4.6 beta 两者区别 1.uGUI的Canvas 有世界坐标和屏幕坐标 2.uGUI的Button属性面板的的OnClick 3.uGUI的Image可以使用 material 4.uGUI通过Mask来裁剪,而NGUI通过Panel的Clip 5.NGUI的渲染前后顺序是通过Widget的Depth,而uGUI渲染顺序根据Hierarchy的顺序,越下面渲染在顶层. 6.uGUI 不需要绑定Col…
http://www.unity蛮牛.com/blog-9383-1391.html 最近由于工作需要,就开始研究NGUI滑动.刚开始参考NGUI自带的循环滑动,利用隐藏和显示,提高GPU的渲染,但是效果依旧不是很理想.在同事提醒下,添加缓存列表,不断刷新当前裁剪区域里的数据,最总完成了需求.在网上也参考了很多资料,今天恰好闲下来,就拿出来大家分享下,哈哈.代码附上:   主要分为三部分 1.重写UIScrollView和UICustomDragScrollView两个脚本///////////…
UIScrollView制作滑动列表,可横向,竖直展示一些列表在固定可视范围内 UIScrollVIew只是一个可滑动的UI组件 如果需要制作复杂的可视区域UI需要配合使用UIPanel与UIGrid 这样更方便UI的展示 a.创建一个2D UI Root,在NGUI菜单上创建一个Scroll View b.在ScrollView上默认的为我们添加了一个UIPanel与UIScrollView Alpha:面板的透明度 Depth:面板在所有UI上的层次等级 Clipping:面板剪切,分为No…
1. NGUI与UGUI的区别 1) uGUI的Canvas 有世界坐标和屏幕坐标   2) uGUI的Image可以使用material     3) UGUI通过Mask来裁剪,而NGUI通过Panel的Clip    4) NGUI的渲染前后顺序是通过Widget的Depth,而UGUI渲染顺序根据Hierarchy的顺序,越下面渲染在顶层.    5) UGUI 不需要绑定Colliders,UI可以自动拦截事件   6) UGUI的Anchor是相对父对象,没有提供高级选项,个人感觉u…
怎样判断是否应当使用滚动视图 所谓的滚动视图,是指一个可以滑动的视窗,视窗大小和位置固定不变,视窗内的内容用户可以通过手指滑动或者拖动滚动天来进行滚动浏览. 滚动视图的目的是为了解决同类内容过多,一个UI版面显示不下的情况.如果同类内容过多,一般可以采取设置多个页面,然后通过翻页浏览的方式来浏览,但是很明显,滚动视图会比翻页更方便,因为在移动上可以很方便地花瓶进行滚动,在PC上可以通过鼠标的滚动进行滚动. 当需要判断是否应该使用滚动视图制作UI时,可以遵循以下规律: (1)有很多同类内容一个版面…
学习NGUI一直断断续续的,目前打算做一个总结的笔记. 我使用的是比较老的3.6.0版本. 1.使用NGUI,需要开启“Edit”->“Project Settings”->“Physics”里的“Raycasts Hit Tiggers”选项,否则无法使用交互系统,当前该选项是默认开启的. 2.NGUI控件要添加 Box Collider 组件才可以接受交互事件: 3.如果要让按钮上的文本也可以根据按钮的状态改变颜色,可以再在按钮上添加另一个Button组件,然后把组件的Target设置为文…
unity版本:4.5 NGUI版本:3.6.5 参考链接:http://blog.csdn.net/monzart7an/article/details/23878505,作者:CSDN 冬菊子   http://blog.csdn.net/unity3d_xyz/article/details/22989401,作者:CSDN inspironx 1.创建背景: 这部分比较简单,先创建一个用来展示scroll view的panel,在panel下创建一个空对象,空对象下面创建一个表示背景的s…
最终效果如下: 实现ScrollView主要是NGUI的三个脚本"UIDraggable Panel","UIGrid","UIDrag Panel Contents" 1.首先创建一个UIRoot 2D 更改Anchor为Anchor-Left,并设置UIAnchor的Side属性为Left: 2.在Panel 添加一个Panel,并命名为ClippedPanel:添加脚本UIDragpanel 3.建立ScrollView表格:在Clippe…