Unity3D开发之NGUI分辨率适配的UIStretch中Clipping的屏幕缩放问题
2014-02-09 14:44
197 查看
游戏项目必须要与多个分辨率适配,使用NGUI的UIStretch在多个界面都是正常的,但在用下拉列表的遮罩效果的时候,发现出现了显示不正常的问题,然后在网上找了很多种方法都不太解决这个问题,还是自己弄了一天来解决了这个问题。
首先,这个问题的出现是因为Clip需要父类的缩放倍数为(1,1,1),但使用UIStretch适配分辨率会使得这倍数改变,所以就会出现显示不正常。
然后,我们就可以把列表另外拿出来,不放在有UIStretch这个组件的物体下面,但这个时候下拉列表就会不适配已经缩放过的界面,所以我们就要用代码控制他自己的遮罩区域,以及DragPanel的子物体的缩放了。
下面是我的代码,用来控制下拉panel自身的遮罩区域以及改变自身子物体的大小:
然后,我的界面结构是这样的:
AchievePanel就是我的下拉Panel,而NotListPanel就是我的界面,他的属性为:
我自己的原适配的比例是480*800,所以那些参数就这样了,当然不同的分辨率就要改变了。
这样就可以适配啦~~~
首先,这个问题的出现是因为Clip需要父类的缩放倍数为(1,1,1),但使用UIStretch适配分辨率会使得这倍数改变,所以就会出现显示不正常。
然后,我们就可以把列表另外拿出来,不放在有UIStretch这个组件的物体下面,但这个时候下拉列表就会不适配已经缩放过的界面,所以我们就要用代码控制他自己的遮罩区域,以及DragPanel的子物体的缩放了。
下面是我的代码,用来控制下拉panel自身的遮罩区域以及改变自身子物体的大小:
using UnityEngine; using System.Collections; public class NGUI_ClippingAdjustor : MonoBehaviour { public GameObject stretch_obj; //拥有UIStretch组件的物体 public GameObject grid;//下拉panel的子物体grid Vector3 stretch_scale = Vector3.zero; UIPanel self_panel; void Update(){ if(stretch_obj == null || stretch_scale == stretch_obj.transform.localScale) return; //设置项目的宽度 stretch_scale = stretch_obj.transform.localScale; grid.transform.localScale = stretch_scale; //设置显示区域的大小 self_panel = gameObject.GetComponent<UIPanel>(); Vector4 old_range = self_panel.clipRange; self_panel.clipRange = new Vector4(old_range.x,old_range.y, old_range.z * stretch_scale.x,old_range.w * stretch_scale.y); } }
然后,我的界面结构是这样的:
AchievePanel就是我的下拉Panel,而NotListPanel就是我的界面,他的属性为:
我自己的原适配的比例是480*800,所以那些参数就这样了,当然不同的分辨率就要改变了。
这样就可以适配啦~~~
相关文章推荐
- Unity3d开发之实现在Unity3d层C#脚本和在Xcode层Objective-c语言的通信以及NGUI的屏幕适配问题
- 【Android 应用开发】Android屏幕适配解析 - 详解像素,设备独立像素,归一化密度,精确密度及各种资源对应的尺寸密度分辨率适配问题
- 【Android 应用开发】Android屏幕适配解析 - 详解像素,设备独立像素,归一化密度,精确密度及各种资源对应的尺寸密度分辨率适配问题
- Unity3D开发 NGUI之UIRoot屏幕分辨率自适应
- IOS APP开发UI上得尺寸注意问题(屏幕、适配、分辨率)
- Unity3D开发(一):NGUI之UIRoot屏幕分辨率自适应
- IOS APP开发UI上的尺寸注意问题(屏幕、适配、分辨率)
- Cocos2dx-3.x 学习笔记一:屏幕分辨率及适配问题
- NGUI panel使用soft clip时,屏幕缩放后无法正常工作的问题解决
- 关于android分辨率兼容(屏幕适配)问题
- Android屏幕适配解析 - 详解像素,设备独立像素,归一化密度,精确密度及各种资源对应的尺寸密度分辨率适配问题
- IOS 开发 iPhone屏幕尺寸、分辨率及适配
- 关于Android 奇葩分辨率相同屏幕密度下适配问题若干
- Unity3D开发之NGUI结合粒子系统的遮挡问题
- NGUI panel使用soft clip时,屏幕缩放问题
- 安卓APP开发中的屏幕适配问题如何解决?
- html5开发Android应用屏幕适配问题
- Android屏幕适配解析 - 详解像素,设备独立像素,归一化密度,精确密度及各种资源对应的尺寸密度分辨率适配问题
- Android屏幕适配解析 - 详解像素,设备独立像素,归一化密度,精确密度及各种资源对应的尺寸密度分辨率适配问题
- unity 使用Ngui 屏幕适配问题