扩展Unity的方法
发布时间:2021-05-21 06:58:27 所属栏目:大数据 来源: https://www.jb51.cc
导读:写更少代码的需求 当我们重复写一些繁杂的代码,或C#的一些方法,我们就想能不能有更便捷的方法呢?当然在unity中,我们对它进行扩展。 对unity的类或C#的类进行扩展有以下两点要注意: 1、这个类必须声明为static,扩展的方法也必须要声明为static 2、在使
写更少代码的需求当我们重复写一些繁杂的代码,或C#的一些方法,我们就想能不能有更便捷的方法呢?当然在unity中,我们对它进行扩展。 对unity的类或C#的类进行扩展有以下两点要注意: 1、这个类必须声明为static,扩展的方法也必须要声明为static 2、在使用时,就可以直接调用扩展的方法 扩展Unity的属性Demousing 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 (编辑:北几岛) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |