自动创建StrangeIOC框架配套脚本

根据个人需要修改ViewMes与MediatorMes内的创建内容。

文件会创建在右键选择的文件夹。


 

using System.IO;
using UnityEditor;
using UnityEngine;
namespace XXX
{
    public class CreateStrangeIocScripts : EditorWindow
    {
       static string path;
      [MenuItem("Assets/Create/StrangeIoc")]
        private static void Creat()
        {

            string[] strs = Selection.assetGUIDs;
            path = AssetDatabase.GUIDToAssetPath(strs[0]);
            EditorWindow.GetWindow(typeof(CreateStrangeIocScripts));
        }
        private int age;
        private string[] names = new string[10];
        private void OnGUI()
        {
            titleContent.text = "自动创建View与Mediator脚本";
            GUILayout.Space(10);
            age = EditorGUILayout.IntField("创建数量:", age);
            if (age >= 10)
                age = 10;
            for (int i = 0; i < age; i++)
            {
                GUILayout.Space(5);
                names[i] = EditorGUILayout.TextField("脚本前缀名称", names[i]);
            }
            if (GUILayout.Button("创建"))
            {
                CreatScripts();
            }
        }

        private void CreatScripts()
        {
            for (int i = 0; i < age; i++)
            {
                if (names[i]!=string.Empty&&names[i]!=null&&names[i].Length!=0)
                    WriteScripts(path, names[i]);
            }
            AssetDatabase.Refresh();
            Close();
        }
        private void WriteScripts(string path, string name)
        {
            string ViewMes =
"using strange.extensions.mediation.impl;\n"
+ "using UnityEngine;\n"
+ "namespace XXX\n"
+ "{\n"
+ "    public class "+name+"View : EventView\n"
+ "    {\n"
+ "        internal void init()\n"
+ "        {\n\n"
+ "        }\n"
+ "    }\n"
+ "}\n";
            string MediatorMes = "using strange.extensions.mediation.impl;\n"
+ "using UnityEngine;\n"
+ " namespace XXX\n"
+ " {\n"
+ "     public class "+ name + "Mediator : EventMediator\n"
+ "     {\n"
+ "         [Inject]\n"
+ "         public "+name+"View view { get; set; }\n"
+ "         public override void OnRegister()\n"
+ "         {\n"
+ "             view.init();\n"
+ "             UpdataListeners(true);\n"
+ "         }\n"
+ "     \n"
+ "         private void UpdataListeners(bool value)\n"
+ "         {\n"
+ "     \n"
+ "         }\n"
+ "     \n"
+ "         public override void OnRemove()\n"
+ "         {\n"
+ "             UpdataListeners(false);\n"
+ "         }\n\n"
+ "     }\n"
+ " }\n";

            File.WriteAllText($"{path}//{name}View.cs", ViewMes);
            File.WriteAllText($"{path}//{name}Mediator.cs", MediatorMes);
        }
    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值