當前位置:成語大全網 - 書法字典 - c# unity3D如何快速無縫拼接100個並排立方體?

c# unity3D如何快速無縫拼接100個並排立方體?

寫個編輯器,不太難。使用起來也很方便,想換就換。點擊菜單欄工具/創建框?經驗,代碼如下:

使用?系統。收藏;

使用?系統。集合。通用;

使用?UnityEngine

使用?UnityEditor

使用?系統。IO;

公共的?班級?CreatBoxEditor?:?編輯器窗口

{

公共的?enum?目錄

{

_DirX?=?0,

_DirY?=?1,

_DirZ?=?2

}

//生成方向

公共的?Dir?_Dir?=?導演。_ DirX

//初始化數量

公共的?int?_InitNum?=?10;

//預成型

公共的?遊戲對象?_ Box

//框之間的距離

公共的?浮空?_Dis?=?1f;

【MenuItem(“Tools/create box“,false,23)】

公共的?靜電?虛空?OpenWindows()?{?

編輯器窗口?windows?=?get window(type of(creatbox editor));

windows.titleContent.text?=?”create box”;

windows.maxSize?=?新的?向量2(400,?200);

windows.minSize?=?新的?向量2(400,?200);

窗戶。show();

}

虛空?翁圭()

{

GUILayout。BeginHorizontal(“Box“);

GUILayout。begin vertical();

_Dir?=?編輯指南。EnumPopup(“生成方向:“,?_ Dir);

GUILayout。BeginHorizontal();

GUILayout。end horizontal();

GUILayout。BeginHorizontal();

GUILayout。標簽(“生成數量:?”);

_InitNum?=?編輯指南。int field(_ init num);

GUILayout。end horizontal();

GUILayout。BeginHorizontal();

_Box?=?(遊戲對象)?編輯指南。ObjectField(“預制:?”,?_Box,typeof(遊戲對象));

GUILayout。end horizontal();

GUILayout。BeginHorizontal();

GUILayout。標簽(“兩個對象之間的距離:?”);

_Dis?=?編輯指南。float field(_ Dis);

GUILayout。end horizontal();

如果?(GUILayout。按鈕(“開始”))

{

creat(_ Dir);

}

GUILayout。end vertical();

GUILayout。end horizontal();

}

虛空?創建(Dir?dir)

{

切換?(目錄)

{

案例?導演。_DirX:

if(_ InitNum?& gt?0)

{

如果?(_Box?==?空)

{

調試。LogError(“預設?是嗎?null“);

返回;

}

遊戲對象?父母?=?新的?game object(“BoxList“);

for(int?我?=?0;?我?& lt?_ InitNum?i++)

{?

遊戲對象?去嗎?=?實例化(_Box)?作為什麽?遊戲對象;

go.transform.parent?=?parent.transform

go.transform.localPosition?=?新的?向量3(_ Dis?*?我,?0,?0);

}

}

打破;

案例?導演。_DirY:

如果?(_InitNum?& gt?0)

{

如果?(_Box?==?空)

{

調試。LogError(“預設?是嗎?null“);

返回;

}

遊戲對象?父母?=?新的?game object(“BoxList“);

為了什麽?(int?我?=?0;?我?& lt?_ InitNum?i++)

{

遊戲對象?去嗎?=?實例化(_Box)?作為什麽?遊戲對象;

go.transform.parent?=?parent.transform

go.transform.localPosition?=?新的?向量3(0,_Dis?*?我,?0);

}

}

打破;

案例?導演。_DirZ:

如果?(_InitNum?& gt?0)

{

如果?(_Box?==?空)

{

調試。LogError(“預設?是嗎?null“);

返回;

}

遊戲對象?父母?=?新的?game object(“BoxList“);

為了什麽?(int?我?=?0;?我?& lt?_ InitNum?i++)

{

遊戲對象?去嗎?=?實例化(_Box)?作為什麽?遊戲對象;

go.transform.parent?=?parent.transform

go.transform.localPosition?=?新的?向量3(0,0,_Dis?*?我);

}

}

打破;

}

}

}