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,886评论 18 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,759评论 18 399
  • 一:java概述:1,JDK:Java Development Kit,java的开发和运行环境,java的开发工...
    ZaneInTheSun阅读 2,687评论 0 11
  • 1. [C#语言基础]请简述拆箱和装箱。 答: 装箱操作: 值类型隐式转换为object类型或由此值类型实现的任何...
    胤醚貔貅阅读 4,884评论 1 29
  • 受近期媒体对乔任梁自杀的报道比较多的影响,大家对抑郁症关注的多了,知道患有抑郁症严重了会自杀轻生;所以有些人都在怀...
    老张聊心理阅读 349评论 0 0