Exemplo n.º 1
0
        private void DamageSkillInput(SkillData currSkillData)
        {
            #region 伤害

            MyGUIExtend.Instance.Foldout("伤害" + this.currSkillData.id + currSkillData.id, "伤害", () =>
            {
                currSkillData.atk = MyGUI.FloatFieldWithTitle("atk", currSkillData.atk);

                currSkillData.onoffDamage = MyGUI.ToggleWithTitle("是否有伤害区域", currSkillData.onoffDamage);
                if (currSkillData.onoffDamage)
                {
                    currSkillData.DamageColliderCenter =
                        MyGUI.Vector3WithTitle("伤害区域Center", currSkillData.DamageColliderCenter);
                    currSkillData.DamageColliderSize =
                        MyGUI.Vector3WithTitle("伤害区域Size", currSkillData.DamageColliderSize);
                    currSkillData.DamageDirectionType =
                        (DamageDirectionType)MyGUI.EnumPopupWithTitle("受击类型:",
                                                                      currSkillData.DamageDirectionType);
                    currSkillData.damageForceType =
                        (DamageForceType)MyGUI.EnumPopupWithTitle("伤害力度类型", currSkillData.damageForceType);
                    currSkillData.poiseCut = MyGUI.FloatFieldWithTitle("削韧", currSkillData.poiseCut);
                }

                currSkillData.Intensity      = MyGUI.FloatFieldWithTitle("击退力度", currSkillData.Intensity);
                currSkillData.angleIntensity = MyGUI.Vector3WithTitle("击退角度", currSkillData.angleIntensity);

                currSkillData.HitEffectType =
                    (HitEffectType)MyGUI.EnumPopupWithTitle("攻击效果类型", currSkillData.HitEffectType);
            });
            #endregion
        }
Exemplo n.º 2
0
        public void OnGUI()
        {
            GUIStyle boxStyle = new GUIStyle("box");

            var width  = position.size.x - boxStyle.border.horizontal;
            var height = position.size.y - boxStyle.border.vertical;

            wwwidth = width;
            hheight = height;
            var innerBoxWidth  = width - (boxStyle.padding.horizontal + boxStyle.border.horizontal);
            var innerBoxHeight = height - (boxStyle.padding.vertical + boxStyle.border.vertical);

            Rect mSecWindowRect = new Rect(5, 5, width - 10, height - 10);

            EditorGUILayout.BeginVertical(boxStyle, GUILayout.Width(width), GUILayout.Height(height));

            diantype = (diantype)MyGUI.EnumPopupWithTitle("点或抛物线", diantype);
            if (diantype == diantype.parabola)
            {
                longlong = MyGUI.FloatFieldWithTitle("weight", longlong);
                heightf  = MyGUI.FloatFieldWithTitle("height", heightf);
            }
            else
            {
                P1put = MyGUI.Vector3WithTitle("P1", P1put);
                P2put = MyGUI.Vector3WithTitle("P2", P2put);
            }

            sort = MyGUI.FloatFieldWithTitle("点", sort);
            t    = MyGUI.FloatFieldWithTitle("t", t);
            // windowbool=MyGUI.Button("开启窗口");
            if (GUILayout.Button("开启窗口"))
            {
                GUIUtility.keyboardControl = 0;
                windowbool = true;
            }
            if (windowbool)
            {
                P0 = new Vector3((width / 2), (height / 2), 0);
                if (diantype == diantype.parabola)
                {
                    P2 = new Vector3(P0.x + longlong, P0.y, P0.z);
                    P1 = new Vector3(P0.x + longlong / 2, P0.y - heightf, P0.z);
                }
                else
                {
                    P2 = new Vector3(P0.x + P2put.x * 50, P0.y - P2put.y * 50, P0.z + P2put.z * 50);
                    P1 = new Vector3(P0.x + P1put.x * 50, P0.y - P1put.y * 50, P0.z + P1put.z * 50);
                }
                BeginWindows();
                mSecWindowRect = GUILayout.Window(354888, mSecWindowRect, DrawGraphWindow, "图形绘制", GUI.skin.window);
                EndWindows();
            }



            EditorGUILayout.EndVertical();
        }
Exemplo n.º 3
0
        void DrawActionData(ref ActionData actionData)
        {
            GUIStyle boxStyle = new GUIStyle("box");

            EditorGUILayout.BeginVertical(boxStyle, GUILayout.ExpandWidth(true));

            actionData.type   = (ActionType)MyGUI.EnumPopupWithTitle("type", actionData.type);
            actionData.chance = MyGUI.IntFieldWithTitle("概率", actionData.chance);
            switch (actionData.type)
            {
            case ActionType.AddAttr:
                AttrType attrType = (AttrType)actionData.int1;
                attrType        = (AttrType)MyGUI.EnumPopupWithTitle("属性", attrType);
                actionData.int1 = (int)attrType;

                actionData.float1 = MyGUI.FloatFieldWithTitle("数值", actionData.float1);
                break;

            case ActionType.AddAnim:
                actionData.string1 = MyGUI.TextFieldWithTitle("动画名", actionData.string1);
                actionData.bool1   = MyGUI.ToggleWithTitle("是否循环", actionData.bool1);
                break;

            case ActionType.RemoveAnim:
                actionData.string1 = MyGUI.TextFieldWithTitle("动画名", actionData.string1);
                break;

            case ActionType.SetColor:
                actionData.float1 = MyGUI.FloatFieldWithTitle("红", actionData.float1);
                actionData.float2 = MyGUI.FloatFieldWithTitle("绿", actionData.float2);
                actionData.float3 = MyGUI.FloatFieldWithTitle("蓝", actionData.float3);
                break;

            case ActionType.CreateDamage:
                // AttrType asd = (AttrType)actionData.int1;
                actionData.vector3_1 = MyGUI.Vector3WithTitle("pos", actionData.vector3_1);
                actionData.vector3_2 = MyGUI.Vector3WithTitle("size", actionData.vector3_2);
                actionData.vector3_3 = MyGUI.Vector3WithTitle("force", actionData.vector3_3);
                HitType hittype = (HitType)actionData.int1;
                hittype         = (HitType)MyGUI.EnumPopupWithTitle("Hit Type", hittype);
                actionData.int1 = (int)hittype;
                Direction direction = (Direction)actionData.int2;
                direction       = (Direction)MyGUI.EnumPopupWithTitle("Direction", direction);
                actionData.int2 = (int)direction;
                break;
            }

            EditorGUILayout.EndVertical();
        }
Exemplo n.º 4
0
        public override void OnInspectorGUI()
        {
            spriteRenderer.sortingOrder = MyGUI.IntFieldWithTitle("SortOrder", spriteRenderer.sortingOrder);

            base.DrawDefaultInspector();
            spriteRenderer.sharedMaterial = (Material)EditorGUILayout.ObjectField("Material", spriteRenderer.sharedMaterial, typeof(Material));

            if (spriteRenderer.sprite != null && spriteRenderer.sprite.texture != null)
            {
                MyGUI.FloatFieldWithTitle("Width", spriteRenderer.sprite.texture.width);
                MyGUI.FloatFieldWithTitle("Height", spriteRenderer.sprite.texture.height);
            }

            spriteRenderer.transform.localPosition = MyGUI.Vector3WithTitle("PixelPosition", spriteRenderer.transform.localPosition * 100f) / 100f;
        }
Exemplo n.º 5
0
        List <DropItem> DrawDropItemList(ref List <DropItem> dropItemList)
        {
            EditorGUILayout.BeginVertical();
            if (MyGUI.Button("添加"))
            {
                dropItemList.Add(new DropItem());
            }
            if (dropItemList != null && dropItemList.Count > 0)
            {
                GUIStyle boxStyle = new GUIStyle("box");
                EditorGUILayout.BeginVertical(boxStyle, GUILayout.ExpandWidth(true));
                for (int i = 0; dropItemList.Count > i; i++)
                {
                    EditorGUILayout.BeginHorizontal();
                    EditorGUILayout.BeginVertical();
                    if (MyGUI.Button("删除", GUILayout.Width(50)))
                    {
                        dropItemList.RemoveAt(i);
                        break;
                    }
                    if (MyGUI.Button("复制", GUILayout.Width(50)))
                    {
                        var dropItem = Tools.Json2Obj <DropItem>(Tools.Obj2Json(dropItemList[i], true));
                        dropItemList.Add(dropItem);
                    }
                    EditorGUILayout.EndVertical();
                    GUIStyle nextbox = new GUIStyle("box");
                    EditorGUILayout.BeginVertical(nextbox, GUILayout.ExpandWidth(true));


                    dropItemList[i].itemType = (ItemType)MyGUI.EnumPopupWithTitle("ItemType", dropItemList[i].itemType);
                    dropItemList[i].itemId   = MyGUI.TextFieldWithTitle("itemId", dropItemList[i].itemId);
                    dropItemList[i].chance   = MyGUI.FloatFieldWithTitle("机率", dropItemList[i].chance);
                    EditorGUILayout.EndVertical();
                    EditorGUILayout.EndHorizontal();
                    EditorGUILayout.Space();
                }
                EditorGUILayout.EndVertical();
            }
            EditorGUILayout.EndVertical();

            return(dropItemList);
        }
Exemplo n.º 6
0
        void OnGUI()
        {
            GUIStyle boxStyle = new GUIStyle("box");

            if (placementConfig != null)
            {
                switch (placementConfig.randerChoice)
                {
                case tian.RanderChoice.Image:
                    EditorGUILayout.LabelField("正面");
                    placementConfig.frontRect = EditorGUILayout.RectField(placementConfig.frontRect);

                    EditorGUILayout.LabelField("顶面");
                    placementConfig.topRect = EditorGUILayout.RectField(placementConfig.topRect);
                    zoomLevel = MyGUI.FloatFieldWithTitle("缩放比例", zoomLevel);
                    Texture2D texture = (Texture2D)AssetDatabase.LoadAssetAtPath(placementConfig.ImagePath, typeof(Texture2D));
                    textureHeight = texture.height;
                    textureWidth  = texture.width;

                    Vector2 imagePos  = new Vector2(20, 150);
                    Rect    imageRect = new Rect(imagePos.x, imagePos.y, textureWidth * zoomLevel, textureHeight * zoomLevel);

                    EditorGUI.DrawRect(imageRect, new Color(0.7f, 0.7f, 0.7f, 0.7f));
                    EditorGUI.DrawPreviewTexture(imageRect, texture, material, ScaleMode.ScaleToFit);

                    DrawZones(new Rect(placementConfig.frontRect.x, 1.0f - placementConfig.frontRect.y, placementConfig.frontRect.width, placementConfig.frontRect.height), imagePos, Color.red, texture);
                    DrawZones(new Rect(placementConfig.topRect.x, 1.0f - placementConfig.topRect.y, placementConfig.topRect.width, placementConfig.topRect.height), imagePos, Color.blue, texture);
                    break;

                case tian.RanderChoice.Anim:
                    placementConfig.colliderBounds.center = EditorGUILayout.Vector3Field("center", placementConfig.colliderBounds.center);
                    placementConfig.colliderBounds.size   = EditorGUILayout.Vector3Field("size", placementConfig.colliderBounds.size);
                    SkeletonAnimOnGUI(boxStyle, position.width, position.height - 50f);
                    skeletonPreviewEditor.AddDrawExtraGuideLineAction("colliderBounds", (Camera camera) =>
                    {
                        Handles.color = Color.green;
                        Handles.DrawWireCube(placementConfig.colliderBounds.center, placementConfig.colliderBounds.size);
                    });
                    break;
                }
            }
        }
Exemplo n.º 7
0
        void OnGUI()
        {
            GUIStyle boxStyle = new GUIStyle("box");

            var width  = position.size.x - boxStyle.border.horizontal;
            var height = position.size.y - boxStyle.border.vertical;

            var innerBoxWidth  = width - (boxStyle.padding.horizontal + boxStyle.border.horizontal);
            var innerBoxHeight = height - (boxStyle.padding.vertical + boxStyle.border.vertical);

            MyGUIExtend.Instance.ToolbarButton(new Dictionary <string, Action>
            {
                {
                    "读取", loadSkill
                },
                {
                    "保存", saveSkill
                }
            });

            baseScrollViewPos = EditorGUILayout.BeginScrollView(baseScrollViewPos);

            using (new EditorGUILayout.VerticalScope())
            {
                //路径
                EditorGUILayout.BeginVertical(boxStyle, GUILayout.Height(innerBoxHeight / 24));
                using (new EditorGUILayout.HorizontalScope())
                {
                    EditorGUILayout.LabelField(skillDataFile);
                }
                EditorGUILayout.EndVertical();
                //list 内容
                EditorGUILayout.BeginVertical(boxStyle, GUILayout.Height(innerBoxHeight / 2f));
                using (new EditorGUILayout.HorizontalScope())
                {
                    EditorGUILayout.BeginVertical(boxStyle, GUILayout.Width(innerBoxWidth / 3),
                                                  GUILayout.Height(innerBoxHeight / 2));
                    EditorGUILayout.BeginVertical();
                    SearchContext     = GUILayout.TextField(SearchContext);
                    listScrollViewPos = EditorGUILayout.BeginScrollView(listScrollViewPos);

                    #region list

                    if (!string.IsNullOrEmpty(SearchContext))
                    {
                        for (int i = 0; i < skillDataList.Count; i++)
                        {
                            if (Regex.IsMatch(skillDataList[i].id.ToLower(), SearchContext))
                            {
                                ListID(i);
                            }
                        }
                    }
                    else
                    {
                        for (int i = skillDataList.Count - 1; i >= 0; i--)
                        {
                            EditorGUILayout.BeginHorizontal();
                            ListID(i);
                            EditorGUILayout.EndHorizontal();
                        }
                    }

                    #endregion

                    if (MyGUI.Button("+"))
                    {
                        SkillData skillData = new SkillData(new SkillData("Front"), new SkillData("Centre"), new SkillData("Back"));
                        skillData.id            = "New";
                        skillData.IsPhasesSkill = true;
                        skillDataList.Add(skillData);
                        CreatTreeNode();
                    }

                    EditorGUILayout.EndScrollView();
                    EditorGUILayout.EndVertical();
                    EditorGUILayout.EndVertical();

                    EditorGUILayout.BeginVertical(boxStyle, GUILayout.Width(innerBoxWidth / 6),
                                                  GUILayout.Height(innerBoxHeight / 2));

                    currentSkillTreeNode(currSkillData, new Rect(innerBoxWidth / 3 + 10, innerBoxHeight / 24 + 10, innerBoxWidth / 6, innerBoxHeight / 2f));
                    GUILayout.Space(50);

                    EditorGUILayout.EndVertical();

                    EditorGUILayout.BeginVertical(boxStyle, GUILayout.Width(innerBoxWidth / 2),
                                                  GUILayout.Height(innerBoxHeight / 2));
                    EditorGUILayout.BeginVertical();
                    editScrollViewPos = EditorGUILayout.BeginScrollView(editScrollViewPos);

                    if (currSkillData.skillDatas.Count > 0 && currentNode != null)
                    {
                        CurrSkillDataInput(currentNode.nodeSkillData);
                    }
                    else
                    {
                        CurrSkillDataInput(currSkillData);
                    }

                    EditorGUILayout.EndScrollView();
                    EditorGUILayout.EndVertical();
                    EditorGUILayout.EndVertical();
                }
                EditorGUILayout.EndVertical();
                //测试
                EditorGUILayout.BeginVertical(boxStyle, GUILayout.Height(innerBoxHeight / 12));
                using (new EditorGUILayout.VerticalScope())
                {
                    if (Application.isPlaying)
                    {
                        using (new EditorGUILayout.VerticalScope())
                        {
                            usecount        = MyGUI.IntFieldWithTitle("使用次数:", usecount);
                            inetal          = MyGUI.FloatFieldWithTitle("间隔时间:", inetal);
                            testSkillOffset = MyGUI.Vector3WithTitle("释放位置:", testSkillOffset);
                        }

                        roleTarget = (GameObject)EditorGUILayout.ObjectField(roleTarget, typeof(GameObject), true);

                        if (MyGUI.Button("测试技能"))
                        {
                            var            playerObject   = GameObject.Find("Player1");
                            RoleController roleController = playerObject.GetComponent <RoleController>();
                            //SkillManager.Instance.UseSkill(currSkillData, playerObject.transform, roleController.RoleData.TeamId, roleController.GetDirection());
                            EditorCoroutineSequenceRunner.RemoveCoroutine("SkillTest");
                            EditorCoroutineSequenceRunner.AddCoroutineIfNot("SkillTest",
                                                                            TestAnimEffect(usecount, inetal, roleController.RoleData.TeamId, playerObject.transform,
                                                                                           testSkillOffset, roleController.GetDirection()));
                        }
                    }
                }
                EditorGUILayout.EndVertical();
                //Spine
                EditorGUILayout.BeginVertical(boxStyle, GUILayout.Height(innerBoxHeight / 4));
                using (new EditorGUILayout.HorizontalScope())
                {
                    if (Application.isPlaying == false)
                    {
                        if (!string.IsNullOrEmpty(currSkillData.SkeletonDataAssetPath))
                        {
                            SkeletonAnimOnGUI(boxStyle, position.width, position.height / 3.2f);
                            panduandanqian();
                            //var skeletondataasset = (SkeletonDataAsset)AssetDatabase.LoadAssetAtPath(currSkillData.SkeletonDataAssetPath, typeof(SkeletonDataAsset));
                            //if (skeletondataasset != null)
                            {
                                //Selection.activeObject = skeletondataasset;
                                //PreviewEditor = UnityEditor.Editor.CreateEditor(Selection.activeObject, typeof(Spine.Unity.Editor.SkeletonPreviewEditor)) as Spine.Unity.Editor.SkeletonPreviewEditor;
                                if (currSkillData.onoffCollider && Selection.activeObject is SkeletonDataAsset)
                                {
                                    PreviewEditor.AddDrawExtraGuideLineAction(currSkillData.id, (Camera camera) =>
                                    {
                                        Handles.color = Color.green;
                                        Handles.DrawWireCube(currSkillData.colliderCenter, currSkillData.colliderSize);
                                    });
                                }

                                if (currSkillData.onoffDamage && Selection.activeObject is SkeletonDataAsset)
                                {
                                    PreviewEditor.AddDrawExtraGuideLineAction(currSkillData.id + "Damage",
                                                                              (Camera camera) =>
                                    {
                                        Handles.color = Color.red;
                                        Handles.DrawWireCube(currSkillData.DamageColliderCenter,
                                                             currSkillData.DamageColliderSize);
                                    });
                                }

                                if (currSkillData.onoffFocus && Selection.activeObject is SkeletonDataAsset)
                                {
                                    PreviewEditor.AddDrawExtraGuideLineAction(currSkillData.id + "focus",
                                                                              (Camera camera) =>
                                    {
                                        Handles.color = Color.red;
                                        Handles.ArrowHandleCap(0, currSkillData.focuspos, Quaternion.Euler(0, 0, 0),
                                                               1, UnityEngine.EventType.Repaint);
                                    });
                                }
                            }
                        }
                    }
                }
                EditorGUILayout.EndVertical();
            }
            EditorGUILayout.EndScrollView();
        }
Exemplo n.º 8
0
        private void PhysicsSkillInput(SkillData currSkillData)
        {
            #region 变换
            MyGUIExtend.Instance.Foldout("变换" + this.currSkillData.id + currSkillData.id, "变换", () =>
            {
                currSkillData.DelayTime =
                    MyGUI.FloatFieldWithTitle("DelayTime", currSkillData.DelayTime);
                currSkillData.pos         = MyGUI.Vector3WithTitle("pos", currSkillData.pos);
                currSkillData.rotateSpeed = MyGUI.Vector3WithTitle("RotateSpeed", currSkillData.rotateSpeed);

                currSkillData.IsRandomTrans =
                    MyGUI.ToggleWithTitle("是否随机位置播放", currSkillData.IsRandomTrans);
                if (currSkillData.IsRandomTrans)
                {
                    currSkillData.MinRandomVector3 = MyGUI.Vector3WithTitle("MinPostion", currSkillData.MinRandomVector3);
                    currSkillData.MaxRandomVector3 = MyGUI.Vector3WithTitle("MaxPostion", currSkillData.MaxRandomVector3);
                }
                else
                {
                    currSkillData.pos = MyGUI.Vector3WithTitle("Postion", currSkillData.pos);
                }
            });
            #endregion

            #region 物理

            MyGUIExtend.Instance.Foldout("物理" + this.currSkillData.id + currSkillData.id, "物理", () =>
            {
                currSkillData.withRigidbody = MyGUI.ToggleWithTitle("是否拥有刚体", currSkillData.withRigidbody);
                currSkillData.useGravity    = MyGUI.ToggleWithTitle("是否使用重力", currSkillData.useGravity);
                if (currSkillData.useGravity)
                {
                    currSkillData.gravitationalAcceleration =
                        MyGUI.FloatFieldWithTitle("重力加速度: ", currSkillData.gravitationalAcceleration);
                    currSkillData.focuspos = MyGUI.Vector3WithTitle("重心位置", currSkillData.focuspos);
                }

                currSkillData.speed       = MyGUI.Vector3WithTitle("速度", currSkillData.speed);
                currSkillData.rotateSpeed = MyGUI.Vector3WithTitle("旋转速度", currSkillData.rotateSpeed);

                // 碰撞区域 add by TangJian 2019/4/20 11:06
                currSkillData.onoffCollider = MyGUI.ToggleWithTitle("是否有碰撞区域", currSkillData.onoffCollider);
                if (currSkillData.onoffCollider)
                {
                    int Collidertagindex = 0;
                    for (int ign = 0; ign < UnityEditorInternal.InternalEditorUtility.tags.Length; ign++)
                    {
                        if (UnityEditorInternal.InternalEditorUtility.tags[ign] ==
                            currSkillData.CollidertagName)
                        {
                            Collidertagindex = ign;
                        }
                    }

                    int Colliderlayerindex = 0;
                    for (int lagn = 0;
                         lagn < UnityEditorInternal.InternalEditorUtility.layers.Length;
                         lagn++)
                    {
                        if (UnityEditorInternal.InternalEditorUtility.layers[lagn] ==
                            currSkillData.ColliderlayerName)
                        {
                            Colliderlayerindex = lagn;
                        }
                    }

                    Collidertagindex = EditorGUILayout.Popup("碰撞体Tag", Collidertagindex,
                                                             UnityEditorInternal.InternalEditorUtility.tags);
                    currSkillData.CollidertagName =
                        UnityEditorInternal.InternalEditorUtility.tags[Collidertagindex];
                    Colliderlayerindex = EditorGUILayout.Popup("碰撞体Layer", Colliderlayerindex,
                                                               UnityEditorInternal.InternalEditorUtility.layers);
                    currSkillData.ColliderlayerName =
                        UnityEditorInternal.InternalEditorUtility.layers[Colliderlayerindex];
                    currSkillData.colliderCenter =
                        MyGUI.Vector3WithTitle("碰撞体Center", currSkillData.colliderCenter);
                    currSkillData.colliderSize =
                        MyGUI.Vector3WithTitle("碰撞体Size", currSkillData.colliderSize);
                }

                currSkillData.onoffTirgger = MyGUI.ToggleWithTitle("是否有触发器区域", currSkillData.onoffTirgger);
                if (currSkillData.onoffTirgger)
                {
                    int tagindex = 0;
                    for (int ign = 0; ign < UnityEditorInternal.InternalEditorUtility.tags.Length; ign++)
                    {
                        if (UnityEditorInternal.InternalEditorUtility.tags[ign] == currSkillData.tagName)
                        {
                            tagindex = ign;
                        }
                    }

                    int layerindex = 0;
                    for (int lagn = 0;
                         lagn < UnityEditorInternal.InternalEditorUtility.layers.Length;
                         lagn++)
                    {
                        if (UnityEditorInternal.InternalEditorUtility.layers[lagn] ==
                            currSkillData.layerName)
                        {
                            layerindex = lagn;
                        }
                    }

                    tagindex = EditorGUILayout.Popup("触发器Tag", tagindex,
                                                     UnityEditorInternal.InternalEditorUtility.tags);
                    currSkillData.tagName = UnityEditorInternal.InternalEditorUtility.tags[tagindex];
                    layerindex            = EditorGUILayout.Popup("触发器Layer", layerindex,
                                                                  UnityEditorInternal.InternalEditorUtility.layers);
                    currSkillData.layerName   = UnityEditorInternal.InternalEditorUtility.layers[layerindex];
                    currSkillData.triggerMode =
                        (TriggerMode)MyGUI.EnumPopupWithTitle("触发模式", currSkillData.triggerMode);
                    currSkillData.TirggercolliderCenter = MyGUI.Vector3WithTitle("触发器碰撞体Center",
                                                                                 currSkillData.TirggercolliderCenter);
                    currSkillData.TirggercolliderSize =
                        MyGUI.Vector3WithTitle("触发器碰撞体Size", currSkillData.TirggercolliderSize);
                }
            });
            #endregion

            #region 子技能处理

            MyGUIExtend.Instance.Foldout("子技能处理" + this.currSkillData.id + currSkillData.id, "子技能处理", () =>
            {
                currSkillData.type =
                    (SkillGroupType)MyGUI.EnumPopupWithTitle("类型", currSkillData.type);
                currSkillData.parentType = (FrameEventInfo.ParentType)MyGUI.EnumPopupWithTitle("跟随类型", currSkillData.parentType);
                currSkillData.IsMorePlay = MyGUI.ToggleWithTitle("多次释放", currSkillData.IsMorePlay);
                if (currSkillData.IsMorePlay)
                {
                    currSkillData.DurationTime =
                        MyGUI.FloatFieldWithTitle("持续时长", currSkillData.DurationTime);
                    currSkillData.PlayCount =
                        MyGUI.IntFieldWithTitle("数量(播放次数)", currSkillData.PlayCount);
                }
            });
            #endregion
        }
Exemplo n.º 9
0
        private void BaseSkillInput(SkillData currSkillData)
        {
            #region 基本

            MyGUIExtend.Instance.Foldout("基本" + this.currSkillData.id + currSkillData.id, "基本", () =>
            {
                currSkillData.name   = MyGUI.TextFieldWithTitle("name", currSkillData.name);
                MonoScript component =
                    (MonoScript)AssetDatabase.LoadAssetAtPath(currSkillData.componentPath, typeof(MonoScript));
                component = (UnityEditor.MonoScript)EditorGUILayout.ObjectField(new GUIContent("脚本"),
                                                                                component, typeof(UnityEditor.MonoScript), true);

                if (component != null)
                {
                    currSkillData.componentPath     = AssetDatabase.GetAssetPath(component);
                    currSkillData.componentTypeName =
                        component.GetClass().Namespace + "." + component.GetClass().Name;
                }
                currSkillData.SurvivalTime = MyGUI.FloatFieldWithTitle("存活时间", currSkillData.SurvivalTime);

                // 朝向模式 add by TangJian 2019/4/20 13:24
                currSkillData.SkillOrientationMode =
                    (SkillOrientationMode)MyGUI.EnumPopupWithTitle("朝向模式",
                                                                   currSkillData.SkillOrientationMode);
            });

            #endregion

            #region 渲染

            MyGUIExtend.Instance.Foldout("渲染" + this.currSkillData.id + currSkillData.id, "渲染", () =>
            {
                currSkillData.rendererType =
                    (RendererType)MyGUI.EnumPopupWithTitle("rander类型:", currSkillData.rendererType);
                switch (currSkillData.rendererType)
                {
                case RendererType.SkeletonAnimator:
                    {
                        Spine.Unity.SkeletonDataAsset SkeletonDataAsset =
                            (Spine.Unity.SkeletonDataAsset)AssetDatabase.LoadAssetAtPath(
                                currSkillData.SkeletonDataAssetPath, typeof(Spine.Unity.SkeletonDataAsset));
                        UnityEditor.Animations.AnimatorController animatorController =
                            (UnityEditor.Animations.AnimatorController)AssetDatabase.LoadAssetAtPath(
                                currSkillData.AnimControllerPath,
                                typeof(UnityEditor.Animations.AnimatorController));
                        animatorController =
                            (UnityEditor.Animations.AnimatorController)EditorGUILayout.ObjectField(
                                new GUIContent("动画控制器"), animatorController,
                                typeof(UnityEditor.Animations.AnimatorController), true);
                        SkeletonDataAsset =
                            (Spine.Unity.SkeletonDataAsset)EditorGUILayout.ObjectField(
                                new GUIContent("Skeleton"), SkeletonDataAsset,
                                typeof(Spine.Unity.SkeletonDataAsset), true);
                        currSkillData.SkeletonDataAssetPath = AssetDatabase.GetAssetPath(SkeletonDataAsset);
                        currSkillData.AnimControllerPath    = AssetDatabase.GetAssetPath(animatorController);
                        if (SkeletonDataAsset != null)
                        {
                            string[] skins =
                                new string[SkeletonDataAsset.GetSkeletonData(false).Skins.Count];
                            int skinIndex = 0;
                            for (int i = 0; i < skins.Length; i++)
                            {
                                string skinNameString = SkeletonDataAsset.GetSkeletonData(false).Skins
                                                        .Items[i].Name;
                                skins[i] = skinNameString;
                                if (skinNameString == currSkillData.SkinName)
                                {
                                    skinIndex = i;
                                }
                            }

                            skinIndex = EditorGUILayout.Popup("Initial Skin(皮肤)", skinIndex, skins);
                            currSkillData.SkinName = skins[skinIndex];
                        }
                    }
                    break;

                case RendererType.Sprite:
                    {
                        currSkillData.SpritePath =
                            MyGUI.ObjectField <Sprite>("精灵: ", currSkillData.SpritePath);
                    }
                    break;

                case RendererType.Skeleton:
                    Spine.Unity.SkeletonDataAsset skeletonDataAsset = AssetDatabase.LoadAssetAtPath <Spine.Unity.SkeletonDataAsset>(currSkillData.SkeletonPath);
                    skeletonDataAsset          = (Spine.Unity.SkeletonDataAsset)EditorGUILayout.ObjectField("Skeleton", skeletonDataAsset, typeof(Spine.Unity.SkeletonDataAsset));
                    currSkillData.SkeletonPath = AssetDatabase.GetAssetPath(skeletonDataAsset);

                    if (skeletonDataAsset != null)
                    {
                        if (skeletonDataAsset != null && skeletonDataAsset.GetSkeletonData(false) != null && skeletonDataAsset.GetSkeletonData(false).Animations != null)
                        {
                            string[] Animations = new string[skeletonDataAsset.GetSkeletonData(false).Animations.Count];
                            int skinIndex       = 0;
                            for (int i = 0; i < Animations.Length; i++)
                            {
                                string skinNameString = skeletonDataAsset.GetSkeletonData(false).Animations.Items[i].Name;
                                Animations[i]         = skinNameString;
                                if (skinNameString == currSkillData.SkeletonClipName)
                                {
                                    skinIndex = i;
                                }
                            }
                            skinIndex = EditorGUILayout.Popup("Animation(动画片段)", skinIndex, Animations);
                            currSkillData.SkeletonClipName = Animations[skinIndex];
                        }
                    }
                    break;

                case RendererType.Anim:
                    currSkillData.AnimName = EditorGUILayout.TextField("AnimName:", currSkillData.AnimName);
                    break;

                default:
                    Debug.Log("UnKnown:" + currSkillData.rendererType);
                    break;
                }

                currSkillData.shadow = MyGUI.ToggleWithTitle("阴影", currSkillData.shadow);
                if (currSkillData.shadow)
                {
                    currSkillData.shadowScale =
                        MyGUI.Vector3WithTitle("阴影scale", currSkillData.shadowScale);
                    currSkillData.CutOffDistance =
                        MyGUI.FloatFieldWithTitle("阴影CutOffDistance", currSkillData.CutOffDistance);
                    currSkillData.MaxScaleMultpler = MyGUI.FloatFieldWithTitle("阴影MaxScaleMultpler",
                                                                               currSkillData.MaxScaleMultpler);
                }
            });
            #endregion
        }
Exemplo n.º 10
0
        void OnGUI()
        {
            if (MyGUI.Button(isEditing ? "编辑中" : "未编辑"))
            {
                isEditing = !isEditing;
            }

            // 当前编辑的场景 add by TangJian 2018/11/21 11:51
            {
                List <SceneController> sceneControllers = MapEditorManager.GetCurrSceneControllerList();
                string[] sceneOptions = new string[sceneControllers.Count];
                for (int i = 0; i < sceneControllers.Count; i++)
                {
                    sceneOptions[i] = sceneControllers[i].name;
                }
                currSelectedSceneIndex = MyGUI.PopupWithTitle("当前编辑场景", currSelectedSceneIndex, sceneOptions);

                if (sceneControllers.CanFindIndex(currSelectedSceneIndex))
                {
                    currSceneController = sceneControllers[currSelectedSceneIndex];
                }
            }

            if (MyGUI.Button("计算角度"))
            {
                // Camera camera = Camera.main;

                // Vector3 beginScreenVec3 = new Vector3(0, 0);
                // Vector3 endScreenVec3 = new Vector3(100, 100);

                // Vector3 endWorldVec3 = camera.ScreenToWorldPoint(endScreenVec3);
                Debug.Log(Mathf.Atan(2) / Mathf.PI * 180);
                Debug.Log(Mathf.Atan(Mathf.Sqrt(3)) / Mathf.PI * 180);

                // Debug.Log(Mathf.Atan(2) / Mathf.PI * 180);


                // Debug.Log();
            }

            gravity = MyGUI.FloatFieldWithTitle("gravity", gravity);

            if (MyGUI.Button("Test"))
            {
                var dict = Tools.GetFileListInFolder("Assets");

                List <string> retList = new List <string>();

                object suo = new object();

                retList.Clear();
                int begin = Tools.GetTimestamp();
                dict.AsParallel().ForAll(pair =>
                {
                    for (int i = 0; i < 100000; i++)
                    {
                    }
                });

                Debug.Log("duration1 = " + (Tools.GetTimestamp() - begin).ToString());

                retList.Clear();
                begin = Tools.GetTimestamp();
                Parallel.ForEach(dict, pair =>
                {
                    for (int i = 0; i < 100000; i++)
                    {
                    }
                });

                Debug.Log("duration2 = " + (Tools.GetTimestamp() - begin).ToString());

                retList.Clear();
                begin = Tools.GetTimestamp();
                foreach (var pair in dict)
                {
                    for (int i = 0; i < 100000; i++)
                    {
                    }
                }

                Debug.Log("duration3 = " + (Tools.GetTimestamp() - begin).ToString());
            }

            valueMonitorPool.Update();
        }
Exemplo n.º 11
0
        void OnGUI()
        {
            GUIStyle boxStyle = new GUIStyle("box");

            var width  = position.size.x - boxStyle.border.horizontal;
            var height = position.size.y - boxStyle.border.vertical;

            var innerBoxWidth  = width - (boxStyle.padding.horizontal + boxStyle.border.horizontal);
            var innerBoxHeight = height - (boxStyle.padding.vertical + boxStyle.border.vertical);


            MyGUIExtend.Instance.ToolbarButton(new Dictionary <string, Action>
            {
                {
                    "读取", LoadRole
                },
                {
                    "All", () =>
                    {
                        currtagname = "";
                        showIndexList.Clear();
                        for (int ix = 0; ix < _placementConfigList.Count; ix++)
                        {
                            showIndexList.Add(ix);
                        }
                    }
                },
                {
                    "仅保存数据", saveData
                },
                {
                    "保存数据仅生成当前选中预制体", () =>
                    {
                        saveData();
                        Createprefab();
                    }
                }
            });


            EditorGUILayout.BeginVertical(boxStyle, GUILayout.Width(width), GUILayout.Height(height));

            MyGUIExtend.Instance.Foldout("BoxEditor", "路径信息", () =>
            {
                EditorGUILayout.BeginHorizontal();
                EditorGUILayout.LabelField(_roleDataFile);

                EditorGUILayout.EndHorizontal();

                EditorGUILayout.BeginHorizontal();
                EditorGUILayout.LabelField(_prefabPath);

                EditorGUILayout.EndHorizontal();

                EditorGUILayout.BeginHorizontal();
                _scalefloat = MyGUI.FloatFieldWithTitle("图片整体缩放大小", _scalefloat);
                EditorGUILayout.EndHorizontal();
            });

            // 编辑区域 add by TangJian 2017/11/15 16:28:19
            EditorGUILayout.BeginHorizontal();
            //一级列表
            EditorGUILayout.BeginVertical(boxStyle, GUILayout.Width((innerBoxWidth / 2) * (1f / 3f) - 5f), GUILayout.ExpandHeight(true));
            onelistViewPos = EditorGUILayout.BeginScrollView(onelistViewPos);
            for (int e = taglist.Count - 1; e >= 0; e--)
            {
                var tag = taglist[e];
                EditorGUILayout.BeginHorizontal();

                int Index = MyGUIExtend.Instance.ListSingleButton("BoxTag", taglist[e], e, (() =>
                {
                    currtagname = tag;
                    showIndexList.Clear();
                    //firstbool = true;
                    foreach (var item in _placementConfigList)
                    {
                        if (item.tagstring == tag)
                        {
                            showIndexList.Add(_placementConfigList.IndexOf(item));
                        }
                    }
                }));

                MyGUIExtend.Instance.Mouse_RightDrop(new Dictionary <string, Action>
                {
                    {
                        "删除", (() => { taglist.RemoveAt(Index); })
                    }
                });
                EditorGUILayout.EndVertical();
            }
            newtagname = EditorGUILayout.TextField(newtagname, GUILayout.Width((innerBoxWidth / 2) * (1f / 3f) - 15f));
            if (MyGUI.Button("+"))
            {
                taglist.Add(newtagname);
            }
            EditorGUILayout.EndScrollView();
            EditorGUILayout.EndVertical();
            // // 二级列表框 add by TangJian 2017/11/15 16:27:46
            EditorGUILayout.BeginVertical(boxStyle, GUILayout.Width((innerBoxWidth / 2) * (2f / 3f)), GUILayout.ExpandHeight(true));
            SearchContext      = GUILayout.TextField(SearchContext);
            _listScrollViewPos = EditorGUILayout.BeginScrollView(_listScrollViewPos);

            if (!string.IsNullOrEmpty(SearchContext))
            {
                for (int i = 0; i < _placementConfigList.Count; i++)
                {
                    if (Regex.IsMatch(_placementConfigList[i].id.ToLower(), SearchContext))
                    {
                        ListID(i);
                    }
                }
            }
            else
            {
                for (int i = _placementConfigList.Count - 1; i >= 0; i--)
                {
                    if (!showIndexList.Contains(i))
                    {
                        continue;
                    }
                    EditorGUILayout.BeginHorizontal();
                    ListID(i);
                    EditorGUILayout.EndHorizontal();
                }
            }
            if (MyGUI.Button("+"))
            {
                _placementConfigList.Add(new tian.PlacementConfig());
                _placementConfigList[_placementConfigList.Count - 1].tagstring = currtagname;
                showIndexList.Add(_placementConfigList.Count - 1);
            }

            GUILayout.Space(10);
            EditorGUILayout.EndScrollView();
            EditorGUILayout.EndVertical();


            // 编辑框 add by TangJian 2017/11/15 16:28:46
            EditorGUILayout.BeginVertical(boxStyle, GUILayout.Width(innerBoxWidth / 2), GUILayout.ExpandHeight(true));
            _editScrollViewPos = EditorGUILayout.BeginScrollView(_editScrollViewPos);
            if (_currPlacementConfig != null)
            {
                _currPlacementConfig.tagstring                 = MyGUI.TextFieldWithTitle("标签", _currPlacementConfig.tagstring);
                _currPlacementConfig.id                        = MyGUI.TextFieldWithTitle("ID", _currPlacementConfig.id);
                _currPlacementConfig.prefab                    = MyGUI.TextFieldWithTitle("prefab", _currPlacementConfig.prefab);
                _currPlacementConfig.AddRigidbody              = MyGUI.ToggleWithTitle("是否应用重力", _currPlacementConfig.AddRigidbody);
                _currPlacementConfig.colliderlayer             = (tian.ColliderLayer)MyGUI.EnumPopupWithTitle("碰撞layer", _currPlacementConfig.colliderlayer);
                _currPlacementConfig.colliderSizeType          = (tian.ColliderSizeType)MyGUI.EnumPopupWithTitle("size半自动与手工填写", _currPlacementConfig.colliderSizeType);
                _currPlacementConfig.placementData.deathEffect = MyGUI.TextFieldWithTitle("死亡动画|摧毁动画|爆炸动画", _currPlacementConfig.placementData.deathEffect);
                if (_currPlacementConfig.colliderSizeType != tian.ColliderSizeType.TextureRect)
                {
                    _currPlacementConfig.boundsPosition = MyGUI.Vector3WithTitle("碰撞体position", _currPlacementConfig.boundsPosition);
                    _currPlacementConfig.size           = MyGUI.Vector3WithTitle("碰撞体size", _currPlacementConfig.size);
                }
                _currPlacementConfig.NoNavMeshObstacle = MyGUI.ToggleWithTitle("不需要NavMeshObstacle", _currPlacementConfig.NoNavMeshObstacle);
                _currPlacementConfig.NoSortRenderPos   = MyGUI.ToggleWithTitle("不需要SortRenderPos", _currPlacementConfig.NoSortRenderPos);
                // Renderer朝向 add by TangJian 2018/12/18 15:57
                _currPlacementConfig.RendererOrientation =
                    (RendererOrientation)MyGUI.EnumPopupWithTitle("Renderer朝向", _currPlacementConfig.RendererOrientation);

                _currPlacementConfig.randerChoice = (tian.RanderChoice)MyGUI.EnumPopupWithTitle("Render选择", _currPlacementConfig.randerChoice);
                switch (_currPlacementConfig.randerChoice)
                {
                case tian.RanderChoice.Anim:
                    Spine.Unity.SkeletonDataAsset             skeletonDataAsset  = (Spine.Unity.SkeletonDataAsset)AssetDatabase.LoadAssetAtPath(_currPlacementConfig.SkeletonDataAssetpath, typeof(Spine.Unity.SkeletonDataAsset));
                    UnityEditor.Animations.AnimatorController animatorController = (UnityEditor.Animations.AnimatorController)AssetDatabase.LoadAssetAtPath(_currPlacementConfig.AnimatorControllerpath, typeof(UnityEditor.Animations.AnimatorController));
                    animatorController = (UnityEditor.Animations.AnimatorController)EditorGUILayout.ObjectField(new GUIContent("动画控制器"), animatorController, typeof(UnityEditor.Animations.AnimatorController), true);
                    skeletonDataAsset  = (Spine.Unity.SkeletonDataAsset)EditorGUILayout.ObjectField(new GUIContent("Skeleton"), skeletonDataAsset, typeof(Spine.Unity.SkeletonDataAsset), true);
                    _currPlacementConfig.SkeletonDataAssetpath  = AssetDatabase.GetAssetPath(skeletonDataAsset);
                    _currPlacementConfig.AnimatorControllerpath = AssetDatabase.GetAssetPath(animatorController);
                    _currPlacementConfig.ImagePath = "";
                    if (MyGUI.Button("打开纹理正面侧面编辑器"))
                    {
                        BoxTextureEditorWindow.Open(_currPlacementConfig);
                    }
                    break;

                case tian.RanderChoice.Image:
                    _currPlacementConfig.sceneDecorationPosition = (SceneDecorationPosition)MyGUI.EnumPopupWithTitle("显示位置", _currPlacementConfig.sceneDecorationPosition);
                    _usePathorImg = EditorGUILayout.ToggleLeft(new GUIContent("使用路径还是贴图"), _usePathorImg);

                    Material material = AssetDatabase.LoadAssetAtPath <Material>(_currPlacementConfig.materialPath);
                    material = (Material)EditorGUILayout.ObjectField("材质", material, typeof(Material), false);
                    _currPlacementConfig.materialPath = AssetDatabase.GetAssetPath(material);

                    if (_usePathorImg)
                    {
                        Texture2D img = (Texture2D)AssetDatabase.LoadAssetAtPath(_currPlacementConfig.ImagePath, typeof(Texture2D));
                        img = (Texture2D)EditorGUILayout.ObjectField(new GUIContent("贴图"), img, typeof(Texture2D), _usePathorImg);
                        _currPlacementConfig.ImagePath = AssetDatabase.GetAssetPath(img);
                        EditorGUILayout.LabelField("图片路径:", _currPlacementConfig.ImagePath);
                    }
                    else
                    {
                        _currPlacementConfig.ImagePath = MyGUI.TextFieldWithTitle("图片路径:", _currPlacementConfig.ImagePath);

                        Texture2D img = (Texture2D)EditorGUILayout.ObjectField(new GUIContent("贴图"), AssetDatabase.LoadAssetAtPath(_currPlacementConfig.ImagePath, typeof(Texture2D)), typeof(Texture2D), _usePathorImg);
                    }

                    if (MyGUI.Button("打开纹理正面侧面编辑器"))
                    {
                        BoxTextureEditorWindow.Open(_currPlacementConfig);
                    }

                    _currPlacementConfig.scaleType = (tian.ScaleType)MyGUI.EnumPopupWithTitle("使用整体缩放大小还是单独缩放大小", _currPlacementConfig.scaleType);
                    if (_currPlacementConfig.scaleType == tian.ScaleType.Alone)
                    {
                        _currPlacementConfig.AloneScale = MyGUI.FloatFieldWithTitle("单独缩放大小", _currPlacementConfig.AloneScale);
                    }
                    // currPlacementConfig.SkeletonDataAsset = null;
                    // currPlacementConfig.AnimatorController = null;
                    _currPlacementConfig.SkeletonDataAssetpath  = "";
                    _currPlacementConfig.AnimatorControllerpath = "";
                    break;

                default:
                    // currPlacementConfig.SkeletonDataAsset = null;
                    _currPlacementConfig.ImagePath              = "";
                    _currPlacementConfig.SkeletonDataAssetpath  = "";
                    _currPlacementConfig.AnimatorControllerpath = "";
                    // currPlacementConfig.AnimatorController = null;
                    break;
                }

                _currPlacementConfig.placementType = (tian.PlacementType)MyGUI.EnumPopupWithTitle("placementType", _currPlacementConfig.placementType);
                switch (_currPlacementConfig.placementType)
                {
                case tian.PlacementType.TreasureBox:
                    DrawDropItemList(ref _currPlacementConfig.placementData.dropItemList);
                    break;

                case tian.PlacementType.trap:
                    _currPlacementConfig.atk      = MyGUI.IntFieldWithTitle("Atk", _currPlacementConfig.atk);
                    _currPlacementConfig.trapType = (tian.TrapType)MyGUI.EnumPopupWithTitle("陷阱类型:", _currPlacementConfig.trapType);
                    switch (_currPlacementConfig.trapType)
                    {
                    case tian.TrapType.GroundStab:
                        GroundStabStateType groundStabStateType = (GroundStabStateType)_currPlacementConfig.trapState;
                        groundStabStateType            = (GroundStabStateType)MyGUI.EnumPopupWithTitle("地刺类型", groundStabStateType);
                        _currPlacementConfig.trapState = (int)groundStabStateType;
                        string st1 = "";
                        string st2 = "";
                        switch (_currPlacementConfig.trapState)
                        {
                        case 0:
                            st1 = "攻击延迟";
                            st2 = "关闭延迟";
                            break;

                        case 1:
                            st1 = "地刺地上停留时间";
                            st2 = "地刺地下停留时间";
                            _currPlacementConfig.float3 = MyGUI.FloatFieldWithTitle("首次停留时间", _currPlacementConfig.float3);
                            break;
                        }
                        _currPlacementConfig.float1 = MyGUI.FloatFieldWithTitle(st1, _currPlacementConfig.float1);
                        _currPlacementConfig.float2 = MyGUI.FloatFieldWithTitle(st2, _currPlacementConfig.float2);
                        break;
                    }
                    break;

                case tian.PlacementType.bucket:
                    _currPlacementConfig.placementData.hporCount = (tian.HporCount)MyGUI.EnumPopupWithTitle("打击数或hp", _currPlacementConfig.placementData.hporCount);
                    switch (_currPlacementConfig.placementData.hporCount)
                    {
                    case tian.HporCount.Hp:
                        _currPlacementConfig.placementData.atkhp = MyGUI.FloatFieldWithTitle("Hp", _currPlacementConfig.placementData.atkhp);
                        break;

                    case tian.HporCount.count:
                        _currPlacementConfig.placementData.atkcount = MyGUI.IntFieldWithTitle("被打击次数", _currPlacementConfig.placementData.atkcount);
                        break;

                    default:
                        break;
                    }

                    DrawDropItemList(ref _currPlacementConfig.placementData.dropItemList);
                    break;

                case tian.PlacementType.Ladder:
                    _currPlacementConfig.Laddertype = (laddertype)MyGUI.EnumPopupWithTitle("梯子在哪面", _currPlacementConfig.Laddertype);
                    break;

                case PlacementType.FenceDoor:
                    _currPlacementConfig.Laddertype = (laddertype)MyGUI.EnumPopupWithTitle("朝向", _currPlacementConfig.Laddertype);
                    break;

                default:
                    break;
                }


                // 材质类型
                _currPlacementConfig.matType       = (MatType)MyGUI.EnumPopupWithTitle("材质类型", _currPlacementConfig.matType);
                _currPlacementConfig.hitEffectType = (HitEffectType)MyGUI.EnumPopupWithTitle("打击效果类型", _currPlacementConfig.hitEffectType);

                //支持位移碰撞
                _currPlacementConfig.placementShake = MyGUI.ToggleWithTitle("支持位移碰撞", _currPlacementConfig.placementShake);
            }
            else
            {
                if (currtagname != null)
                {
                    EditorGUILayout.LabelField("当前选中标签:" + currtagname);
                    newtagnae = MyGUI.TextFieldWithTitle("新标签名称:", newtagnae);
                    if (MyGUI.Button("标签名称改动"))
                    {
                        if (taglist.Contains(currtagname))
                        {
                            //taglist[taglist.IndexOf(currtagname)] = newtagnae;
                            //currtagname = newtagnae;
                            foreach (var children in _placementConfigList)
                            {
                                if (children.tagstring == currtagname)
                                {
                                    children.tagstring = newtagnae;
                                }
                            }
                            taglist[taglist.IndexOf(currtagname)] = newtagnae;
                            currtagname = newtagnae;
                        }
                        newtagnae = "";
                    }
                }
            }

            GUILayout.Space(10);
            EditorGUILayout.EndScrollView();
            EditorGUILayout.EndVertical();


            EditorGUILayout.EndHorizontal();

            EditorGUILayout.EndVertical();
        }
Exemplo n.º 12
0
        void OnGUI()
        {
            GUIStyle boxStyle = new GUIStyle("box");

            var width  = position.size.x - boxStyle.border.horizontal;
            var height = position.size.y - boxStyle.border.vertical;

            var innerBoxWidth  = width - (boxStyle.padding.horizontal + boxStyle.border.horizontal);
            var innerBoxHeight = height - (boxStyle.padding.vertical + boxStyle.border.vertical);

            MyGUIExtend.Instance.ToolbarButton(new Dictionary <string, Action>
            {
                {
                    "读取", Load
                },
                {
                    "保存", Save
                }
            });

            EditorGUILayout.BeginHorizontal();

            EditorGUILayout.BeginVertical(boxStyle, GUILayout.Width(innerBoxWidth / 3), GUILayout.ExpandHeight(true));
            int removeIndex = -1;
            int copyIndex   = -1;

            SearchContext = GUILayout.TextField(SearchContext);
            verVector2    = GUILayout.BeginScrollView(verVector2);


            if (!string.IsNullOrEmpty(SearchContext))
            {
                for (int i = 0; i < animEffectSaveData.animEffectDataList.Count; i++)
                {
                    if (Regex.IsMatch(animEffectSaveData.animEffectDataList[i].id.ToLower(), SearchContext))
                    {
                        ListID(i);
                    }
                }
            }
            else
            {
                for (int i = 0; i < animEffectSaveData.animEffectDataList.Count; i++)
                {
                    GUILayout.BeginHorizontal();
                    ListID(i);
                    GUILayout.EndHorizontal();
                }
            }


            GUILayout.EndScrollView();

            if (MyGUI.Button("+"))
            {
                animEffectSaveData.animEffectDataList.Add(new AnimEffectData());
            }

            EditorGUILayout.EndVertical();


            EditorGUILayout.BeginVertical(boxStyle, GUILayout.Width(innerBoxWidth / 6), GUILayout.ExpandHeight(true));
            //  二级
            AnimEffectData animEffectData;

            if (animEffectSaveData.animEffectDataList.TryGet(focusIndex, out animEffectData))
            {
//                    int removeIndex = -1;
//                    int copyIndex = -1;

                for (int i = 0; i < animEffectData.animEffectDataList.Count; i++)
                {
                    GUILayout.BeginHorizontal();

                    int Index = MyGUIExtend.Instance.ListSingleButton("AnimEditor_1", i + ":" + animEffectData.animEffectDataList[i].id,
                                                                      i, (
                                                                          () =>
                    {
                        subFocusIndex = i;
                    }));

                    MyGUIExtend.Instance.Mouse_RightDrop(new Dictionary <string, Action>
                    {
                        {
                            "复制", (() =>
                            {
                                animEffectData.animEffectDataList.Add(
                                    Tools.DepthClone(animEffectData.animEffectDataList[Index]));
                            })
                        },
                        {
                            "删除", (() => { animEffectData.animEffectDataList.RemoveAt(Index); })
                        }
                    });


                    GUILayout.EndHorizontal();
                }

                if (animEffectData.animEffectType == AnimEffectData.AnimEffectType.Group || animEffectData.animEffectType == AnimEffectData.AnimEffectType.Random)
                {
                    if (MyGUI.Button("+"))
                    {
                        animEffectData.animEffectDataList.Add(new AnimEffectData());
                    }
                }
            }
            EditorGUILayout.EndVertical();



            EditorGUILayout.BeginVertical(boxStyle, GUILayout.Width(innerBoxWidth / 2), GUILayout.ExpandHeight(true));
            AnimEffectData animeffectData;

            if (animEffectSaveData.animEffectDataList.TryGet(focusIndex, out animeffectData))
            {
                if (subFocusIndex >= 0)
                {
                    if (animeffectData.animEffectDataList.TryGet(subFocusIndex, out animeffectData))
                    {
                    }
                    else
                    {
                        // 找不到subFocusIndex位置的AnimEffectData
                        return;
                    }
                }

                animEffectDataFieldScrollPos = MyGUI.AnimEffectDataField(animeffectData, animEffectDataFieldScrollPos);


                if (Application.isPlaying)
                {
                    testTimes       = MyGUI.IntFieldWithTitle("测试次数", testTimes);
                    testInterval    = MyGUI.FloatFieldWithTitle("间隔时间", testInterval);
                    moveOrientation = MyGUI.Vector3WithTitle("移动方向", moveOrientation);
                    testPosition    = MyGUI.Vector3WithTitle("位置", testPosition);
                    testFlip        = MyGUI.ToggleWithTitle("翻转", testFlip);


                    if (MyGUI.Button("测试特效"))
                    {
                        EditorCoroutineSequenceRunner.RemoveCoroutine("AnimEffectTest");
                        EditorCoroutineSequenceRunner.AddCoroutineIfNot("AnimEffectTest", TestAnimEffect(animeffectData, testTimes, testInterval));
                    }
                }
            }
            EditorGUILayout.EndVertical();


            EditorGUILayout.EndHorizontal();
        }
Exemplo n.º 13
0
        public override void OnInspectorGUI()
        {
            if (Application.isPlaying)
            {
                animEffectId = MyGUI.TextFieldWithTitle("animEffectId", animEffectId);
                if (MyGUI.Button("测试特效"))
                {
                    var playerObject = GameObject.Find("Player1");
                    AnimManager.Instance.PlayAnimEffect(animEffectId, playerObject.transform.position);
                }

                shakeEffectVisable = MyGUI.FoldoutWithTitle("Shake", shakeEffectVisable);
                if (shakeEffectVisable)
                {
                    shakeXYEnum = (ShakeXYEnum)MyGUI.EnumPopupWithTitle("震动类型", shakeXYEnum);
                    EditorGUILayout.BeginVertical();

                    duration = MyGUI.FloatFieldWithTitle("持续时间(duration)", duration);
                    if (shakeXYEnum == ShakeXYEnum.ShakeV3)
                    {
                        strengthV3 = MyGUI.Vector3WithTitle("震动幅度(strength)Vector3", strengthV3);
                    }
                    else
                    {
                        strength = MyGUI.FloatFieldWithTitle("震动幅度(strength)", strength);
                    }

                    vibrato    = MyGUI.IntFieldWithTitle("震动强度(vibrato)", vibrato);
                    randomness = MyGUI.FloatFieldWithTitle("随机性震动(randomness)", randomness);
                    snapping   = MyGUI.ToggleWithTitle("snapping", snapping);
                    fadeOut    = MyGUI.ToggleWithTitle("fadeOut", fadeOut);

                    EditorGUILayout.EndVertical();

                    if (MyGUI.Button("测试震动"))
                    {
                        switch (shakeXYEnum)
                        {
                        case ShakeXYEnum.FastShake:
                            AnimManager.Instance.Shake(duration, strength, vibrato, randomness, snapping, fadeOut);
                            break;

                        case ShakeXYEnum.ShakeX:
                            AnimManager.Instance.ShakeX(duration, strength, vibrato, randomness, snapping, fadeOut);
                            break;

                        case ShakeXYEnum.ShakeY:
                            AnimManager.Instance.ShakeY(duration, strength, vibrato, randomness, snapping, fadeOut);
                            break;

                        case ShakeXYEnum.ShakeV3:
                            AnimManager.Instance.ShakeV3(duration, strengthV3, vibrato, randomness, snapping, fadeOut);
                            break;

                        default:
                            break;
                        }
                    }
                }
                CameraScaleVisable = MyGUI.FoldoutWithTitle("CameraScale", CameraScaleVisable);
                if (CameraScaleVisable)
                {
                    CameraScale = MyGUI.FloatFieldWithTitle("Camerasize", CameraScale);
                    if (MyGUI.Button("测试摄像机放大"))
                    {
                        AnimManager.Instance.CameraScaleUp(CameraScale);
                    }
                }
                game = (GameObject)EditorGUILayout.ObjectField(new GUIContent("role"), game, typeof(GameObject), true);
                if (game != null)
                {
                    longlong = MyGUI.FloatFieldWithTitle("long", longlong);
                    heitht   = MyGUI.FloatFieldWithTitle("height", heitht);
                    t        = MyGUI.FloatFieldWithTitle("", t);
                    if (MyGUI.Button("测试伤害数值"))
                    {
                        Vector3 v3 = new Vector3(0, 3, 0) + game.transform.position;
                        AnimManager.Instance.cebezierInterrupt("13", v3, 1f, false, longlong, heitht, t);
                    }
                }
            }

            DrawDefaultInspector();
        }
Exemplo n.º 14
0
        void OnGUI()
        {
            GUIStyle boxStyle = new GUIStyle("box");

            var width  = position.size.x - boxStyle.border.horizontal;
            var height = position.size.y - boxStyle.border.vertical;

            var innerBoxWidth  = width - (boxStyle.padding.horizontal + boxStyle.border.horizontal);
            var innerBoxHeight = height - (boxStyle.padding.vertical + boxStyle.border.vertical);

            EditorGUILayout.BeginVertical(boxStyle, GUILayout.Width(width), GUILayout.Height(height));

            // 设置路径, 以及存取数据 add by TangJian 2017/11/15 16:22:45
            EditorGUILayout.BeginHorizontal();
            EditorGUILayout.LabelField(SceneDecorationFile);
            if (MyGUI.Button("读取"))
            {
                loadSceneDecoration();
            }
            if (MyGUI.Button("保存"))
            {
                saveSceneDecoration();
            }
            EditorGUILayout.EndHorizontal();

            EditorGUILayout.BeginHorizontal();
            EditorGUILayout.LabelField(prefabPath);
            if (MyGUI.Button("制作预制体"))
            {
                saveSceneDecoration();
            }
            EditorGUILayout.EndHorizontal();
            EditorGUILayout.BeginHorizontal();
            imgsclae = MyGUI.FloatFieldWithTitle("图片整体缩放大小", imgsclae);
            EditorGUILayout.EndHorizontal();

            // 编辑区域 add by TangJian 2017/11/15 16:28:19
            EditorGUILayout.BeginHorizontal();

            // // 列表框 add by TangJian 2017/11/15 16:27:46
            EditorGUILayout.BeginVertical(boxStyle, GUILayout.Width(innerBoxWidth / 2), GUILayout.ExpandHeight(true));
            listScrollViewPos = EditorGUILayout.BeginScrollView(listScrollViewPos);

            for (int i = SceneDecorationList.Count - 1; i >= 0; i--)
            {
                var item = SceneDecorationList[i];
                EditorGUILayout.BeginHorizontal();

                if (MyGUI.Button("删除", GUILayout.Width(50)))
                {
                    SceneDecorationList.RemoveAt(i);
                }

                if (MyGUI.Button(item.id))
                {
                    currSceneDecoration = item;
                }

                if (MyGUI.Button("复制", GUILayout.Width(50)))
                {
                    var consumableData = Tools.Json2Obj <SceneDecorationEditorwindowData>(Tools.Obj2Json(item, true));
                    SceneDecorationList.Add(consumableData);
                }

                EditorGUILayout.EndHorizontal();
            }

            if (MyGUI.Button("+"))
            {
                SceneDecorationList.Add(new SceneDecorationEditorwindowData());
            }

            EditorGUILayout.EndScrollView();
            EditorGUILayout.EndVertical();


            // 编辑框 add by TangJian 2017/11/15 16:28:46
            EditorGUILayout.BeginVertical(boxStyle, GUILayout.Width(innerBoxWidth / 2), GUILayout.ExpandHeight(true));
            editScrollViewPos = EditorGUILayout.BeginScrollView(editScrollViewPos);
            if (currSceneDecoration != null)
            {
                currSceneDecoration.id = MyGUI.TextFieldWithTitle("ID", currSceneDecoration.id);
                currSceneDecoration.sceneDecorationPosition = (SceneDecorationPosition)MyGUI.EnumPopupWithTitle("显示位置", currSceneDecoration.sceneDecorationPosition);
                UsePathorImg = EditorGUILayout.ToggleLeft(new GUIContent("使用路径还是贴图"), UsePathorImg);
                if (UsePathorImg)
                {
                    Texture2D img = (Texture2D)AssetDatabase.LoadAssetAtPath(currSceneDecoration.texturePath, typeof(Texture2D));
                    img = (Texture2D)EditorGUILayout.ObjectField(new GUIContent("贴图"), img, typeof(Texture2D), UsePathorImg);
                    currSceneDecoration.texturePath = AssetDatabase.GetAssetPath(img);
                    EditorGUILayout.LabelField("图片路径:", currSceneDecoration.texturePath);
                }
                else
                {
                    currSceneDecoration.texturePath = MyGUI.TextFieldWithTitle("图片路径:", currSceneDecoration.texturePath);
                    Texture2D img = (Texture2D)EditorGUILayout.ObjectField(new GUIContent("贴图"), AssetDatabase.LoadAssetAtPath(currSceneDecoration.texturePath, typeof(Texture2D)), typeof(Texture2D), UsePathorImg);
                }
                currSceneDecoration.scaleType = (tian.ScaleType)MyGUI.EnumPopupWithTitle("使用整体缩放大小还是单独缩放大小", currSceneDecoration.scaleType);
                if (currSceneDecoration.scaleType == tian.ScaleType.Alone)
                {
                    currSceneDecoration.AloneScale = MyGUI.FloatFieldWithTitle("单独缩放大小", currSceneDecoration.AloneScale);
                }
            }
            EditorGUILayout.EndScrollView();
            EditorGUILayout.EndVertical();


            EditorGUILayout.EndHorizontal();

            EditorGUILayout.EndVertical();
        }
Exemplo n.º 15
0
        void OnGUI()
        {
            GUIStyle boxStyle = new GUIStyle("box");

            var width  = position.size.x - boxStyle.border.horizontal;
            var height = position.size.y - boxStyle.border.vertical;

            var innerBoxWidth  = width - (boxStyle.padding.horizontal + boxStyle.border.horizontal);
            var innerBoxHeight = height - (boxStyle.padding.vertical + boxStyle.border.vertical);

            MyGUIExtend.Instance.ToolbarButton(new Dictionary <string, Action>
            {
                {
                    "读取", (() => { loadBuff(); })
                },
                {
                    "保存", (() => { saveBuff(); })
                }
            });

            EditorGUILayout.BeginVertical(boxStyle, GUILayout.Width(width), GUILayout.Height(height));

            // 设置路径, 以及存取数据 add by TangJian 2017/11/15 16:22:45
            EditorGUILayout.BeginHorizontal();

            MyGUIExtend.Instance.Foldout("BuffEditor", "路径信息", (() =>
            {
                EditorGUILayout.LabelField(buffDataFile);
            }));

            EditorGUILayout.EndHorizontal();

            // EditorGUILayout.BeginHorizontal();
            // EditorGUILayout.LabelField(prefabPath);
            // if (MyGUI.Button("制作预制体"))
            // {
            //     saveBuff();
            // }
            // EditorGUILayout.EndHorizontal();

            // 编辑区域 add by TangJian 2017/11/15 16:28:19
            EditorGUILayout.BeginHorizontal();

            // // 列表框 add by TangJian 2017/11/15 16:27:46
            EditorGUILayout.BeginVertical(boxStyle, GUILayout.Width(innerBoxWidth / 2), GUILayout.ExpandHeight(true));
            listScrollViewPos = EditorGUILayout.BeginScrollView(listScrollViewPos);

            for (int i = buffDataList.Count - 1; i >= 0; i--)
            {
                var item = buffDataList[i];

                EditorGUILayout.BeginHorizontal();
                int Index = MyGUIExtend.Instance.ListSingleButton("BuffEditor", item.id, i, (() => { currBuffData = item; }));

                MyGUIExtend.Instance.Mouse_RightDrop(new Dictionary <string, Action>
                {
                    {
                        "删除", (() => { buffDataList.RemoveAt(Index); })
                    },
                    {
                        "复制", (() =>
                        {
                            var buffData = Tools.Json2Obj <BuffData>(Tools.Obj2Json(buffDataList[Index], true));
                            buffDataList.Add(buffData);
                        })
                    }
                });
                EditorGUILayout.EndHorizontal();
            }

            if (MyGUI.Button("+"))
            {
                buffDataList.Add(new BuffData());
            }

            EditorGUILayout.EndScrollView();
            EditorGUILayout.EndVertical();


            // 编辑框 add by TangJian 2017/11/15 16:28:46
            EditorGUILayout.BeginVertical(boxStyle, GUILayout.Width(innerBoxWidth / 2), GUILayout.ExpandHeight(true));
            editScrollViewPos = EditorGUILayout.BeginScrollView(editScrollViewPos);
            if (currBuffData != null)
            {
                currBuffData.id             = MyGUI.TextFieldWithTitle("id", currBuffData.id);
                currBuffData.name           = MyGUI.TextFieldWithTitle("name", currBuffData.name);
                currBuffData.duration       = MyGUI.FloatFieldWithTitle("duration", currBuffData.duration);
                currBuffData.updateInterval = MyGUI.FloatFieldWithTitle("updateInterval", currBuffData.updateInterval);

                currBuffData.attrData = MyGUI.AttrDataField(currBuffData.attrData);

                //
                currAddBuffEventType = (BuffEventType)MyGUI.EnumPopupWithTitle("事件类型", currAddBuffEventType);
                if (MyGUI.Button("添加"))
                {
                    currBuffData.buffEvents.Add(currAddBuffEventType, new List <ActionData>());
                }

                if (MyGUI.Button("移除"))
                {
                    if (currBuffData.buffEvents.ContainsKey(currAddBuffEventType))
                    {
                        currBuffData.buffEvents.Remove(currAddBuffEventType);
                    }
                }

                List <BuffEventType> needRemoveBuffEventList = new List <BuffEventType>();
                foreach (var buffEvent in currBuffData.buffEvents)
                {
                    List <ActionData> actionDataList = buffEvent.Value;
                    DrawActionList(buffEvent.Key.ToString(), ref actionDataList);
                }

                foreach (var item in needRemoveBuffEventList)
                {
                    currBuffData.buffEvents.Remove(item);
                }
            }

            GUILayout.Space(10);
            EditorGUILayout.EndScrollView();
            EditorGUILayout.EndVertical();


            EditorGUILayout.EndHorizontal();

            EditorGUILayout.EndVertical();
        }
Exemplo n.º 16
0
        //SkillListManagerDataAsset skillManagerDataAsset;

        void OnGUI()
        {
            MyGUI.Layout(
                position,
                boxStyle,
                Layout,
                (Rect position) =>
            {
                EditorGUILayout.LabelField(skillDataFile);
                if (MyGUI.Button("读取"))
                {
                    Load();
                }

                if (MyGUI.Button("保存"))
                {
                    Save();
                }
            },
                (Rect position) =>
            {
                int removeIndex = -1;
                int copyIndex   = -1;
                if (skillListDatas.Count > 0)
                {
                    for (int i = 0; i < skillListDatas.Count; i++)
                    {
                        GUILayout.BeginHorizontal();
                        if (MyGUI.Button("复制", GUILayout.Width(20)))
                        {
                            copyIndex = i;
                        }
                        if (MyGUI.Button(skillListDatas[i].id))
                        {
                            currskillListData = skillListDatas[i];
                            focusIndex        = i;
                        }
                        if (MyGUI.Button("-", GUILayout.Width(20)))
                        {
                            removeIndex = i;
                        }
                        GUILayout.EndHorizontal();
                    }
                }

                if (removeIndex >= 0)
                {
                    skillListDatas.RemoveAt(removeIndex);
                }

                if (copyIndex >= 0)
                {
                    //SkillListData skill = skillListDatas[copyIndex];
                    skillListDatas.Add(Tools.DepthClone(skillListDatas[copyIndex]));
                }

                if (MyGUI.Button("+"))
                {
                    skillListDatas.Add(new SkillListSaveData());
                }
            },
                (Rect position) =>
            {
                if (currskillListData != null)
                {
                    Scrollpos            = EditorGUILayout.BeginScrollView(Scrollpos);
                    currskillListData.id = MyGUI.TextFieldWithTitle("id:", currskillListData.id);
                    currskillListData.roleSkillListFrameEventData.RoleSkillListType = (RoleSkillListType)MyGUI.EnumPopupWithTitle("类型:", currskillListData.roleSkillListFrameEventData.RoleSkillListType);
                    currskillListData.roleSkillListFrameEventData = MyGUI.Skilldatalistfield(currskillListData.roleSkillListFrameEventData, currskillListData.roleSkillListFrameEventData.RoleSkillListType);
                    EditorGUILayout.EndScrollView();
                }
            },
                (Rect position) =>
            {
                if (Application.isPlaying)
                {
                    testTimes    = MyGUI.IntFieldWithTitle("测试次数", testTimes);
                    testInterval = MyGUI.FloatFieldWithTitle("间隔时间", testInterval);
                    //moveOrientation = MyGUI.Vector3WithTitle("移动方向", moveOrientation);
                    //testPosition = MyGUI.Vector3WithTitle("位置", testPosition);
                    testFlip = MyGUI.ToggleWithTitle("翻转", testFlip);


                    if (MyGUI.Button("测试特效"))
                    {
                        EditorCoroutineSequenceRunner.RemoveCoroutine("SkillList");
                        EditorCoroutineSequenceRunner.AddCoroutineIfNot("SkillList", TestAnimEffect(currskillListData, testTimes, testInterval));
                    }
                }
            });
        }