手机旋转屏幕,如何监听

如题目,原生开启旋转屏幕,旋转后会初始化界面,比如camera的位置就会初始,会导致一些相关的功能会出错。

cc.view.on(‘canvas-resize’, callback, this);

1赞

试了一下,好像没触发,网页上是可以的,Android上不行。

window.addEventListener(“orientationchange”, this.oriChange.bind(this));
oriChange(event:any) {
if (window.orientation == 180 || window.orientation == 0) {
console.log(“竖屏”);
}
if (window.orientation == 90 || window.orientation == -90) {
console.log(“横屏”);
}
}
这个可行,回调里面直接设置camera的position不生效,延后一帧可以了,还一个方案是Java和TS互调。

2赞

activity重写
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
}

是的,触发了再通知cocos,也可以

[quote=“1111463, post:1, topic:125903”]
原生开启旋转屏幕,旋转后会初始化界面,比如camera的位置就会初始,会导致一些相关的功能会出错。
[/quote]这个设置camera的position不生效是如何设置的

延后一帧
this.scheduleOnce(()=>{
// todo
});

延后一帧,然后设置camera的位置?获取camera的之前的位置,然后再设置回去吗

我们的游戏是移动map,一直在set camera的 position,有个公有变量一直存着,所以把公有变量赋值回去就行了。

这个对Andriod好像监听不到

CoCos Creator 3.3.2

我这边用的是2.4.7,Android 测试的。