Oi pessoal,
Estou trabalhando com Cocos Creator 3.8.2e estou implementando mudanças de orientação dinamicamente em Android Ao mudar de cenas.
Aqui está o código relevante:
director.loadScene(this.ReturnGameSceneName(), () => {
if (sys.platform === sys.Platform.ANDROID) {
native.reflection.callStaticMethod(
"com.cocos.sport.AppActivity",
"ChangeOrientation",
"(Z)V",
isLandscape
);
}
if (orientation === macro.ORIENTATION_LANDSCAPE) {
view.setDesignResolutionSize(1024, 576, ResolutionPolicy.FIXED_HEIGHT);
} else if (orientation === macro.ORIENTATION_PORTRAIT) {
view.setDesignResolutionSize(576, 1024, ResolutionPolicy.FIXED_WIDTH);
}
});
E no Android Lado:
Exercise exercise = GlobalObject.getActivity();
if (exercise == null) {
Log.e("setOrientation", "Exercise is null!");
return;
}
Log.d(TAG, "ChangeOrientation: " + setorientaion);
CocosHelper.runOnGameThread(new Runnable() {
@Override
public void run() {
if (setorientaion) {
exercise.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
} else {
exercise.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
}
});
Emitir:
Em algumas cenasao mudar de orientação, o sprite se estende brevemente por uma fração de segundo (Como se a orientação mudasse emblem antes da cena estar totalmente carregada). Parece que a mudança de orientação está acontecendo muito cedoem vez de em sincronia com a transição da cena.
Qualquer orientação ou práticas recomendadas para lidar com isso de maneira limpa no Cocos Creator 3.8.2 seria apreciada!