少し前に ES6 に対応していたようで、よく見たら class にも対応していました。
以下の書き方で class の記法で ScriptRegistry への登録を行えます。
// define a ES6 script class
class PlayerController extends pc.ScriptType {
initialize() {
// called once on initialize
}
update(dt) {
// called each tick
}
}
// register the class as a script
pc.registerScript(PlayerController);
// declare script attributes (Must be after pc.registerScript())
PlayerController.attributes.add('attribute1', {type: 'number'});
リンク先の公式ページにも書いてありますが、 pc.ScriptType の継承は必須です。
また、pc.registerScript()
の後でしかattributes.add()
できないらしいです。
個人的には、こっちの書き方の方がUnityっぽくていいのですが、
attributes.add()
がメソッドの定義より下に来てしまうのがなんとなく気持ち悪いので、
prototype を使う普通の書き方を使用しようか迷い中です。