【Unity实战】给Unity的类添加新功能
创始人
2024-11-14 06:38:00
0

有时候我们希望给Unity中的一些类(比如Transform、GameObject)添加一些新的功能,但是又不想修改原始的类。这时候我们可以使用扩展方法来实现这个需求。

扩展方法的使用

扩展方法是C#中的一种特殊方法,可以让我们给已有的类添加新的方法,而无需修改原始类的定义。在Unity中,我们可以使用扩展方法给Transform、GameObject等类添加新的功能。

示例代码

using UnityEngine;  public static class TransformUtil {     public static string GetPath(this Transform current)     {         if (current.parent == null)             return current.gameObject.scene.name + "/" + current.name;         return current.parent.GetPath() + "/" + current.name;     } } 

上面的示例代码定义了一个扩展方法 GetPath,用来获取Transform在场景中的层级路径。现在,你可以在任何地方通过 yourTransform.GetPath() 来获取这个路径字符串了。

我们再看一个示例:

using System.Collections.Generic;  public static class ArrayExtensions { 	public static bool HasAnyValidData(this T[] array) 	{ 		if (array == null) return false;  		foreach (var item in array) 			if (!EqualityComparer.Default.Equals(item, default)) 				return true; 		return false; 	}  	public static bool AllElementsAreValid(this T[] array) 	{ 		if (array == null) return false;  		foreach (var item in array) 			if (EqualityComparer.Default.Equals(item, default)) 				return false; 		return true; 	} }  

以上示例代码扩展了Array,主要校验一个array是否包含有效的数据。使用方法很简单,yourArray.HasAnyValidData()

希望这个小技巧能够帮助到各位,Happy programming!🚀

相关内容

热门资讯

推出新举措!微信小程序微乐辅助... 推出新举措!微信小程序微乐辅助器脚本,微乐小程序黑科技,方式教程(有挂修改器)-哔哩哔哩1、微信小程...
透视有挂!hhpoker透视脚... 透视有挂!hhpoker透视脚本视频(透视)hhpoker德州挂真的有吗-确实是有挂(哔哩哔哩)1)...
事发当天!微乐家乡麻将辅助,微... 事发当天!微乐家乡麻将辅助,微乐小程序黑科技,讲义教程(有挂神器)-哔哩哔哩1、玩家可以在微乐家乡麻...
近年来!wepoker开辅助能... 近年来!wepoker开辅助能查到吗(透视)wejoker辅助器怎么卖-总是真的是有挂(哔哩哔哩)1...
近年来!微乐自建房黑科技工具怎... 近年来!微乐自建房黑科技工具怎么找,微乐小程序黑科技,模块教程(有挂app)-哔哩哔哩1、打开软件启...
最新消息!aapoker脚本(... 最新消息!aapoker脚本(透视)hhpoker辅助挂下载-本来有挂(哔哩哔哩)一、hhpoker...
透视软件!微乐家乡小程序辅助,... 透视软件!微乐家乡小程序辅助,微乐小程序免费黑科技,攻略教程(有挂神器)-哔哩哔哩运微乐小程序免费黑...
据通报!pokerworld修... 据通报!pokerworld修改器(透视)竞技联盟破解版最新版-竟然真的是有挂(哔哩哔哩)1、在竞技...
此事迅速冲上热搜!微信微乐辅助... 此事迅速冲上热搜!微信微乐辅助ios,微乐小程序免费黑科技,绝活儿教程(有挂平台)-哔哩哔哩1、玩家...
黑科技辅助挂!德普之星私人局辅... 黑科技辅助挂!德普之星私人局辅助器(透视)德普之星辅助工具如何打开-原来是真的挂(哔哩哔哩)1、德普...