Unity3d擴展方法的創建與使用

當我們重復寫一些繁雜的代碼,或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);
}


最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,991評論 19 139
  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,778評論 18 399
  • 一:java概述:1,JDK:Java Development Kit,java的開發和運行環境,java的開發工...
    ZaneInTheSun閱讀 2,690評論 0 11
  • 1. [C#語言基礎]請簡述拆箱和裝箱。 答: 裝箱操作: 值類型隱式轉換為object類型或由此值類型實現的任何...
    胤醚貔貅閱讀 4,894評論 1 29
  • 受近期媒體對喬任梁自殺的報道比較多的影響,大家對抑郁癥關注的多了,知道患有抑郁癥嚴重了會自殺輕生;所以有些人都在懷...
    老張聊心理閱讀 350評論 0 0