Unity3d扩展方法的创建与使用

作者: 好怕怕 | 来源:发表于2016-07-18 13:15 被阅读408次

    当我们重复写一些繁杂的代码,或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);
    }
    
    
    

    相关文章

      网友评论

        本文标题:Unity3d扩展方法的创建与使用

        本文链接:https://www.haomeiwen.com/subject/cubpjttx.html