Unityの各コンポーネント間でのやり取り

ただのメモ。

UnityのScriptは未だにどういう設計が良いのかよくわからない。変な挙動を起こさないためにMonobehaviorを継承しないでクラスを作ったりもしたんだけど、Monobehaviorの恩恵に与るとしたらどんな方法があるのか最近調べている。

1つの制御クラスから他のクラスへ処理を伝搬させたい時、Unityの機能を駆使すると以下の4つ方法があるらしい。
コンポーネント間のメソッド呼び出しとパフォーマンス

1. GetComponent() + TargetMethod()
2. SendMessage(“TargetMethod”)
3. BroadcastMessage(“TargetMethod”)
4. static TargetMethod() な感じで静的メソッドを使用する。

システム屋的な発想だと4しか思いつかないんだけど、ゲーム開発系の人はまた違う発想なのかな。1の処理が重そうなのはなんとなく分かるので、2,3を検証してきたいところ。

関連記事

組み込み向けのWindows OS 『Windows Emb...

2D→3D復元技術で使われる用語まとめ

ミニ四駆で電子工作

プログラミングスキルとは何か?

ZBrushで作った3Dモデルを立体視で確認できるVRアプリ...

CGレンダラ研究開発のためのフレームワーク『Lightmet...

Unityの薄い本

OpenGV:画像からカメラの3次元位置・姿勢を推定するライ...

ManuelBastioniLAB:人体モデリングできるBl...

Unite 2014の動画

ManimML:機械学習の概念を視覚的に説明するためのライブ...

ヘッドマウントディスプレイとビジュアリゼーションの未来

Seleniumを使ったFXや株の自動取引

HerokuでMEAN stack

iPhone x ロボットハッカソン~RomoのiPhone...

WebGL開発に関する情報が充実してきている

PGGAN:段階的に解像度を上げて学習を進めるGAN

動的なメモリの扱い

iPhone・iPod touchで動作する知育ロボット『R...

HD画質の無駄遣い

TensorFlowでCGを微分できる『TensorFlow...

OpenMVSのサンプルを動かしてみる

geometry3Sharp:Unity C#で使えるポリゴ...

iOSデバイスのためのフィジカル・コンピューティングツールキ...

UnityのTransformクラスについて調べてみた

粘土をこねるようなスカルプトモデリング

bpy-renderer:レンダリング用Pythonパッケー...

OpenVDB:3Dボリュームデータ処理ライブラリ

ROMOハッカソンに行ってきた

Pylearn2:ディープラーニングに対応したPythonの...

OpenFace:Deep Neural Networkによ...

JavaScriptとかWebGLとかCanvasとか

BlenderのPython環境にPyTorchをインストー...

Maya LTのQuick Rigを試す

Deep Fluids:流体シミュレーションをディープラーニ...

OpenCVのバージョン3が正式リリースされたぞ

Unreal Engineの薄い本

VCG Library:C++のポリゴン操作ライブラリ

MPFB2:Blenderの人体モデリングアドオン

OpenGVの用語

Blendify:コンピュータービジョン向けBlenderラ...

TorchStudio:PyTorchのための統合開発環境と...

コメント