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

2021-09-20 11:54:06 字數 1927 閱讀 1765

最近為美術編寫乙個unity編輯器的擴充套件,主要為了減輕美術在修改預製物件時的機械化操作的繁瑣和出錯。具體實現的幾個功能:

1、刪除指定元件;

2、複製、貼上指定的元件;

3、重新關聯新的屬性;

4、重新儲存預製物件;

一、刪除指定型別的元件

public

static

void

removecomponenthandler(gameobject gameobject, type componenttype)

}

}

二、複製元件(這裡實現的是一次僅複製乙個某型別的元件)

public

static

void

copycomponenthandler(type componenttype, gameobject fromgameobject, gameobject togameobject)

}//進行貼上操作

//unityeditorinternal.componentutility.copycomponent(needcopycomponent);

unityeditorinternal.componentutility.pastecomponentasnew(togameobject);

}

三、關聯新屬性

就是遍歷指定的gameobject,然後找到它附加的元件,重新設定其值即可。

四、替換預製物件

gameobject activegameobject =selection.activegameobject;

if (activegameobject != null

)

//查詢id

string strid = new regex(@"

h$").replace(activegameobject.name, ""

);

//第六步 儲存預製物件

string strcurrselectprefabname =activegameobject.name;

if (strprefabpath.endswith("

.prefab"))

debug.log(

"預製物件

" + strcurrselectprefabname + "

修改完成。");

}else

}

最核心的幾行**:

1、例項化乙個新的gameobject;

2、替換預製物件;

3、銷毀老的gameobject;

4、重新整理資源;

對於美術的同事來講,最複雜、麻煩的莫過於重新關聯屬性,特別是骨骼動畫。因為之前沒有統一的規範,所以關聯哪一段動畫實際上是需要一層一層找的,我看著他們找都覺得累,怎麼辦呢?我想到乙個辦法,就是通過name查詢新的元件,然後重新賦值關聯。通過name查詢某個gameobject下的子節點(前提條件是該name唯一)

public

static gameobject findchildgameobject(gameobject parent, string

childname)

if (parent.transform.childcount < 1

)

gameobject obj = null

;

for (int i = 0; i < parent.transform.childcount; i++)

}return

obj;

}

上面基本上實現了,元件幾個常用的方法:

1、新增元件(先複製後貼上);

2、刪除元件;

3、通過名字查詢子元件;

4、更新預製物件;

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

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

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

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

為Unity元件編寫擴充套件

這幾行 寫到乙個editor檔案中,就可以在滑鼠選中某個遊戲物件時,列印出它的路徑,let me show you the code using unityengine using unityeditor using system.collections public class toolkit e...