Unity小结-1
1.Foldout在ListView中显示混乱的问题处理
private HashSet<int> record = new HashSet<int>(); //展开的ItemIndex
ListView.itemsSourceChanged += () => { record.Clear(); }; //保证新的数据源不会沿用旧有的标记信息
Foldout fo; //在makeItem中用折页的开关控制ItemIndex的记录
fo.RegisterValueChangedCallback((e) => {
if (e.newValue && !record.Contains(SelectIndex)) record.Add(SelectIndex);
else if (!e.newValue && record.Contains(SelectIndex)) record.Remove(SelectIndex);
});
fo.SetValueWithoutNotify(record.Contains(index)); //在bindItem的回调中根据展开登记表设置折页的打开关闭。
2.Unity通过IO加载文件的相对路径可以和Assets同级。(方便路径设置)
3.SpriteRenderer或Particle的sort作用大于其所在Canvas,SortingGroup作用大于它们。
4.目录文件是不区分大小写的,即读取和写入时,只要路径在大写或小写上有一种情况一致,这两个路径就被视为一个路径
5.ListView.makeItem回调中的style设置不一定有效,可以在ListView.bindItem中区设置
6.自定义的uitoolkit组件在ListView中可能大小无法正常匹配
6.当ListView中的条目是动态高度时(如Foldout),Virtualization Method选dynamic height
7.获取资源显示用小图标
UnityEngine.Object obj = AssetDatabase.LoadAssetAtPath(data.assetPath, typeof(UnityEngine.Object));
Texture2D sprite = AssetPreview.GetMiniThumbnail(obj);
if (sprite == null) sprite = AssetPreview.GetMiniTypeThumbnail(obj.GetType());

