引言

最近跟着麦克学习Unity的时候,学习到了类的扩展方法。比如你现在有一个已有的类,你想给它加一个方法,当然如果是你自己写的类可以直接在这个方法里面写,但是如果是Unity自带的类,我们不可能直接去编辑它们,我们只是去利用这个类然后加上一些我们自己的方法。所以我们就可以用到Extension Method 扩展方法。
附:Unity官方教程:教程

注:

下方步骤均为硬性要求,并且以扩展Transform类为例子。

步骤一

首先创建一个类。不继承MonoBehaviour。
将该类设置为Static,也就是静态类。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public static class ExtensionMethod
{}
步骤二

创建一个你需要拓展的的方法,该方法为静态的。该方法的第一个参数为以下格式:this + 你需要扩展的类的名字 + 变量名。后面几个参数都是需要就加。

解析:第一个参数表示你需要扩展的类,该扩展方法中可以用,实际调用方法的时候不需要传该参数。(文章下方有调用例子)

例如

this Transform trans

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public static class ExtensionMethod
{public static bool ExtensionMethod(this Transform transform, int var1, float var2){}
}
调用

在其他类的方法中,你可以这样来调用

if(满足某个条件)
{transform.ExtensionMethod(var1, var2);//其中var1和var2为我自己需要的参数的变量
}

总结

Extension Method 扩展方法:当你需要为某个类添加一些自定义的功能,但是又不能直接访问到源码的时候可以用到。

Unity学习笔记--Extension Method 扩展方法相关推荐

  1. Unity常用的一些简易扩展方法

    Unity常用的一些简易扩展方法 引言 在unity项目的日常开发中,会发现unity现有的一些类的方法不是特别够用,但有些方法使用频率又很高,这时候,我们就可以用到Extension Method ...

  2. 【Unity学习笔记】[Unity中文课堂教程] C#中级编程代码

    [Unity学习笔记][Unity中文课堂教程] C#中级编程代码 最近想补一补C#基础,Unity官方的C#中级编程教程质量很高,于是开个帖子把跟着敲+记录了部分价讲解和我自己的理解的代码存在这 原 ...

  3. 【Unity学习笔记】b站Unity架构课Unity3D 商业化的网络游戏架构(高级/主程级别)

    [Unity学习笔记]b站Unity架构课Unity3D 商业化的网络游戏架构(高级/主程级别) 自己跟着学完了,写了不少代码,会放在CSDN代码库,因为老师并没有提供源码,录屏也不是完全连续,所以难 ...

  4. es6学习笔记-字符串的扩展_v1.0_byKL

    es6学习笔记-字符串的扩展_v1.0 字符的Unicode表示法 JavaScript 允许使用uxxxx的形式表示一个字符,但在 ES6 之前,单个码点仅支持u0000到uFFFF,超出该范围的必 ...

  5. 《Go语言圣经》学习笔记 第六章 方法

    <Go语言圣经>学习笔记 第六章 方法 目录 方法声明 基于指针对象的方法 通过嵌入结构体来扩展类型 方法值和方法表达式 示例:Bit数组 封装 注:学习<Go语言圣经>笔记, ...

  6. Unity学习笔记(4)-----粒子效果的实现

    Unity学习笔记(4)-–粒子效果的实现 一.效果展示 下面用若干张张动图展示效果: 大概就是这样,并不是很难. 实际效果要比图中的好一点(顺畅得多). 实现步骤 大致可以分为如下几个步骤,然后逐个 ...

  7. Unity学习笔记1 简易2D横版RPG游戏制作(一)

    这个教程是参考一个YouTube上面的教程做的,原作者的教程做得比较简单,我先参考着做一遍,毕竟我也只是个初学者,还没办法完全自制哈哈.不过我之前也看过一个2D平台游戏的系列教程了,以后会整合起来,做 ...

  8. Unity学习笔记:个人学习项目《疯狂天才埃德加》纠错文档

    Unity学习笔记:个人学习项目<疯狂天才埃德加>纠错文档 本文档是完成学校Unity课程作业时建立的纠错文档.用于记录自己开发过程中遇到的各种问题,以便下次遇到相同的问题时及时找到解决方 ...

  9. Unity学习笔记:Unity 3D 飞机大战

    Unity学习笔记:Unity 3D 飞机大战 1.打开unity软件后,首先新建Quad作为背景,导入飞机模型,并为其添加刚体 然后创建C#脚本,挂载到飞机上. 2.给飞机创建子弹,让子弹成为预制体 ...

最新文章

  1. mysql写入时判断锁_MySQL 锁检查
  2. java coding_java coding学习
  3. opencv android黑屏,装好了OpenCVManager,开启了Camera权限,在手机上CameraFaceDetectionView无图像...
  4. OpenCASCADE绘制测试线束:数据交换命令之XDE 图层命令
  5. 洛克王国进不去 不显示服务器,《洛克王国》FAQ:注册和登陆问题
  6. datetime类型保存的时间比实际时间少8小时
  7. 生成随机验证码,上传图片文件,解析HTML
  8. python的list()列表数据类型的方法详解
  9. mysql 直接删表空间文件_oracle删除(释放)数据文件/表空间流程
  10. PHP字体向右移动,CSS3如何实现文字向右循环闪过效果以及可在移动端使用的实例代码分享...
  11. 关于计算机的知识古人,世界仅是一串二进制编码?我们是虚拟的?古人早就给出了答案...
  12. 导出jar包和api文档
  13. c语言单分支编程题,C语言习题集(分支和选择).doc
  14. Ubuntu下的“千千静听”-Audacious
  15. 关于网站项目计划书的写法
  16. python俄罗斯方块代码34行_轻松一下,500 行代码写一个俄罗斯方块游戏玩玩
  17. 语句摘抄——第21周
  18. 航顺HK32F030MF4P6开发脱坑小记
  19. Feedback(反馈)
  20. 815. 打印字符串

热门文章

  1. go 发送nats消息提示no response from stream
  2. java+sql 基于jsp816教材管理系统sql(java,web)
  3. 帖子置顶原理 php,自定义织梦cms文章置顶及其功能原理分析
  4. Python金融大数据分析-回归分析
  5. 基于555定时器的24秒计时器
  6. Material Design(4)
  7. 网页前端代码存档 - 【第三期】全屏banner图片切换特效详解
  8. 10款网站后台管理系统模板_bootstrap网站后台模板_html后台模板下载(一)
  9. 各种管理系统术语,OMS、WMS、CRM...
  10. GDAL创建带有空间参考坐标系的shp矢量文件遇到的问题与解决方法