zoukankan      html  css  js  c++  java
  • 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="";)

  • 相关阅读:
    linux下golang的配置
    为什么有闭包?
    分布式之高性能IO组件
    ECMAScript 5.1 Edition DOC 学习笔记
    直线光栅画法
    【计算机基础】三、指令与指令执行过程
    ThreadLocal的使用
    【设计模式】单例模式
    问题记录
    【Java基础】- 泛型
  • 原文地址:https://www.cnblogs.com/yhdkzy/p/3809702.html
Copyright © 2011-2022 走看看