unity勉強日記プログラミング素人、ブルーノの自主勉強ノートです。他のプログラミングを勉強したい方の助けになれば幸いです。デリゲートみなさんこんにちは🌚ポケ森でもぐもぐの元不足に悩まされているブルーノです。ツバクロをキャンプから追い出してお礼をせしめないと...さて今回はGUIベースのアプリケーションには必須なイベントというものについてやっていきたいと思います。イベント今までスクリーンショットで貼ってきたものはコンソールアプリケーション(CUI)と呼ばれるもので、ユーザーからの入力に反応する場合(例えばConsole.ReadLineなど)、キーボードからの入力についてのみ反応するようにプログラムを組んでいました。これだけでも文字の型を適切なものにしたり時には弾いたりなど、あらゆる入力に対応できるよう工夫が必要でしたが、これが一般的にみるグラフィカルユーザーインターフェースベースのアプリの場合ユーザーはどこをクリック(タップ)したり、ドラッグしたり、時にはキーを打ち込んだり、まあやることが多すぎてわかりません。そこで今まではプロパティなどで「入力されたものが何々(以外)だったら」という形でしたが、今度は「何々(以外)が入力されたら」→「何々する」という形にしていきたいと思います。この「何かが起きた」ことをイベントと言い、このイベントが起きてからそれに対する一連の動作の流れをイベントハンドラと言います。画像を見ながら少しづつ紐解いていきたいと思います。注目するのが5~14行目のBruno075クラスで、これはイベントを発生させるクラスになります。7行目のeventキーワードを使ったものをイベントフィールドと言い、これをメインメソッドで実行させます。7行目時点ではこのイベントフィールドには何も入っていないので実行させてはいけません。この何もない状態をnull(ヌル)と言います。そこで9行目~13行目のOnEventnameメソッドでeventnameがnullでない(何か入っている)時にこれを呼び出せるスイッチを設けています。実際のメインメソッド(43行目)ではこのスイッチを実行していますね。このスイッチの役割を果たすメソッドの名前は一般的に「On~~」という名前にします(もちろんしなくても構いません)。077クラスはただ2種類のshowを表示するだけのメソッドです。これをBruno078クラスのメインメソッドでまず36,37行目にあるようにインスタンス化します。イベントを発生させるクラスもインスタンス化し、40,41行目にあるようにその中のイベントフィールドにメソッドを追加していきます。(この時ソフトに「冗長なデリゲート宣言」とか言われたんですが無駄に長いってことですかね😅もっと短くできるのかな)そして最後に格納したメソッドを43行目のOnEventnameメソッドで実行しています。イベントフィールドにメソッドを追加するときは「=」ではなく「+=」で行うよう注意しましょう今回はここまでにして起きます。説明が長くなってきちゃいました。これら全部大事なことなので、ノートに書き込む感覚でしっかりメモして行こうと思います。ヶ月)プログラミングド素人、ブルーノの勉強報告、兼好きなゲームの雑談のブログです。(4)はてなブログをはじめよう!covory10101101276さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。