范围内,并移动至屏幕范围内"/>
unity 判断ui是否在屏幕范围内,并移动至屏幕范围内
如题
判断该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;}
更多推荐
unity 判断ui是否在屏幕范围内,并移动至屏幕范围内
发布评论