コンテンツにスキップ

拡張メソッド

書き方説明
ExtStaticHelpers.Twice(2)型名からの呼び出し
public static int Twice(this int n)組み込みの型への追加
public static int Double(this ExtPoint p)自作の値型への追加
public static float Flat(this Vector3 v)実行環境の型への追加
using UnityEngine;
using Tsukimi;
public static class ExtStaticHelpers
{
public static int Twice(int n) { return n * 2; }
}
public class ExtStatic : TsukimiBehaviour
{
void Start()
{
Debug.Log(ExtStaticHelpers.Twice(2)); // => 4
}
}
using UnityEngine;
using Tsukimi;
public static class ExtIntHelpers
{
public static int Twice(this int n) { return n * 2; }
}
public class ExtPrimitive : TsukimiBehaviour
{
void Start()
{
Debug.Log(2.Twice()); // => 4
}
}

自分で宣言した struct にも足せます。

using UnityEngine;
using Tsukimi;
public struct ExtPoint
{
public int X;
}
public static class ExtPointHelpers
{
public static int Double(this ExtPoint p) { return p.X * 2; }
}
public class ExtStruct : TsukimiBehaviour
{
void Start()
{
ExtPoint p = new ExtPoint();
p.X = 2;
Debug.Log(p.Double()); // => 4
}
}

実行環境が公開している型にも足せます。型の定義を持っていなくても書けます。

using UnityEngine;
using Tsukimi;
public static class ExtVectorHelpers
{
public static float Flat(this Vector3 v) { return v.x + v.z; }
}
public class ExtEnvironment : TsukimiBehaviour
{
void Start()
{
Debug.Log(Vector3.one.Flat()); // => 実行環境の値
}
}