由于ngui对新版的unity的兼容性越来越不好了,现在逐步转向unity的亲儿子---ugui。尝试着搭了几个ui之后,发现image的图片操作不是太方便(例如 我想在slice模式下,按照比例去放大图片),我每次都算一边。
用了ngui的我联想到能不能模仿者ngui UISprite的方式去扩展呢。哈哈,最终被我搞成了。先看效果
用过ngui的朋友们是不是对这个界面很熟悉。
下面介绍扩展方式:
1:扩展Image
public class ExtImage : Image
{
}
2:构建width height,宽高比,缩放样式
public UIWidget.AspectRatioSource keepAspectRatio = UIWidget.AspectRatioSource.Free;
public float aspectRatio = 1f;
private int mWidth;
private int mHeight;
3:提供操作的方法
protected override void Awake()
{
base.Awake();
UpdateSize();
}
public int Height
{
get
{
return mHeight;
}
set
{
value = Mathf.Max(2, value);
if (mHeight != value && keepAspectRatio != UIWidget.AspectRatioSource.BasedOnWidth && rectTransform.IsCenterAnchor())
{
SetDimensions(mWidth, value);
}
}
}
public int Width
{
get
{
return mWidth;
}
set
{
value