protected override void OnInspectorDefaultGUI()
        {
            base.OnInspectorDefaultGUI();

            GUILayout.BeginHorizontal();
            GUILayout.Label("Evaluation Type", GUILayout.Width(100));
            if (GUILayout.Button(Target.EvaluationType, EditorGlobalTools.Styles.MiniPopup))
            {
                GenericMenu gm    = new GenericMenu();
                List <Type> types = ReflectionToolkit.GetTypesInRunTimeAssemblies(type =>
                {
                    return(type.IsSubclassOf(typeof(AStarEvaluation)));
                });
                for (int i = 0; i < types.Count; i++)
                {
                    int j = i;
                    gm.AddItem(new GUIContent(types[j].FullName), Target.EvaluationType == types[j].FullName, () =>
                    {
                        Undo.RecordObject(target, "Set Evaluation");
                        Target.EvaluationType = types[j].FullName;
                        HasChanged();
                    });
                }
                gm.ShowAsContext();
            }
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Label("Size", GUILayout.Width(100));
            Vector2Field(Target.Size, out Target.Size, "");
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Label("Node Radius", GUILayout.Width(100));
            FloatField(Target.NodeRadius, out Target.NodeRadius, "");
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Label("Ignore Oblique", GUILayout.Width(100));
            Toggle(Target.IsIgnoreOblique, out Target.IsIgnoreOblique, "");
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Label("Auto Generate", GUILayout.Width(100));
            Toggle(Target.IsAutoGenerate, out Target.IsAutoGenerate, "");
            GUILayout.EndHorizontal();
        }
    protected override void OnInspectorDefaultGUI()
    {
        base.OnInspectorDefaultGUI();

        PropertyField("Picture", "超武图像");
        PropertyField("ExplodePicture", "爆炸特效图像");
        PropertyField("Attack", "攻击力");
        PropertyField("Speed", "飞行力");
        PropertyField("CoolingTime", "冷却时间");
        PropertyField("ShootSound", "射击音效");
        PropertyField("ExplodeSound", "爆炸音效");

        GUILayout.BeginHorizontal();
        GUILayout.Label("描述信息", GUILayout.Width(100));
        Target.Info = EditorGUILayout.TextArea(Target.Info);
        GUILayout.EndHorizontal();

        GUILayout.BeginHorizontal();
        GUILayout.Label("携带BUFF类型", GUILayout.Width(100));
        if (GUILayout.Button(Target.BuffType, EditorGlobalTools.Styles.MiniPopup))
        {
            GenericMenu gm    = new GenericMenu();
            List <Type> types = ReflectionToolkit.GetTypesInRunTimeAssemblies();
            for (int i = 0; i < types.Count; i++)
            {
                // if (types[i].IsSubclassOf(typeof(Buff)))
                // {
                //     Type type = types[i];
                //     gm.AddItem(new GUIContent(type.FullName), type.FullName == Target.BuffType, () =>
                //     {
                //         Target.BuffType = type.FullName;
                //         HasChanged();
                //     });
                // }
            }
            gm.ShowAsContext();
        }
        GUILayout.EndHorizontal();

        if (GUI.changed)
        {
            HasChanged();
        }
    }
Esempio n. 3
0
    protected override void OnInspectorDefaultGUI()
    {
        base.OnInspectorDefaultGUI();

        PropertyField("Picture", "坦克图像");
        PropertyField("ExplodePicture", "爆炸特效图像");
        PropertyField("HP", "生命力");
        PropertyField("Speed", "行动力");
        PropertyField("Info", "介绍");
        PropertyField("Weapon", "常规主炮");
        PropertyField("SuperWeapon", "超级武器");
        PropertyField("Shield", "能量护盾");
        PropertyField("ExplodeSound", "爆炸音效");

        GUILayout.BeginHorizontal();
        GUILayout.Label("大脑(AI控制时)", GUILayout.Width(100));
        if (GUILayout.Button(Target.AIController, EditorGlobalTools.Styles.MiniPopup))
        {
            GenericMenu gm    = new GenericMenu();
            List <Type> types = ReflectionToolkit.GetTypesInRunTimeAssemblies();
            for (int i = 0; i < types.Count; i++)
            {
                if (types[i].IsSubclassOf(typeof(TankController)) && types[i] != typeof(PlayerController))
                {
                    Type type = types[i];
                    gm.AddItem(new GUIContent(type.FullName), type.FullName == Target.AIController, () =>
                    {
                        Target.AIController = type.FullName;
                        HasChanged();
                    });
                }
            }
            gm.ShowAsContext();
        }
        GUILayout.EndHorizontal();
    }
        protected override void OnInspectorDefaultGUI()
        {
            base.OnInspectorDefaultGUI();

            GUILayout.BeginHorizontal();
            EditorGUILayout.HelpBox("XHotfix manager, this module encapsulated using XLua!", MessageType.Info);
            GUILayout.EndHorizontal();

            GUILayout.BeginVertical("box");

            #region XHotfixProperty
            GUILayout.BeginHorizontal();
            GUILayout.Label("Loader Type", GUILayout.Width(100));
            if (GUILayout.Button(Target.XHotfixLoaderType, EditorGlobalTools.Styles.MiniPopup))
            {
                GenericMenu gm    = new GenericMenu();
                List <Type> types = ReflectionToolkit.GetTypesInRunTimeAssemblies(type =>
                {
                    return(type.IsSubclassOf(typeof(XHotfixLoaderBase)));
                });
                for (int i = 0; i < types.Count; i++)
                {
                    int j = i;
                    gm.AddItem(new GUIContent(types[j].FullName), Target.XHotfixLoaderType == types[j].FullName, () =>
                    {
                        Undo.RecordObject(target, "Set XHotfixLoader");
                        Target.XHotfixLoaderType = types[j].FullName;
                        HasChanged();
                    });
                }
                gm.ShowAsContext();
            }
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Label("Auto StartUp", GUILayout.Width(100));
            Toggle(Target.IsAutoStartUp, out Target.IsAutoStartUp, "");
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Label("Tick Interval", GUILayout.Width(100));
            FloatField(Target.TickInterval, out Target.TickInterval, "");
            GUILayout.EndHorizontal();
            #endregion

            GUILayout.Space(10);

            #region XHotfixAssetBundle
            GUILayout.BeginHorizontal();
            GUILayout.Label("XHotfixCode AssetBundleName");
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            TextField(Target.HotfixCodeAssetBundleName, out Target.HotfixCodeAssetBundleName, "");
            GUI.enabled = _hotfixIsCreated;
            if (GUILayout.Button("Mark All", EditorStyles.miniButton, GUILayout.Width(60)))
            {
                MarkLuaFolder(new DirectoryInfo(Application.dataPath + Target.HotfixCodeAssetsPath.Replace("Assets", "") + "/"));
            }
            GUI.enabled = true;
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Label("XHotfixCode AssetsPath");
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            TextField(Target.HotfixCodeAssetsPath, out Target.HotfixCodeAssetsPath, "");
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Label("XHotfixCode Main");
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            TextField(Target.HotfixCodeMain, out Target.HotfixCodeMain, "");
            GUILayout.EndHorizontal();
            #endregion

            GUILayout.EndVertical();

            #region XHotfixWizard
            if (_hotfixIsCreated)
            {
                GUILayout.BeginHorizontal();
                EditorGUILayout.HelpBox("XHotfix environment is created!", MessageType.Info);
                GUILayout.EndHorizontal();
            }
            else
            {
                GUILayout.BeginHorizontal();
                if (GUILayout.Button("Create XHotfix Environment", "LargeButton"))
                {
                    CreateXHotfixEnvironment();
                    _hotfixIsCreated = true;
                }
                GUILayout.EndHorizontal();
            }
            #endregion
        }