扩展Unity的方法

Posted 三页菌

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了扩展Unity的方法相关的知识,希望对你有一定的参考价值。

https://www.cnblogs.com/zhaoqingqing/p/4629336.html

 

写更少代码的需求

当我们重复写一些繁杂的代码,或C#的一些方法,我们就想能不能有更便捷的方法呢?当然在unity中,我们对它进行扩展。

对unity的类或C#的类进行扩展有以下两点要注意:

1、这个类必须声明为static,扩展的方法也必须要声明为static

2、在使用时,就可以直接调用扩展的方法

扩展Unity的属性

Demo

using UnityEngine;
using System.Collections;

//It is common to create a class to contain all of your
//extension methods. This class must be static.
public static class ExtensionMethods
{
    //Even though they are used like normal methods, extension
    //methods must be declared static. Notice that the first
    //parameter has the \'this\' keyword followed by a Transform
    //variable. This variable denotes which class the extension
    //method becomes a part of.
    public static void ResetTransformation(this Transform trans)
    {
        trans.position = Vector3.zero;
        trans.localRotation = Quaternion.identity;
        trans.localScale = new Vector3(1, 1, 1);
    }
}

 

使用方法

using UnityEngine;
using System.Collections;

public class SomeClass : MonoBehaviour 
{
    void Start () {
        //Notice how you pass no parameter into this
        //extension method even though you had one in the
        //method declaration. The transform object that
        //this method is called from automatically gets
        //passed in as the first parameter.
        transform.ResetTransformation();
    }
}

扩展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);
}

文档资料

文档:http://unity3d.com/learn/tutorials/modules/intermediate/scripting/extension-methods

以上是关于扩展Unity的方法的主要内容,如果未能解决你的问题,请参考以下文章

不包含“AddComponent”的定义,并且 Unity 中没有可访问的扩展方法“AddComponent”错误

unity shader 编辑器扩展类 ShaderGUI

Android 嵌套片段方法

Unity编辑器扩展——PropertyDrawer

Unity编辑器扩展——PropertyDrawer

Unity 使用Animation Clip(动画片段) 对Animation Rig的Rig Weight (rig权重) 进行调整,出现无法调整的问题,及解决方法