*

[C#, Generic]UnityのAddComponentとかなんとかComponentを実装してみる

公開日: : C#

UnityのAddComponentってありますよね。
GameObject.Find("Text").AddComponent<Text>(); みたいなやつ。

このジェネリクスの部分を作ってみたかった。

継承元のスーパークラス

まずは大本の部分です。

こんな感じで宣言して、コンポーネントを追加削除をしたくなるようなオブジェクトたちはこれを継承させます。
ジェネリクスでどんなコンポーネントも追加できるように記述しています。
Addしたときにその追加したコンポーネントの実体が欲しいので、戻すように where T : IComponent, new() と記述してインスタンス化できるようにもしておきます。引数のあるインスタンス化は普通はできないので、また今度別記事で。

継承しましょう

基底クラスが出来たのでサブクラスを作ります。

これがなくては始まらない。コンポーネントの作成。

コンポーネントがないとテストが出来ませんね。
適当に作りましょう。

文字列と数字を扱う適当コンポーネント。

メイン処理

準備が出来たのでメインの処理で実際に利用してみます。

結果

3回目のコントロールが呼ばれた後、罫線が出ずに TextComponent:変更後と出ています。
これはコンポーネントを直接いじって、オブジェクトを経由せずコンポーネントの Control() を呼んだためですね。

ジェネリクスは利用するばかりで、あまり自分で作ったことはなかったのですが、慣れると便利な使い方ができますね。
機能を委譲してるので、拡張しやすくていいです。

ad

関連記事

Excel Csharp

[C#]DataGridViewにプロパティを利用しながら配列をバインドする。

DataGridView C#のFormにデータを表示するのに便利なコントロールがあります。 デ

記事を読む

instantiate cube unity

[Unity]コードリファレンス GameObjectの複製

GameObjectを複製します。 Object.Instantiate(Object ori

記事を読む

Unity_

[Unity]Unity2Dチュートリアル スプライトを利用する その2

前回で、タイルを置いて、全部消えちまうじゃねぇか! 色一個一個つけるのめんどくせぇ!! というところ

記事を読む

logo

[C#]AS400に対してODBC接続でトランザクションによりSQLを実行する。

データベースに対するトランザクション処理 と銘打ちましたが、要するに安全にinsert文などを実行

記事を読む

wannabenote

[C#]マルバツゲームを作ろう

Twitterでお題を出してください、というツイートに脊椎反射でマルバツゲームとか言ってしまったんで

記事を読む

Wannabenote

[Unity]Unity2Dチュートリアル パズルを落下させる。

前回の続き。 とりあえず、パズルが消えたので、パズルを落としましょう。 以下のようにソースを

記事を読む

logo

[Unity]Unity 2Dチュートリアル スプライトを元の位置に戻す ソース解説

◆全文 using UnityEngine; using System.Collection

記事を読む

Unity_

[Unity]Unity 2Dチュートリアル スプライトを元の位置に戻す

前回ドラッグして移動するところまでは作成したのですが、パズドラって、タップしてもその場から動かさなか

記事を読む

Delgate Multi Thread

[C#]マルチスレッドとイベントハンドラでデータベースのテーブルの値の変更を検知する。

システム利用中にデータベースの内容が更新 こういったシステムは往々にしてあるかと思います。 特に

記事を読む

Wannabenote

[Unity]Unity2Dチュートリアル 繰り返しパズルを消す その2

Unityまとめページはこちら。 前回の続き。 準備が出来たので、ソースを変更致しましょ

記事を読む

ad

Message

メールアドレスが公開されることはありません。

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

ad

  •  Auther;わなび

     「オープン系得意だよね? 俺のPCの調子悪いんだけど」という無茶振りから解き放たれゲームエンジニアに。
    C#とかUnityを扱います。
    Twitterフォロー大歓迎です。
    githubアカウント→wannabenote
  • follow us in feedly
PAGE TOP ↑