Unity3d:延迟加载ScrollView的内容
问题描述:在一个scrollview中加载了大量的数据,有文字、图片、视频等等,首次加载的时候会很慢很卡,而且加载出来后,内存占用很大。
解决方案1:
思:固定一块区域,当物体滚动到这区域的时候再加载物体上所承载的数据,当物体离开这区域的时候释放物体上所承载的数据。
行:在做的时候,首先想到的是算当前物体的坐标,当物体坐标到达固定区域的坐标范围内就加载,离开区域范围就释放,因为物体都是在滚动条内的,所以坐标是不变的。最终确定的方案是在当前物体上加一个Widget,并判断他的active,当他出现在我们的可视范围内时,获取到他的active是true,当他离开我们的可视范围内时,获取到他的active是false。到这里,去看结果的时候,结果每次拖动拖动scroview中的物体滚动的时候,还是有一卡一卡的感觉,由于判断加载数据都是在update方法里面,所有的物体都会走一遍,解决这个办法就是把和scrollview在一起的UIPanel里面的Cull属性勾上,意思就是只有当前在显示区域的物体才去执行update。
ps:离开可视范围释放内容的时候,把物体所承载的数据置为null就好了并调用Resources.UnloadUnusedAssets ();。(如果是Texture,把MainTexture=null;如果是Label,把text="";)
Unity3d:延迟加载ScrollView的内容的更多相关文章
- Unity3d之ScrollView实现图片浏览切换功能----折磨的学习
由于项目需要,需要用NGUi实现一个图片浏览切换的功能,于是参考官方NGUI例子的ScrollView做了一个例子,初始看上去基本实现了自己想要的功能. 但是测试后发现当隐藏其中一张图片后,后面图片不 ...
- 关于禁止Android scrollView 因内容变化而自动滚动 android:descendantFocusability
出现这种情况是因为你让scrollview获得了焦点,所以它才会滚动.如果你百度了以后,你可能会发现有些博客会说让焦点停在固定的一个view中就可以了.这对于不存在刷新的页面确实是可以的,但是当你出现 ...
- 小程序:如何让scroll-view包含内容完整滚动
1.关于scroll-view scroll-view是小程序用来控制可滚动视图区域的组件. 通过设置scroll-x ="true" 或 scroll-y="true& ...
- 02_通过scrollview实现内容滚动
在ScrollView里面放一个Button和TextView程序直接就挂了. ScrollView它只限制了有几个孩子,没限制有几个孙子.给Button和TextView套上一个爹LinearLay ...
- Thinking in Unity3D:基于物理着色(PBS)的材质系统
关于<Thinking in Unity3D> 笔者在研究和使用Unity3D的过程中,获得了一些Unity3D方面的信息,同时也感叹Unity3D设计之精妙.不得不说,笔者最近几年的引擎 ...
- [NHibernate]延迟加载
目录 写在前面 文档与系列文章 延迟加载 一个例子 总结 写在前面 上篇文章介绍了多对多关系的关联查询的sql,HQL,Criteria查询的三种方式.本篇文章将介绍nhibernate中的延迟加载方 ...
- VC对ScrollView的调整
VC对ScrollView的调整 automaticallyAdjustsScrollViewInsets automaticallyAdjustsScrollViewInsets是ViewContr ...
- scrollView实现基础中心点缩放及与UIPageControl结合使用
一般来说scrollView与UIPageControl都是结合使用,因为在使用滚动视图的时候 ,使用UIPageControl,用户可以 清楚 的明白显示的内容有多少页,如果 没有的话,总不能让用户 ...
- IOS第六天(1:scrollView 属性和查看大图)
***查看大图 #import "HMViewController.h" @interface HMViewController () <UIScrollViewDelega ...
随机推荐
- 20160203.CCPP体系详解(0013天)
程序片段(01):数组.c+02.数组初始化语法.c 内容概要:数组 ///01.数组.c #include <stdio.h> #include <stdlib.h> //0 ...
- Comparator与Comparable的异同
同 它们都是Java的一个接口,都是用来实现集合中元素的比较.排序. 异 Comparator位于java.util下: Comparable位于java.lang下: Comparable(可比较的 ...
- Java中Enum枚举的使用
三种不同的用法 注意项: 1.在switch中使用枚举能使代码的可读性更强. 2.如果要自定义方法,那么必须在enum实例序列的最后添加分号.而且Java要求必须先定义enum实例. 3.所有 ...
- 预热buffer pool
mysqldump -u root db_name table_name> /dev/null select * from ...
- 切换PS工具栏里的快捷键
工具箱(多种工具共用一个快捷键的可同时按[Shift]加此快捷键选取,可以在[常规]'快捷键[Ctrl]+[k]'里设置是否使用[Shift]切换) 其它快捷键: 矩形.椭圆选框工具[M] 裁剪工具[ ...
- [再寄小读者之数学篇](2014-11-19 $\sin x/x$ 在 $(0,\pi/2)$ 上递增)
$$\bex \frac{\sin x}{x}\nearrow. \eex$$ Ref. [Proof Without Words: Monotonicity of $\sin x/x$ on $(0 ...
- [整] Android Fragment 生命周期图
1. onAttach ------called once the fragment is associated with its activity 2. onCreate-------called ...
- 4. 2D绘制与控件绘制
绘制基本图形和文本 绘制图形和文本的基本方法 drawPoint(绘制点).drawLine(绘制直线).drawCircle(绘制圆) drawArc(绘制弧).drawText(绘制文本) pac ...
- 基于opencv的手写数字识别(MFC,HOG,SVM)
参考了秋风细雨的文章:http://blog.csdn.net/candyforever/article/details/8564746 花了点时间编写出了程序,先看看效果吧. 识别效果大概都能正确. ...
- Shapefile文件中的坐标绘制到屏幕时的映射模式设置
pDC->SetMapMode(MM_ANISOTROPIC ); //首先选择MM_ANISOTROPIC映射模式,其它映射模式都不合适 pDC->SetWindowExt( max(a ...