[Unity]ゲームオブジェクトへのアクセスを楽にする自作ライブラリの紹介
自作のライブラリであるHierarchyNode
の紹介をします.
特に調査せずに作ったのでもしかしたら既に同じようなものがあるかもしれませんが.
https://github.com/yaegaki/HierarchyNode
作った背景
Unityでゲームを使用する上でTransform.Find
をよく使うと思いますがこれが正直に言うと使いにくいです.
文字列で指定するため大文字や小文字は区別されるし,スペースがはいっているかどうかで結果が変わるなど.
実際に実行していみてエラーが出て初めてタイポに気が付くなどがよくあり,結構な時間が無駄になりました.
HierarchyNodeの機能
上の画像のCharacter1_LeftUpLeg
のSpringCollider.radius
にアクセスしたい場合,
下のgifのようにコード補完を使用することができます.
実際に書いたコードはこれです.
void Start ()
{
var node = new HierarchyNode.Generated.Unitychan_DynamicNode(this);
var radius = node.c.Character1_Reference.c.Character1_Hips.c.Character1_LeftUpLeg.SpringCollider.radius;
}
導入
https://github.com/yaegaki/HierarchyNodeからクローンしてプロジェクトに入れるか,
HierarchyNode.unitypackageをダウンロードしてインポートしてください.
構成
HierarchyNode
はゲームオブジェクトからクラスを自動生成するエディタースクリプトと,自動生成されるクラスのベースとなるクラスからなります.
使い方
ヒエラルキーで対象のゲームオブジェクトを選択した状態でメニューのGameObject > HierarchyNode > Generate
を実行します.
ヒエラルキーのゲームオブジェクトだけではなくプロジェクトのPrefabを選択することもできます.
Generateを実行するとHierarchyNode/Scripts/Generated
配下に下のようなクラスが生成されます.
自動生成されたクラスは対象のGameObject
かTransform
かNonoBehaviour
で初期化することができます.
もし対象のゲームオブジェクトに配下のオブジェクトがある場合,Children
プロパティーからアクセスすることができます.
Children
プロパティーには別名のc
が存在します.
最後に
issuesやpull requestなど大歓迎です!
Author And Source
この問題について([Unity]ゲームオブジェクトへのアクセスを楽にする自作ライブラリの紹介), 我々は、より多くの情報をここで見つけました https://qiita.com/yaegaki/items/9864d55811b4b9edf83f著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .