ソースコード
using System.Linq;
using UnityEngine;
<summary>
</summary>
public static class UIWidgetExtensions
{
<summary>
</summary>
public static float GetLocalLeft(this UIWidget self)
{
switch (self.pivot)
{
case UIWidget.Pivot.BottomLeft:
case UIWidget.Pivot.Left:
case UIWidget.Pivot.TopLeft:
return self.transform.localPosition.x;
case UIWidget.Pivot.BottomRight:
case UIWidget.Pivot.Right:
case UIWidget.Pivot.TopRight:
return self.transform.localPosition.x - self.width;
default:
return self.transform.localPosition.x - self.width * 0.5f;
}
}
<summary>
</summary>
public static float GetLocalRight(this UIWidget self)
{
switch (self.pivot)
{
case UIWidget.Pivot.BottomLeft:
case UIWidget.Pivot.Left:
case UIWidget.Pivot.TopLeft:
return self.transform.localPosition.x + self.width;
case UIWidget.Pivot.BottomRight:
case UIWidget.Pivot.Right:
case UIWidget.Pivot.TopRight:
return self.transform.localPosition.x;
default:
return self.transform.localPosition.x + self.width * 0.5f;
}
}
<summary>
</summary>
public static float GetLocalBottom(this UIWidget self)
{
switch (self.pivot)
{
case UIWidget.Pivot.Bottom:
case UIWidget.Pivot.BottomLeft:
case UIWidget.Pivot.BottomRight:
return self.transform.localPosition.y;
case UIWidget.Pivot.Top:
case UIWidget.Pivot.TopLeft:
case UIWidget.Pivot.TopRight:
return self.transform.localPosition.y - self.height;
default:
return self.transform.localPosition.y - self.height * 0.5f;
}
}
<summary>
</summary>
public static float GetLocalTop(this UIWidget self)
{
switch (self.pivot)
{
case UIWidget.Pivot.Bottom:
case UIWidget.Pivot.BottomLeft:
case UIWidget.Pivot.BottomRight:
return self.transform.localPosition.y + self.height;
case UIWidget.Pivot.Top:
case UIWidget.Pivot.TopLeft:
case UIWidget.Pivot.TopRight:
return self.transform.localPosition.y;
default:
return self.transform.localPosition.y + self.height * 0.5f;
}
}
}
使い方
var uiWidget = GetComponent<UIWidget>();
Debug.Log( uiWidget.GetLocalLeft() );
Debug.Log( uiWidget.GetLocalTop() );
Debug.Log( uiWidget.GetLocalRight() );
Debug.Log( uiWidget.GetLocalBottom() );
var uiSprite = GetComponent<UISprite>();
Debug.Log( uiSprite.GetLocalLeft() );
Debug.Log( uiSprite.GetLocalTop() );
Debug.Log( uiSprite.GetLocalRight() );
Debug.Log( uiSprite.GetLocalBottom() );
var uiTexture = GetComponent<UITexture>();
Debug.Log( uiTexture.GetLocalLeft() );
Debug.Log( uiTexture.GetLocalTop() );
Debug.Log( uiTexture.GetLocalRight() );
Debug.Log( uiTexture.GetLocalBottom() );
関連記事