1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- using System;
- using System.IO;
- using UnityEditor.Tilemaps;
- using UnityEngine;
-
- namespace UnityEditor
- {
- static class CustomRuleTileMenu
- {
- private static string tempCustomRuleTilePath;
- private const string customRuleTileScript =
- @"using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using UnityEngine.Tilemaps;
-
- [CreateAssetMenu]
- public class #SCRIPTNAME# : RuleTile<#SCRIPTNAME#.Neighbor> {
- public bool customField;
-
- public class Neighbor : RuleTile.TilingRule.Neighbor {
- public const int Null = 3;
- public const int NotNull = 4;
- }
-
- public override bool RuleMatch(int neighbor, TileBase tile) {
- switch (neighbor) {
- case Neighbor.Null: return tile == null;
- case Neighbor.NotNull: return tile != null;
- }
- return base.RuleMatch(neighbor, tile);
- }
- }";
-
- [MenuItem("Assets/Create/2D/Tiles/Custom Rule Tile Script", false, (int)ETilesMenuItemOrder.CustomRuleTile)]
- static void CreateCustomRuleTile()
- {
- if (String.IsNullOrEmpty(tempCustomRuleTilePath) || !File.Exists(tempCustomRuleTilePath))
- tempCustomRuleTilePath = FileUtil.GetUniqueTempPathInProject();
- File.WriteAllText(tempCustomRuleTilePath, customRuleTileScript);
- ProjectWindowUtil.CreateScriptAssetFromTemplateFile(tempCustomRuleTilePath, "NewCustomRuleTile.cs");
- }
- }
- }
|