如题
判断该ui是否在屏幕范围,如果不在计算出移动到屏幕范围内的目标位置,再写函数进行移动
bool JudgmentUiInScreen(RectTransform rect, ref Vector3 targetPos)
{
bool isInView = false;
float moveDistance = 0;
Vector3 worldPos = rect.transform.position;
float leftX = worldPos.x - rect.sizeDelta.x / 2;
float rightX = worldPos.x + rect.sizeDelta.x / 2;
if (leftX >= 0 && rightX <= Screen.width)
{
isInView = true;
}
else
{
if (leftX < 0)//需要右移进入屏幕范围
{
moveDistance = -leftX;
}
if (rightX > Screen.width)//需要左移进入屏幕范围
{
moveDistance = Screen.width - rightX;
}
targetPos = 需要显示的物体世界坐标+new Vector3(moveDistance, 0, 0);
}
return isInView;
}