Creator3.x设置2d的摄像机缩放遇到问题,不能精确缩放和缩放后不能精确转换坐标

Creator2.x的摄像机缩放范围可以设置Camera组件ZoomRadio属性达成

Creator3.x的摄像机渲染缩放范围,需要通过改变OrthoHeight属性改变

但是creator3.x的Camera做2d时的正交摄像机没有ZoomRadio属性了,只有一个OrthoHeight属性可以改变摄像机渲染范围。或者把正交摄像机改成Perspactive类型,然后通过设置摄像机距离来修改渲染范围。但是这两种没法精确缩放渲染倍数,而且如果改变后,把屏幕坐标转换成节点内部坐标也会计算错误(这应该是引擎的bug,引擎组重未考虑摄像机渲染范围改变的情况,转换屏幕坐标到节点一直按原渲染范围进行计算)。

有什么办法让creator3.x的摄像机能像2.x摄像机的ZoomRadio的缩放一样呢?
unity可以通过摄像头提供的接口把屏幕坐标转换为摄像头的渲染坐标,但是cocos的摄像头找不到相关接口。

目前用Creator3.8做一个2d游戏,可以放大缩小场景,目前通过修改Perspactive摄像机的距离达成,但是把鼠标点击坐标转换成摄像头渲染的2d场景坐标就计算错误了。

 let pos = event.getLocation();
 let buildPos = this.Camera.screenToWorld(v3(pos.x, pos.y, 0));
 //转为本地
 this.buildNode.position = uiTrans.convertToNodeSpaceAR(buildPos);

屏幕坐标转世界坐标
然后再转本地坐标
这样试试?