1.有个控件叫Selectable
这个控件在button,slider等身上有,也可以自行添加,可通过API搜索所有带这个控件的物体统一控制。
2.实现ScrollView只使用Scrollbar操作滚动,不允许鼠标滑动滚动域滚动
Image,Button组件都无法阻止ScrollRect的事件监测,但是slide,InputField可以,所以在具体的Item身上挂载这两个组件并设为Interactable即可(具体的事件监测机制未了解)
3.用Image组件,加载图片保证图片宽高比
private void DisplayPhotoPreview(byte[] data , Image photoPreview) { Texture2D jpgTexture = new Texture2D(1, 1); jpgTexture.LoadImage(data); // make sure alpha channel is 1 var color = photoPreview.color; color.a = 1; photoPreview.color = color; // create UI sprite from texture photoPreview.preserveAspect = true; photoPreview.overrideSprite = Sprite.Create(jpgTexture, new Rect(0, 0, jpgTexture.width, jpgTexture.height), Vector2.zero); if(pickPictureTip.activeSelf == true) { pickPictureTip.SetActive(false); } }
photoPreview.preserveAspect = true;
这个属性,可以保证图片长宽比不变 , 他不会改变Image的宽高,而是处理加载进来的图片进行裁剪透明像素填充
4.Unity 使用UGUI创建可重用TableView 解决 scrollview 初始化item数量过多 造成的卡顿 以及 性能问题;
https://blog.csdn.net/tmac3380809/article/details/51290387
5.UGUI 锚点详解
https://www.jianshu.com/p/e51ec322eff2
6.Unity 自定义 UI组件 UI树等
https://blog.csdn.net/qq_29579137/article/details/77854504