使用?系統。收藏;
使用?系統。集合。通用;
使用?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?*?我);
}
}
打破;
}
}
}