スクリプトの実行順序
他のスクリプトを初期化するために、統一された制御スクリプトを使用します
次のように私は、一般的に、私は3つのコンポーネントがPlayer.js、Enemy.js、Menu.jsを持っている場合は、その初期化プロセスがあり、全体制御スクリプトとしてGame.jsスクリプトを持っています。
// Game.js
const Player = require('Player');
const Enemy = require('Enemy');
const Menu = require('Menu');
cc.Class({
extends: cc.Component,
properties: {
player: Player,
enemy: Enemy,
menu: Menu
},
onLoad: function () {
this.player.init();
this.enemy.init();
this.menu.init();
}
});
前記Player.js、Enemy.js Menu.jsおよびそれらにinitメソッド、および初期化ロジックを実装する必要があります。このように、我々は、初期化シーケンスプレーヤー、敵とメニューを保証することができます。
カスタム更新順序でアップデートを制御する方法で
あなたは3つのスクリプトよりもフレームごとにその更新順序を保証するために、更新したい場合は同様に、我々はまた、各スクリプトは、メソッドの独自の定義によって置き換えられて中に分散させることができます。
// Player.js
updatePlayer: function (dt) {
// do player update
}
そして、これらの方法はGame.jsのスクリプトを更新呼び出します。
// Game.js
update: function (dt) {
this.player.updatePlayer(dt);
this.enemy.updateEnemy(dt);
this.menu.updateMenu(dt);
}
同じノード上の実行順序制御コンポーネント
同じノード上のコンポーネントスクリプト実行順序は、プロパティインスペクタの順序でコンポーネントによって制御することができます。総会は、次の実行前に部品の配置上に配置されます。私たちは、上に移動してメニューを下に移動右上のボタンでギアアセンブリによってコンポーネントの順序と実行順序を調整することができます。
設定コンポーネントの実行優先順位
上記の方法は依然として所望の粒子サイズ制御を提供できない場合、直接executionOrderアセンブリを提供することができます。executionOrderは、コンポーネントのコールバックの実行優先順位のライフサイクルに影響を与えます。次のように設定します。
// Player.js
cc.Class({
extends: cc.Component,
editor: {
executionOrder: -1
},
onLoad: function () {
cc.log('Player onLoad!');
}
});
// Menu.js
cc.Class({
extends: cc.Component,
editor: {
executionOrder: 1
},
onLoad: function () {
cc.log('Menu onLoad!');
}
});
executionOrder小さい、実行中の他の成分に対する第一成分以上。executionOrderのデフォルト値は0であるので、負の数は、デフォルトでは他の構成要素の前に実行されます。onDisableとonDestroy無効に効果的なexecutionOrderのみのonLoad、onEnable、開始、更新およびlateUpdate。