static void SetTileSize(ColliderTile tile, float newSize) { SetBox(tile.boxR, BoxMode.R, newSize); EditorUtility.SetDirty(tile.boxR); SetBox(tile.boxD, BoxMode.D, newSize); EditorUtility.SetDirty(tile.boxD); SetBox(tile.boxRD, BoxMode.RD, newSize); EditorUtility.SetDirty(tile.boxRD); SetCircle(tile.singleCircle, newSize); EditorUtility.SetDirty(tile.singleCircle); SetBox(tile.boxRDCircle, BoxMode.RD, newSize); SetCircle(tile.boxRDCircle, newSize); EditorUtility.SetDirty(tile.boxRDCircle); SetBox(tile.boxRCircle, BoxMode.R, newSize); SetCircle(tile.boxRCircle, newSize); EditorUtility.SetDirty(tile.boxRCircle); SetBox(tile.boxDCircle, BoxMode.D, newSize); SetCircle(tile.boxDCircle, newSize); EditorUtility.SetDirty(tile.boxDCircle); tile.size = newSize; EditorUtility.SetDirty(tile); }
static void EnsurePrefabPaths(ColliderTile tile) { EnsurePrefabPath(tile.boxR, "box_r", tile); EnsurePrefabPath(tile.boxD, "box_d", tile); EnsurePrefabPath(tile.boxRD, "box_rd", tile); EnsurePrefabPath(tile.singleCircle, "single_circle", tile); EnsurePrefabPath(tile.boxRDCircle, "rdcircle", tile); EnsurePrefabPath(tile.boxRCircle, "rcircle", tile); EnsurePrefabPath(tile.boxDCircle, "dcircle", tile); }
static void EnsurePrefabPath(GameObject prefab, string name, ColliderTile tile) { var tilePath = AssetDatabase.GetAssetPath(tile); var orgPath = AssetDatabase.GetAssetPath(prefab); var tileDir = Path.GetDirectoryName(tilePath); if (prefab.name != name || tileDir != Path.GetDirectoryName(orgPath)) { var newPath = tileDir + "/" + tile.name + "_" + name + ".prefab"; AssetDatabase.MoveAsset(orgPath, newPath); } }
public ColliderMap(int width, int height) { this.width = width; this.height = height; Debug.Log(width + " " + height); tileMap = new ColliderTile[height, width]; for (int i = 0; i < height; i++) { for (int j = 0; j < width; j++) { tileMap[i, j] = new ColliderTile(); } } }
static GameObject NewGameObject(string name, List <GameObject> gos, ColliderTile tileObj) { var go = new GameObject(name); go.isStatic = true; go.layer = LayerMask.NameToLayer("Wall"); gos.Add(go); var thePath = AssetDatabase.GetAssetPath(tileObj); var dir = Path.GetDirectoryName(thePath); var oldGo = go; go = PrefabUtility.CreatePrefab(dir + "/" + name + ".prefab", go, ReplacePrefabOptions.Default); DestroyImmediate(oldGo); //AssetDatabase.AddObjectToAsset(go, tileObj); return(go); }