//方式一,使用API获取var rtrans = gameObject.GetComponent<RectTransform>();Vector3[] worldcorners = new Vector3[4];rtrans.GetWorldCorners(worldcorners);//方式二,手动计算var cam = GameObject.Find("Camera").GetComponent<Camera>();var cam_h = 2 * cam.orthographicSize;var cam_w = cam_h * Screen.width / Screen.height;var canvasObj = GameObject.Find("Canvas");var canvas = canvasObj.GetComponent<Canvas>();var canvasScaler = canvasObj.GetComponent<CanvasScaler>();float screen_w = Screen.width;float screen_h = Screen.height;var pos = transform.position;var fw = rtrans.rect.width;var fh = rtrans.rect.height;if (canvasScaler.uiScaleMode == CanvasScaler.ScaleMode.ScaleWithScreenSize){screen_w = canvasScaler.referenceResolution.x;screen_h = screen_w * Screen.height / Screen.width;}if (canvas.renderMode == RenderMode.ScreenSpaceCamera){fw = rtrans.rect.width / screen_w * cam_w;fh = rtrans.rect.height / screen_h * cam_h;}float[] wcs = new float[4];var c1 = pos.x - fw / 2;var c2 = pos.x + fw / 2;var c3 = pos.y - fh / 2;var c4 = pos.y + fh / 2;//两种试计算得到的结果完全一样