扩展方法

通过扩展方法可以向类型添加功能而不必创建驱动类型或更改原始类型
它适用于需要向类添加功能但不能编辑类的情况

ExtensionMethods

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

SomeClass

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

命名空间

相当于类的容器,用于组织脚本避免冲突

SomeClass

  1. namespace SampleNamespace
  2. {
  3. public class SomeClass : MonoBehaviour
  4. {
  5. void Start ()
  6. {
  7. }
  8. }
  9. }