关于Creator3.7.3在2D项目里,添加场景可视范围内相机跟随的问题,无论我怎么设置,计算的结果和实际上的场景边缘都有出入,大致的计算就是场景宽度或高度/2,减去相机可视范围宽度或高度/2,正负一下按道理就是相机在四边的相对父节点的移动范围了(我看了很多demo和文章都是类似这么干的),用世界坐标来做对应的边缘计算和判断也试过了,也是一模一样的效果,做了好几天实在解决不了,各位大佬们帮帮忙,帮忙康康啥情况呀!
效果图:
相关计算和判定的代码如下:
this.visibleWidth = view.getVisibleSize().width
this.visibleHeight = view.getVisibleSize().height
const camWidth = this.thisCamera.camera.width
const camHeight = this.thisCamera.camera.height
const pos = this.node.getPosition()
const maxCamPosX = this.visibleWidth / 2 - camWidth / 2
const maxCamPosY = this.visibleHeight / 2 - camHeight / 2
const camPosZ = this.thisCamera.node.getPosition().z
const minCamPosX = -maxCamPosX
const minCamPosY = -maxCamPosY
const camX = pos.x >= maxCamPosX ? maxCamPosX : pos.x <= minCamPosX ? minCamPosX : pos.x
const camY = pos.y >= maxCamPosY ? maxCamPosY : pos.y <= minCamPosY ? minCamPosY : pos.y
const camPos = new Vec3(camX, camY, camPosZ)
this.thisCamera.node.setPosition(camPos)
完整项目代码:
practice.rar (516.5 KB)
想要达成的跟随效果:

(效果图摘自Creator | 摄像机跟随玩家移动 - 游戏开发手记)




