扩展Unity的方法
写更少代码的需求
当我们重复写一些繁杂的代码,或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
分类:
C#和.Net
, Unity 技术积累
标签:
unity
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器