适合设置物品信息之类的ui的位置,例如弹出物品信息时右下没位置会显示在左上方。
/// <summary>
/// 设置位置,尽量不超出边界
/// </summary>
/// <param name="pos"></param>
public void SetPos(Vector2 pos)
{
RectTransform rect = transform.GetComponent<RectTransform>();
float width = rect.sizeDelta.x;
float height = rect.sizeDelta.y;
Vector2 pivot = new Vector2();
if(pos.x + width <= Screen.width) // 优先靠右
{
pivot.x = 0;
}
else // 左
{
pivot.x = 1;
}
if(pos.y - height >= 0) // 优先靠下
{
pivot.y = 1;
}
else // 上
{
pivot.y = 0;
}
rect.pivot = pivot;
rect.position = pos;
}