- 最后登录
- 2016-10-1
- 注册时间
- 2013-12-28
- 阅读权限
- 90
- 积分
- 5805
 
- 纳金币
- 2954
- 精华
- 3
|
UGUI在使用Carema作为摄像机时,需要通过Canvas下的Canvas Scaler组件的referenceResolution参数来计算屏幕缩放比: 例如
- float offect = (Screen.width / canvasScaler.referenceResolution.x) * (1 - canvasScaler.matchWidthOrHeight) + (Screen.height / canvasScaler.referenceResolution.y) * canvasScaler.matchWidthOrHeight;
复制代码 通过上面这段代码来计算坐标的缩放比,具体坐标转化代码如下:
- CanvasScaler canvasScaler = GameObject.Find("Canvas").gameObject.GetComponent<CanvasScaler>();
- float resolutionX = canvasScaler.referenceResolution.x;
- float resolutionY = canvasScaler.referenceResolution.y;
- float offect = (Screen.width / canvasScaler.referenceResolution.x) * (1 - canvasScaler.matchWidthOrHeight) + (Screen.height / canvasScaler.referenceResolution.y) * canvasScaler.matchWidthOrHeight;
- Vector2 a =RectTransformUtility.WorldToScreenPoint(Camera.main, plant[index].transform.GetChild(0).transform.position);
- return new Vector3(a.x / offect, a.y / offect, 0);
复制代码 这样,就会得到屏幕上的UI坐标
注意!!
记得把描点设置到右下角,这样计算才会得到正确的坐标
|
|