コード例 #1
0
        public override void OnInspectorGUI()
        {
            switch (_state)
            {
            case StateGenerate.None:
            {
                if (GUILayout.Button("Create"))
                {
                    _state = StateGenerate.ChooseType;
                }
                if (GUILayout.Button("Check"))
                {
                    AssemblyReflectionHelper.GetAllTypesInSolution <DataBox>().Where(t => !t.IsAbstract && !t.IsGenericType).ForEach(t =>
                        {
                            CreateAsset(t);
                        });
                    _allProviders = AssemblyReflectionHelper.AllDataBox().ToList();
                    RefreshView();
                }
                break;
            }

            case StateGenerate.ChooseType:
                EditorGUILayout.BeginVertical();
                DrawChooseType();
                EditorGUILayout.EndVertical();
                break;

            case StateGenerate.Generating:
            {
                _allGenerators.ForEach(g => g.Generate());
                AssetDatabase.Refresh();
                _state = StateGenerate.None;
                break;
            }
            }

            base.OnInspectorGUI();

            if (GUILayout.Button("Set generate settings"))
            {
                foreach (var dataBox in AssemblyReflectionHelper.AllDataBox())
                {
                    Debug.Log(dataBox.ObjectType.Name);
                }
                //   SetPathesWindow.ShowSetPathWindow();
            }
        }
コード例 #2
0
        private void Init()
        {
            var allTypes = AssemblyReflectionHelper.GetAllTypesInSolution <DataObject>(true).ToList();

            _state     = StateGenerate.None;
            _namesType = new string[allTypes.Count];
            _dicTypes  = new Dictionary <int, Type>();
            for (var i = 0; i < allTypes.Count; i++)
            {
                _namesType[i] = allTypes[i].Name;
                _dicTypes.Add(i, allTypes[i]);
            }

            _parentType = typeof(DataObject);
            ChooseIndex = _dicTypes.FirstOrDefault(o => o.Value == _parentType).Key;

            _allGenerators = new List <CodeGenerators> {
                new DataGenerator(), new ProviderGenerator()
            };
            _IsInited = true;
        }
コード例 #3
0
        private void DrawChooseType()
        {
            EditorGUILayout.BeginHorizontal();
            {
                EditorGUILayout.LabelField("Add ", GUILayout.Width(30));
                NameNewType = EditorGUILayout.TextField(NameNewType);
            }
            EditorGUILayout.EndHorizontal();

            EditorGUILayout.BeginHorizontal();
            {
                EditorGUILayout.LabelField("Parent Type ", GUILayout.Width(80));
                EditorGUI.BeginChangeCheck();
                ChooseIndex = EditorGUILayout.Popup(ChooseIndex, _namesType, GUILayout.Width(80));
                if (EditorGUI.EndChangeCheck())
                {
                    _parentType = _dicTypes[ChooseIndex];
                }
            }
            EditorGUILayout.EndHorizontal();

            if (GUILayout.Button("Generate"))
            {
                Debug.Log("Check Enter");
                if (NameNewType.Length < 3)
                {
                    Debug.LogWarning("Less than 3 ");
                    return;
                }

                if (_namesType.Contains(NameNewType))
                {
                    Debug.LogWarning("Same Name ");
                    return;
                }

                _allGenerators.ForEach(g => g.SetType(NameNewType, _parentType));
                _state = StateGenerate.Generating;
            }
        }