视频:https://www.bilibili.com/video/BV1654y1H7D3
参考:https://blog.csdn.net/u010019717/article/details/44994435

扩展方法的条件:

  1. 必须声明为静态类
  2. 必须声明为静态方法
  3. 方法的第一个参数为this ```csharp using UnityEngine; using System.Collections;

//创建一个包含所有扩展方法的类 //是很常见的做法。此类必须是静态类。 public static class ExtensionMethods { //扩展方法即使像普通方法一样使用, //也必须声明为静态。请注意,第一个 //参数具有“this”关键字,后跟一个 Transform //变量。此变量表示扩展方法会成为 //哪个类的一部分。 public static void ResetTransformation(this Transform trans) { trans.position = Vector3.zero; trans.localRotation = Quaternion.identity; trans.localScale = new Vector3(1, 1, 1); //产生Transform对象 } }

  1. ```csharp
  2. using UnityEngine;
  3. using System.Collections;
  4. public class SomeClass : MonoBehaviour
  5. {
  6. void Start () {
  7. //请注意,即使方法声明中
  8. //有一个参数,也不会将任何参数传递给
  9. //此扩展方法。调用此方法的
  10. //Transform 对象会自动作为
  11. //第一个参数传入。
  12. transform.ResetTransformation();
  13. }
  14. }