Camera改变Node的Rotation没有效果?

  • Creator 版本:V2.0.9

  • 目标平台: 微信小游戏

  • 详细报错信息,包含调用堆栈:

  • 重现方式:随便创建个新scene添加camera

  • 之前哪个版本是正常的 :V2.1.0

  • 手机型号 :模拟器预览

  • 手机浏览器 :模拟器预览

  • 编辑器操作系统 :WIN

  • 编辑器之前是否有其它报错 :无

  • 出现概率:必现

  • 额外线索:

Camera在Cocos Creator V2.0.9设置Rotation属性没有效果,如下图所示。(测试了2.0.8-2.0.6都一样有问题)

论坛也有其他开发者反馈该问题,并没有得到有效回复,根据发帖时间推测该BUG已经遗留于多个版本一直存在。

相关链接:
https://forum.cocos.com/t/topic/62331
https://forum.cocos.com/t/2-0/67121/3
http://discuss.cocos2d-x.org/t/rotate-camera-in-2d-project/43557

同样的Scene设置在V2.1.0的引擎下测试功能正常。


这是我想要的效果,通过旋转相机来达到Scene的内容也旋转,但是只有在V2.1.0能正常实现功能。

从2.0.9一直测试到了2.0.5,只有2.1.0是正常的,看了一下是因为2.1.0对3D支持增加了很多功能,难道主要针对2D的2.0版本引擎设定上就是无法旋转相机?想要清楚这是引擎BUG还是设计如此?

解决方案:
注释掉2.0.9engine代码中的CCCamera.js中的beforeDraw函数中的

node.lookAt(_vec3_temp_1);

请问这个问题是属于引擎的BUG还是2.0引擎本身的设计就是这样的?如果是BUG的话引擎后续更新版本会修复吗?

2.0的摄像机是有BUG的 你可以考虑在camera上面挂一个空节点 旋转就有效了

你说的空节点是把camera放到别的节点里旋转吗?我之前试过,还是没有旋转的效果

这个是个bug,后面会同步。

你好,我注释了相关代码,可是依旧没有办法旋转



这是官方提供的helloworld工程,我只将camera的node的rotation值设置成了45
NewProject.zip (851.3 KB)

你编译引擎了么?

编译引擎按了没什么反应,因为旋转没有生效我直接卸载重装了,然后在运行之前去把引擎的代码修改了,再次新建项目,rotation还是没有生效。

不知道是不是我没讲清楚所以产生了误解,我用helloworld截两张图对比一下,第一个是2.0.9的截图,有BUG,第二个是2.1.0的截图,正常
V2.0.9:


V2.1.0:

我期望的是2.1.0版本的这种相机旋转效果,在2.0.9的注释CCCamera.js中的beforeDraw函数中的node.lookAt(_vec3_temp_1);并没有达到像2.1.0这样的效果

依然是你未成功编译引擎导致的问题。


这是成功编译的界面。
编译引擎文档。
https://docs.cocos.com/creator/manual/zh/advanced-topics/engine-customization.html

非常感谢你的耐心解答!是我自己对引擎这一块不够熟悉才导致修改了没成功,目前问题已经解决。
给你添麻烦了,再次表达感谢!!!

这个问题 2.0.10 是不是忘了修复了。

@zzf_2025 2.4以后还是没解决这个问题啊,旋转摄像机还是没有效果, node.lookAt(_vec3_temp_1);代码也没了。。。

1赞

这BUG官方就不管了吗?2.4.4依然有,这都多少个版本了,真是无力吐槽,2.4.4的CCCamera.js里也没对Node的操作方法啊!

暂时的解决方案是在摄像机上挂个Node,对那个Node进行旋转。

v2.4.9 实测上面问题仍然存在。

  1. Camera下面挂节点无效。
  2. 在v2.4.9分支,node.lookAt(_vec3_temp_1)已经从CCCamera.js中的beforeDraw函数中去掉了。

已经2022年了,这个问题现在怎么解?
@zzf_2025 @Cocos @jare @panda

v2.x 版本,现在有解决办法么?

我就说为啥旋转相机节点无效,还以为是特性呢,原来是bug。2.4.9