unity3D技术分享程序员Unity基础入门分享

Unity3d扩展方法的创建与使用

2016-07-18  本文已影响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);
}


上一篇下一篇

猜你喜欢

热点阅读