Files
tianrunCRM/Assets/CoolapeFrame/3rd/NGUI_Enhance/Examples/Scripts/Other/EnvelopContent.cs

57 lines
1.5 KiB
C#
Raw Normal View History

2020-07-04 14:41:25 +08:00
//----------------------------------------------
// NGUI: Next-Gen UI kit
// Copyright © 2011-2015 Tasharen Entertainment
//----------------------------------------------
using UnityEngine;
/// <summary>
/// Example script that resizes the widget it's attached to in order to envelop the target content.
/// </summary>
[RequireComponent(typeof(UIWidget))]
[AddComponentMenu("NGUI/Examples/Envelop Content")]
public class EnvelopContent : MonoBehaviour
{
public Transform targetRoot;
public int padLeft = 0;
public int padRight = 0;
public int padBottom = 0;
public int padTop = 0;
bool mStarted = false;
void Start ()
{
mStarted = true;
Execute();
}
void OnEnable () { if (mStarted) Execute(); }
[ContextMenu("Execute")]
public void Execute ()
{
if (targetRoot == transform)
{
Debug.LogError("Target Root object cannot be the same object that has Envelop Content. Make it a sibling instead.", this);
}
else if (NGUITools.IsChild(targetRoot, transform))
{
Debug.LogError("Target Root object should not be a parent of Envelop Content. Make it a sibling instead.", this);
}
else
{
Bounds b = NGUIMath.CalculateRelativeWidgetBounds(transform.parent, targetRoot, false);
float x0 = b.min.x + padLeft;
float y0 = b.min.y + padBottom;
float x1 = b.max.x + padRight;
float y1 = b.max.y + padTop;
UIWidget w = GetComponent<UIWidget>();
w.SetRect(x0, y0, x1 - x0, y1 - y0);
BroadcastMessage("UpdateAnchors", SendMessageOptions.DontRequireReceiver);
}
}
}