Unityでのイベントの処理
FlashではEventListenerという組み込みの機構があってとても便利に実装できる。Unityではどんな実装が考えられるか試してみた。
例えばステージをクリックすると自身のオブジェクトが回転し、60度以上回転すると自身を破棄するようなものをFlashで実装すると。
package { /** * import. */ import flash.display.MovieClip; import flash.events.MouseEvent; /** * イベントテスト。 */ public class EventTest extends MovieClip { /** * コンストラクタ。 */ public function EventTest():void { // イベント追加 this.stage.addEventListener(MouseEvent.CLICK, this.onClick); } /** * クリッイベント。 */ private function onClick(evt:MouseEvent):void { this.rotation += 10; if (this.rotation >= 60) { this.stage.removeEventListener(evt.type, arguments.callee); this.parent.removeChild(this); } } } }
こんな感じ。
Unityでも作ってみました。
>>サンプル
4つともクリックすると回転し、60度より大きく回転するとGameObjectが破棄され、イベントも消される。同じ動きだけど、4つとも違う実装。
Continue…