はじめに
https://github.com/jinnin0105/UnityGetComponentAutoInjector
「Unity GetComponent Auto Injector」を Unity プロジェクトに導入することで
属性を適用すると自動で GetComponent できるようになります
使い方
using System.Collections.Generic; using UnityEngine; public class Example : MonoBehaviour { [SerializeField, GetComponent] private Transform m_transform1; [SerializeField, GetComponentInChildren] private Transform m_transform2; [SerializeField, GetComponentInChildren( true )] private Transform m_transform3; [SerializeField, GetComponentInChildren] private List<Transform> m_transform4; [SerializeField, GetComponentInParent] private Transform m_transform5; [SerializeField, GetComponentInParent( true )] private List<Transform> m_transform6; [SerializeField, GetComponentInParent] private List<Transform> m_transform7; [SerializeField, GetComponentInChildrenOnly] private Transform m_transform8; [SerializeField, GetComponentInChildrenOnly( false )] private List<Transform> m_transform9; [SerializeField, GetComponentInChildrenName( "GameObject (1)" )] private Transform m_transform10; [SerializeField, FindGameObject( "GameObject (1)" )] private GameObject m_transform11; [SerializeField, FindGameObjectWithTag( "Player" )] private GameObject m_transform12; [SerializeField, FindObjectOfType] private Transform m_transform13; }
上記のようなコードを記述すると、Unity エディタの再生状態が変化した時に
属性が適用された変数に自動でコンポーネントが設定されます
コンポーネントの歯車アイコンを選択して「Force auto inject this」を押すことでも
属性が適用された変数にコンポーネントを設定できます