Created
March 21, 2014 03:00
-
-
Save baba-s/9678648 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| using System; | |
| using UnityEngine; | |
| /// <summary> | |
| /// Component型の拡張メソッドを管理するクラス | |
| /// </summary> | |
| public static partial class ComponentExtensions | |
| { | |
| /// <summary> | |
| /// コンポーネントを追加します | |
| /// </summary> | |
| /// <typeparam name="T">追加するコンポーネントの型</typeparam> | |
| /// <param name="component">Component型のインスタンス</param> | |
| /// <returns>追加したコンポーネント</returns> | |
| public static T AddComponent<T>(this Component component) where T : Component | |
| { | |
| return component.gameObject.AddComponent<T>(); | |
| } | |
| /// <summary> | |
| /// コンポーネントを追加します | |
| /// </summary> | |
| /// <param name="component">Component型のインスタンス</param> | |
| /// <param name="className">追加するコンポーネントの名前</param> | |
| /// <returns>追加したコンポーネント</returns> | |
| public static Component AddComponent(this Component component, string className) | |
| { | |
| return component.gameObject.AddComponent(className); | |
| } | |
| /// <summary> | |
| /// コンポーネントを追加します | |
| /// </summary> | |
| /// <param name="component">Component型のインスタンス</param> | |
| /// <param name="componentType">追加するコンポーネントの種類</param> | |
| /// <returns>追加したコンポーネント</returns> | |
| public static Component AddComponent(this Component component, Type componentType) | |
| { | |
| return component.gameObject.AddComponent(componentType); | |
| } | |
| /// <summary> | |
| /// コンポーネントを取得します。コンポーネントが存在しなければ追加してから取得します | |
| /// </summary> | |
| /// <typeparam name="T">取得するコンポーネントの型</typeparam> | |
| /// <param name="component">Component型のインスタンス</param> | |
| /// <returns>コンポーネント</returns> | |
| public static T SafeGetComponent<T>(this Component component) where T : Component | |
| { | |
| return component.GetComponent<T>() ?? component.AddComponent<T>(); | |
| } | |
| /// <summary> | |
| /// コンポーネントを取得します。コンポーネントが存在しなければ追加してから取得します | |
| /// </summary> | |
| /// <param name="component">Component型のインスタンス</param> | |
| /// <param name="className">取得するコンポーネントの名前</param> | |
| /// <returns>コンポーネント</returns> | |
| public static Component SafeGetComponent(this Component component, string className) | |
| { | |
| return component.GetComponent(className) ?? component.AddComponent(className); | |
| } | |
| /// <summary> | |
| /// コンポーネントを取得します。コンポーネントが存在しなければ追加してから取得します | |
| /// </summary> | |
| /// <param name="component">Component型のインスタンス</param> | |
| /// <param name="componentType">取得するコンポーネントの種類</param> | |
| /// <returns>コンポーネント</returns> | |
| public static Component SafeGetComponent(this Component component, Type componentType) | |
| { | |
| return component.GetComponent(componentType) ?? component.AddComponent(componentType); | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment