// ------------------------------------------------------------------
// Desc:
// ------------------------------------------------------------------
public override void OnInspectorGUI()
{
// ========================================================
// exSprite Base GUI
// ========================================================
base.OnInspectorGUI();
GUILayout.Space(20);
// ========================================================
// init values
// ========================================================
bool needRebuild = false;
// ========================================================
// tileMap
// ========================================================
exTileMap newTileMap = (exTileMap)EditorGUILayout.ObjectField("Tile Map"
, editTileMap.tileMap
, typeof(exTileMap)
, false
);
if (newTileMap != editTileMap.tileMap)
{
editTileMap.CreateTileMap(newTileMap);
}
// ========================================================
// color
// ========================================================
editTileMap.color = EditorGUILayout.ColorField("Color", editTileMap.color);
// ========================================================
// Show Grid
// ========================================================
editTileMap.editorShowGrid = EditorGUILayout.Toggle("Show Grid", editTileMap.editorShowGrid);
// ========================================================
// Rebuild button
// ========================================================
GUI.enabled = !inAnimMode;
GUILayout.BeginHorizontal();
GUILayout.FlexibleSpace();
if (GUILayout.Button("Rebuild...", GUILayout.Height(20)))
{
needRebuild = true;
}
GUILayout.EndHorizontal();
GUI.enabled = true;
GUILayout.Space(5);
// if dirty, build it.
if (!EditorApplication.isPlaying && !AnimationUtility.InAnimationMode())
{
if (needRebuild)
{
EditorUtility.ClearProgressBar();
editTileMap.Build();
}
else if (GUI.changed)
{
if (editTileMap.meshFilter.sharedMesh != null)
{
editTileMap.UpdateMesh(editTileMap.meshFilter.sharedMesh);
}
EditorUtility.SetDirty(editTileMap);
}
}
}