3.6.3 摄像机矩阵更新逻辑有问题

引擎版本3.5.2到3.6.2一直有问题

我看你们更新摄像机矩阵的时机是
director.tick->
root.frameMove->
window.extractRenderCameras->
camera.update

那这里有一个问题,我在触摸屏幕的时候更新了摄像机所在节点的Scale,然后在摄像头节点的NodeEventType.TRANSFORM_CHANGED回调中用到了camera.worldToScreen。

这个时候本帧的camera.update已经执行完成了,现在的camera._matViewProj里面是脏数据,导致worldToScreen的结果不准确

1赞

这就导致我必须在玩家拖动或者缩放屏幕时的每一帧都先调用camera.update后才能camera.worldToScreen。这估计性能一般,看着也不是很安心

为什么会存在要改摄像机scale这种场景。。

缩放地图用的,地图里有特效,有tiled,有各种东西,不方便修改他们的位置和大小,只有修改摄像机的位置和大小了

摄像机有种东西叫视角高度

那东西也不好用,都被我弃用很久了

:sweat_smile:?先理解原理吧


这破东西,我很早就在用了,实在被坑的受不了才弃用的
最大的问题是点击判定bug和无法x和y分别缩放


我是自己做的检测判断逻辑,没有用他的,目前没有遇到你说的这个问题

你引擎版本多少的,我也去试试

最新版3.6.2,之前在3.5.x也没有问题,获得点击点之后转换为世界坐标,缩放视角用orthoHeight

1赞

3.6.3一样有问题