【Unity】拡張メソッド(Extension Methods)
Transform クラスをリセットするメソッドを追加したい場合*1
// こんな感じで呼び出したい
transform.ResetTransformation();
拡張クラスを書く
// ExtensionMethods.cs using UnityEngine; using System.Collections; // 拡張メソッド. このクラスは static にする必要あります public static class ExtensionMethods { // 普通のメソッドと似てますが、 // 拡張メソッドの場合、以下2点が必須です // 1. static にする // 2. 第1引数に 'this' キーワードを追加 public static void ResetTransformation(this Transform transform) { transform.position = Vector3.zero; transform.localRotation = Quaternion.identity; transform.localScale = Vector3.one; } }
メソッド使用
// SomeClass.cs using UnityEngine; using System.Collections; public class SomeClass : MonoBehaviour { void Start () { transform.ResetTransformation(); } }
入力候補にも表示されます
*1:参考:http://unity3d.com/learn/tutorials/modules/intermediate/scripting/extension-methods