虎の巻 - Effective AngelScript
Last-modified: 2010-04-27 (火) 22:41:09 このページについて
AngelScript(以下AS)を使うにあたって知っておいたほうがお得な情報を紹介していきます。 オブジェクトを引数にとるときはオブジェクトハンドルではなく参照を使おう
下記のような2つの関数があった場合,funcHandleのほうが処理が重くなります。 これは,funcHandleはオブジェクトハンドルで受け取っていることが原因で参照カウント処理が挿入されるためです。 よく使うコードはASではなくC++で書こう
ASコード上で定義したクラスの動作はあまり速くありません。 遅い原因として このようなところから,よく使うコードはC++で書いてバインドするようにしましょう。 筆者はVector3やMatrix34などよく使う数学クラスなどをC++で書いてバインドしています。 ASコードでしか登録できないもの・C++コードでしか登録できないものを把握しよう
ASコードで登録できるもの全てがC++コードで登録できるわけではありません。 下記の表がそれのまとめになります。
C++のPOD型のクラスはasOBJ_PODフラグを付けよう
C++コード上のPOD型のクラスをASにバインドするときはasOBJ_PODをつけるようにしましょう。 ここでいうPOD型とは,メンバ変数にポインタやオブジェクトハンドルを持たない型のことです。 asOBJ_PODをつけるとデフォルトコンストラクタ・代入演算子の定義が必要なくなると共に代入演算関数が自動生成されます。 in,out,inoutについて理解しよう
ASの関数の引数に使われる&in,&out,&inout修飾子は少々癖があります。 下記の表に各修飾子をつけたときの動作の説明を記述しました。
通常使うであろう修飾子は
の3種類です。 この3種類の使い方と動作さえ覚えておけばコーディングで困ることはないでしょう。 |