2d-extras 是 unity 官方為 TileMap 做的一個非常好用的插件,你可以在 GitHub 上下載到它。
你可能跟我一樣遇到下載的 2d-extras 包里的 CustomRuleTileMenu 腳本報錯的情況。
根據報錯提示,是調用了並不存在的函數,經過查找,確實是缺少了相應的函數。
解決方案一:
只需要打開那個腳本,然后把里面的代碼替換成以下的代碼即可。
1 namespace UnityEditor 2 { 3 static class CustomRuleTileMenu 4 { 5 [MenuItem("Assets/Create/Custom Rule Tile Script", false, 89)] 6 static void CreateCustomRuleTile() 7 { 8 CreateScriptAsset("Assets/Tilemap/Rule Tiles/Scripts/ScriptTemplates/NewCustomRuleTile.cs.txt", "NewCustomRuleTile.cs"); 9 } 10 11 static void CreateScriptAsset(string templatePath, string destName) 12 { 13 typeof(ProjectWindowUtil) 14 .GetMethod("CreateScriptAsset", System.Reflection.BindingFlags.Static | System.Reflection.BindingFlags.NonPublic) 15 .Invoke(null, new object[] { templatePath, destName }); 16 } 17 } 18 }
解決方案二:
或者,改用 2d-techdemos 版本,這個是官方提供的,供大家學習的版本,里面除了完整的 2d-extras 外還包括了一些示例,經本人親測,這個版本沒有問題,就是示例素材和palette太多,不需要它們時就會略顯礙眼。
事實上,解決方案一中的代碼就是這個 2d-techdemos 版本里的 CustomRuleTileMenu 腳本文件的代碼。
如果你有興趣,對比 2d-extras 版本和2d-techdemos 版本 的CustomRuleTileMenu腳本內容,不難看出兩者實現的是同樣的功能,只是實現方法有些出入而已,我做的也只是相當於替換零件的操作。