Unityで2Dゲーム開発(7)〜Orthelloユーザ入力イベント〜

Orthelloにはオブジェクトと関係するユーザ入力に対してコールバックを呼ぶ仕組みが用意されています。
例えば、任意のスプライトを指でタッチあるいはマウスでクリックした場合に処理を実施するのに使用します。
OTObjectにonInputというdelegate指定用のフィールドがあるので、ここにdelegateを設定します。

詳しいリファレンスは

にありますが、読みながら実践してみたところ、つまづいたところがありましたので挙げておきます。

一点目は対象オブジェクト(OTObjectを継承しているもの)の「Register Input」を有効にすることです。スクリプトからプロパティを指定して有効にするか、あるいはUnityエディタ上のInspectorタブ内で「Register Input」にチェックを入れます。
これについてはリファレンスを読めばしっかり書いてあります。

次に対象のオブジェクトにはColliderコンポーネントを付ける必要がある点です。(こちらはリファレンスに書いていないように思うのですが。。。)私はこれに気づくのにサンプルソース(Orthelloパッケージ内にあるDrag Testというサンプルが参考になりました。)などを巡って小一時間かかりました。ちなみに私が付けたのは「Box Collider」です。

これら二点について実施すれば、あとはリファレンスにあるコードを参考に、ユーザ入力をハンドリングすることができます。

MonoDevelopコード生成ウィンドウからコード生成

UnityのC#スクリプトを書くために、Unityに付属していたMonoDevelopを使用しています。

継承元のメソッドをオーバライドする際に、雛形を自動生成する方法を探していました。(当然あるだろうと思っていましたので。)
メソッドを追加したい場所で、右クリックすると表示されるメニューの中に「コード生成ウィンドウを表示」というものがあり、これがどうやら自動生成をするための物らしく、必要なメソッドの一覧、生成するしないのチェックボックスらしきものが表示されました。

しかしながら、ここから実際にコードを生成するアクションが分からず、小一時間いろいろ調べていました。

そして、ようやく、(Macの場合、)Enterで入力、という答えにたどり着きました。
非常につまらない盲点でした。

ちなみにinterfaceの実装でメソッドを自動生成する場合はもっと簡単です。
コード内のinterfaceを指定している記述部分で右クリックします。メニューが表示されますので、「リファクタリング」>「暗黙に実装」で、

throw new System.NotImplementedException ();

のみを行う必要なメソッドが自動生成されます。