為Unity元件編寫擴充套件

2021-09-19 09:56:21 字數 1187 閱讀 4412

這幾行**,寫到乙個editor檔案中,就可以在滑鼠選中某個遊戲物件時,列印出它的路徑,let me show you the code!

using unityengine;

using unityeditor;

using system.collections;

public class toolkit : editorwindow ;

}}

紫薇請等一下!=ε=ε=ε=┏(゜ロ゜;)┛

為什麼我這裡沒有getpath()函式呀?

嚯嚯嚯,這個是我的擴充套件啦!

我曾經大量使用列舉的擴充套件函式,比如我需要用列舉定義所有的技能,每個技能有乙個名稱,我一般寫成擴充套件。

public enum skill

static class skillmethods

}

這樣我需要的時候,直接用skill.****.getname()就可以啦,我自己覺得蠻方便的……可維護性很強。

那麼再來看下getpath函式的需求,雖然transform不能獲取路徑,但是可以找到父節點,還可以找到root,這就很方便啦,只要從底向上,把所有名字用\連線起來就可以了~自己動手豐衣足食吶!

上**!

public static class transformextension else

}return path.tostring();

}}

有幾個地方需要解釋給第一次寫擴充套件的人說說。

擴充套件的格式就是如此,元件名加上extension字尾,和列舉的擴充套件方法不同。裡面的函式名、變數之類的,也要按照我**中的格式來寫。

stringbuilder是推薦的字串拼接方式,需要using system.text;,可以提公升字串拼接效能,如果大量操作,用+號可能會有卡頓哦~我這裡雖然沒有大量操作,但是為了使用insert函式就用了stringbuilder。

insert這裡是為了將父節點的名字,插在路徑前面,因為我們是從底向上找,但是最終結果需要的是父節點在前,子節點在後的字串。

用乙個指標指向當前節點,如果不是根節點,那麼將父節點指向為當前節點,並拼接名字,然後用迴圈一直找到root節點為止。

就醬!

為AS2 0添磚加瓦 編寫類擴充套件

1b 序 1b 基於類的程式設計,使得我們可以更加輕鬆地定製屬於自己的物件,同時也給已有類的擴充套件提供了極大的方便。現在我們可以通過extends關鍵字實現繼承,並通過import來匯入位於其他.as檔案中的類。在這些基礎之上,我們完全可以發展自己的想象力,改進已有的as,使之成為一款適合自己的指...

Unity擴充套件 自定義事件Send元件

在寫專案的時候,我建立了乙個方法裡面需要乙個int的引數.我記得是uievent trigger不能直接傳遞乙個數字,最多只能傳遞乙個gameobject屬性過去 那個值不想再元件上定義 uibutton message元件不能傳遞引數.uievent trigger元件 傳遞gameobject某...

Unity外掛程式擴充套件中元件常用的幾個方法

最近為美術編寫乙個unity編輯器的擴充套件,主要為了減輕美術在修改預製物件時的機械化操作的繁瑣和出錯。具體實現的幾個功能 1 刪除指定元件 2 複製 貼上指定的元件 3 重新關聯新的屬性 4 重新儲存預製物件 一 刪除指定型別的元件 public static void removecompone...