【Egret Engine】簡単に使えるUnityライクなテンプレートの作成

投稿者: | 2019年3月30日

はじめに

H5ゲームはUnityと比べてコーディングが難しいです。そこで、よく使う機能をまとめたEgret Engineのテンプレートを作成しました。

GitHubにも挙げておきますので、よかったら使ってください。

Egret Template

https://github.com/squmari/EgretTemplate

 

フィア
Egret Engineが難しすぎて、Unityっぽく使えるように

テンプレートを作ったよ!

カレン
以下のコードを参照してるので、こちらも見てみてね!

 

参照したコード

 

スポンサーリンク

 

目次

 

 

準備

1、srcフォルダのMain以外を削除する。

新規プロジェクトを生成すると、いろんなスクリプトが入っていると思います。

Main以外は使わなくても大丈夫ですので消しましょう。

 

2、Resource/Assetフォルダ内にある画像を削除する。

Button等の画像が入っていますが、デフォルトで使うことはほとんどないと思います。200KB近くあるので消してしまいましょう。

Resource/eui_skinフォルダも同様です。

 

簡単に使えるUnityライクなテンプレートの作成

Main.ts

 

Util.ts

 

GameObject.ts

 

Score.ts

 

GameOver.ts

 

Ball.ts

 

Box.ts

 

 

スポンサーリンク

 

使い方

オブジェクトのインスタンス化

Main.ts

Main.tsのGameクラスのinit()内にnewしてください。init()はゲームをリセットしたり、リトライするときに使用します。

 

オブジェクトの削除

GameObject.ts

BallもBoxもGameObjectクラスを継承しております。

オブジェクトを削除するときは destroy()メソッドを使用してください。

インスタンス化されたオブジェクトはstatic objectsにpushされてますので、destroyFlagがtrueになると、オブジェクトが削除されます。

 

なお、GameObjectはabstruct(抽象メソッド)ですので、継承した場合はupdateContent(){}をクラス内に追加してください。

このupdateContent(){}に記入されたメソッドはUnityのupdate()のように繰り返されます。

 

メソッドの連続実行

Main.ts

 

GameObject.ts

 

Unityのupdate関数のように、常にメソッドを連続実行したい場合は、BallやBox内のupdateContent(){}に関数を記載してください。

GameObject.update()がMainでtickLoopされて、フレームレート60で繰り返されます。

 

GameObjectを継承した場合は、updateContent(){}を追加しないとエラーになりますので、繰り返しをしない場合でも空メソッドとして追記してください。

 

シーンの切り替え

GameOver.ts

 

GameObject.ts

 

シーンを切り替えるときはGameObject.transit = 関数; のように利用します。

allDestroyでGameObject系を全て削除した後、transitに代入した関数が実行されます。

リトライするときはinit()を代入するといいでしょう。

 

おわりに

フィア
他にもrgbで色を変えるメソッドとかもあるので、

Util.tsとかも見てみてね

カレン
テンプレートだけでこのコードの数…

 

HTML5 Egret Engine 入門へ戻る

HTML5 Egret Engine 入門へ戻る