當我們重復寫一些繁雜的代碼,或C#的一些方法,我們就想能不能有更便捷的方法呢?當然是有的,在unity中,我們對它進行擴展。
對unity的類或C#的類進行擴展有以下兩點要注意:
1、這個類必須聲明為static,擴展的方法也必須要聲明為static
2、在使用時,就可以直接調用擴展的方法
一:創建擴展方法
using UnityEngine;
/// <summary>
/// 創建Transform擴展方法類
/// </summary>
public static class ExtensionMethods
{
/// <summary>
/// ResetTransform擴展方法
/// </summary>
/// <param name="trans">擴展對象</param>
public static void ResetTransform(this Transform trans)
{
trans.localPosition = Vector3.zero;
trans.localRotation = Quaternion.identity;
trans.localScale = new Vector3(1, 1, 1);
}
}
二:調用擴展方法
using UnityEngine;
/// <summary>
/// 調用Transform擴展方法
/// </summary>
public class Use : MonoBehaviour
{
void Start()
{
transform.ResetTransform();
}
}
C#擴展方法寫法
擴展C#的方法
為C#的集合擴展一個方法,當在調用時,就可以直接調用CFirstOrDefault
public static T CFirstOrDefault<T>(this IEnumerable<T> source)
{
if (source != null)
{
foreach (T item in source)
{
return item;
}
}
return default(T);
}