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 }
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(); }
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(); }
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; }
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); }
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; } } }
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(); }
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 }
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 }
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(); }
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(); }
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(); }
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(); }
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(); }
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(); }
//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)); } } }); }