static void Create() { tk2dSpriteCollectionData sprColl = null; if (sprColl == null) { // try to inherit from other TileMaps in scene tk2dTileMap sceneTileMaps = GameObject.FindObjectOfType(typeof(tk2dTileMap)) as tk2dTileMap; if (sceneTileMaps) { sprColl = sceneTileMaps.Editor__SpriteCollection; } } if (sprColl == null) { tk2dSpriteCollectionIndex[] spriteCollections = tk2dEditorUtility.GetOrCreateIndex().GetSpriteCollectionIndex(); foreach (var v in spriteCollections) { if (v.managedSpriteCollection) continue; // don't wanna pick a managed one GameObject scgo = AssetDatabase.LoadAssetAtPath(AssetDatabase.GUIDToAssetPath(v.spriteCollectionDataGUID), typeof(GameObject)) as GameObject; var sc = scgo.GetComponent<tk2dSpriteCollectionData>(); if (sc != null && sc.spriteDefinitions != null && sc.spriteDefinitions.Length > 0 && sc.allowMultipleAtlases == false) { sprColl = sc; break; } } if (sprColl == null) { EditorUtility.DisplayDialog("Create TileMap", "Unable to create sprite as no SpriteCollections have been found.", "Ok"); return; } } GameObject go = tk2dEditorUtility.CreateGameObjectInScene("TileMap"); go.transform.position = Vector3.zero; go.transform.rotation = Quaternion.identity; tk2dTileMap tileMap = go.AddComponent<tk2dTileMap>(); tileMap.BeginEditMode(); Selection.activeGameObject = go; Undo.RegisterCreatedObjectUndo(go, "Create TileMap"); }