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)); EditorGUILayout.BeginHorizontal(); MyGUI.TextFieldWithTitle("动画资源路径:", EffectFile); if (MyGUI.Button("动画资源列表刷新")) { load(); saveskeletonAsstes(); } EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); MyGUI.TextFieldWithTitle("动画资源列表json路径:", EffectFilejson); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginVertical(); for (int i = EffectFileList.Count - 1; i >= 0; i--) { EditorGUILayout.LabelField(EffectFileList[i]); } EditorGUILayout.EndVertical(); EditorGUILayout.EndVertical(); }
public override void OnInspectorGUI() { SortRenderer sortRenderer = target as SortRenderer; if (MyGUI.Button("从碰撞区域生成SortRendererPos")) { Bounds bounds = sortRenderer.gameObject.GetColliderBounds(); sortRenderer.SetSortRendererPos(new Vector3(bounds.center.x, bounds.center.y, bounds.max.z)); } if (MyGUI.Button("从渲染区域生成SortRendererPos")) { Bounds bounds = sortRenderer.gameObject.GetRendererBounds(); sortRenderer.SetSortRendererPos(new Vector3(bounds.center.x, bounds.center.y, bounds.max.z)); } base.OnInspectorGUI(); }
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 DrawActionList(string title, ref List <ActionData> actionDataList) { EditorGUILayout.BeginHorizontal(); if (actionListVisableDic.TryGetValue(actionDataList, out actionListVisable) == false) { actionListVisable = false; } actionListVisable = MyGUI.FoldoutWithTitle(title, actionListVisable); actionListVisableDic[actionDataList] = actionListVisable; if (actionListVisable) { if (MyGUI.Button("添加")) { actionDataList.Add(new ActionData()); } } EditorGUILayout.EndHorizontal(); if (actionListVisable) { GUIStyle boxStyle = new GUIStyle("box"); EditorGUILayout.BeginVertical(boxStyle, GUILayout.ExpandWidth(true)); for (int i = actionDataList.Count - 1; i >= 0; i--) { EditorGUILayout.BeginHorizontal(); var actionData = actionDataList[i]; DrawActionData(ref actionData); if (MyGUI.Button("删除")) { actionDataList.RemoveAt(i); } EditorGUILayout.EndHorizontal(); } EditorGUILayout.EndVertical(); } }
public override void OnInspectorGUI() { if (MyGUI.Button("重置原始尺寸")) { foreach (ImageWall imageWall in targets) { imageWall.Reset(); } } foreach (ImageWall imageWall in targets) { imageWall.Update(); } DrawDefaultInspector(); }
public override void OnInspectorGUI() { foreach (SceneComponent _sceneComponent in targets) { if (PrefabUtility.GetPrefabType(_sceneComponent.gameObject) == PrefabType.PrefabInstance) { _sceneComponent.MoveByGridPos(Vector3.zero); } } if (MyGUI.Button("更新组件")) { EditorCoroutineSequenceRunner.AddCoroutineIfNot("更新组件", targets.MyToList <SceneComponent>().Editor_UpdateToPrefab()); } if (MyGUI.Button("生成2d图片")) { foreach (SceneComponent item in targets) { if (item is SceneSlopeComponent) { (item as SceneSlopeComponent).CreateTexture2D(); } if (item is BackWall) { (item as BackWall).CreateTexture2D(); } if (item is SceneSideWallComponent) { (item as SceneSideWallComponent).CreateTexture2D(); } if (item is SceneCenterWallComponent) { (item as SceneCenterWallComponent).CreateTexture2D(); } if (item is SceneSlopeWallComponent) { (item as SceneSlopeWallComponent).CreateTexture2D(); } if (item is SceneTriangleWallComponent) { (item as SceneTriangleWallComponent).CreateTexture2D(); } if (item is Ground) { (item as Ground).CreateTexture2D(); } } } SceneComponent sceneComponent = (target as SceneComponent); GUILayout.Label("ComponentType: " + sceneComponent.ComponentType); if (PrefabUtility.GetPrefabType(sceneComponent.gameObject) == PrefabType.Prefab) { if (MyGUI.Button("生成纹理")) { for (int i = 0; i < targets.Length; i++) { SceneComponent _sceneComponent = targets[i] as SceneComponent; if (_sceneComponent != null) { EditorUtility.DisplayProgressBar("生成纹理", "生成纹理: " + _sceneComponent.name, (float)i / targets.Length); Tools.ModifyPrefab(_sceneComponent.gameObject, (GameObject go) => { go.GetComponent <SceneComponent>().Editor_Build(); }); } } EditorUtility.ClearProgressBar(); } } DrawDefaultInspector(); // 刷新组件的翻转 add by TangJian 2018/10/31 14:25 foreach (SceneComponent _sceneComponent in targets) { _sceneComponent.RefreshFlip(); } }
public override void OnInspectorGUI() { { EditorGUILayout.BeginHorizontal(); MyGUI.TextFieldWithTitle("碰撞区域名称", colliderName); if (MyGUI.Button("根据Renderer生成碰撞区域")) { foreach (var item in targets) { ColliderCreator itriggerDelegate = item as ColliderCreator; GameObject gameObject = itriggerDelegate.gameObject; Debug.Assert(gameObject != null); Bounds bounds = gameObject.GetRendererBounds(); bounds.center = new Vector3(bounds.center.x - gameObject.transform.position.x, bounds.center.y - gameObject.transform.position.y, bounds.center.z - gameObject.transform.position.z); // 创建交互区域 add by TangJian 2018/01/02 21:26:35 { float scale = 1f; GameObject interactObject = gameObject.GetChild(colliderName, true); interactObject.transform.localScale = new Vector3(1, 1, 1) * scale; interactObject.transform.localPosition = Vector3.zero; interactObject.transform.localEulerAngles = Vector3.zero; interactObject.layer = LayerMask.NameToLayer("Interaction"); BoxCollider boxCollider = interactObject.AddComponentUnique <BoxCollider>(); boxCollider.isTrigger = true; boxCollider.size = bounds.size; boxCollider.center = bounds.center; TriggerController triggerController = interactObject.AddComponentUnique <TriggerController>(); } } } if (MyGUI.Button("根据Collider生成碰撞区域")) { foreach (var item in targets) { ColliderCreator itriggerDelegate = item as ColliderCreator; GameObject gameObject = itriggerDelegate.gameObject; Debug.Assert(gameObject != null); Bounds bounds = gameObject.GetColliderBounds(); bounds.center = new Vector3(bounds.center.x - gameObject.transform.position.x, bounds.center.y - gameObject.transform.position.y, bounds.center.z - gameObject.transform.position.z); // 创建交互区域 add by TangJian 2018/01/02 21:26:35 { float scale = 1f; GameObject interactObject = gameObject.GetChild(colliderName, true); interactObject.transform.localScale = new Vector3(1, 1, 1) * scale; interactObject.transform.localPosition = Vector3.zero; interactObject.transform.localEulerAngles = Vector3.zero; interactObject.layer = LayerMask.NameToLayer("Interaction"); BoxCollider boxCollider = interactObject.AddComponentUnique <BoxCollider>(); boxCollider.isTrigger = true; boxCollider.size = bounds.size; boxCollider.center = bounds.center; TriggerController triggerController = interactObject.AddComponentUnique <TriggerController>(); } } } EditorGUILayout.EndHorizontal(); } DrawDefaultInspector(); }
public override void OnInspectorGUI() { { skeletonDataAssetSaveId = AssetDatabase.GetAssetPath(target) + "_skeletonDataAssetId"; string skeletonDataAssetPath = PlayerPrefs.GetString(skeletonDataAssetSaveId); skeletonDataAsset = AssetDatabase.LoadAssetAtPath <SkeletonDataAsset>(skeletonDataAssetPath); skeletonDataAsset = (SkeletonDataAsset)EditorGUILayout.ObjectField("SkeletonDataAsset", skeletonDataAsset, typeof(SkeletonDataAsset)); PlayerPrefs.SetString(skeletonDataAssetSaveId, skeletonDataAsset ? AssetDatabase.GetAssetPath(skeletonDataAsset) : ""); } { string excelPathKey = AssetDatabase.GetAssetPath(target) + "_ExcelPath"; excelPath = PlayerPrefs.GetString(excelPathKey); PlayerPrefs.SetString(excelPathKey, EditorGUILayout.TextField("ExcelPath", excelPath)); } if (MyGUI.Button("更新状态机")) { string path = Path.GetDirectoryName(AssetDatabase.GetAssetPath(target)); JsonPath = path + "/" + target.name + ".json"; text = AssetDatabase.LoadAssetAtPath <TextAsset>(JsonPath); if (text == null) { if (MyGUI.Button("生成状态机模板")) { AssetDatabase.CopyAsset("Assets/Scripts/Tang/Edit/Editor/Animator/AnimatorControllerTemplate.json", JsonPath); } } if (text != null) { CreateAnimatorByJsonText(text.text); } } if (MyGUI.Button("添加帧事件支持")) { AnimatorController animatorController = target as AnimatorController; AnimatorControllerLayer[] animatorControllerLayers = animatorController.layers; AnimatorStateMachine animatorStateMachine = animatorControllerLayers[0].stateMachine; foreach (var state in animatorStateMachine.states) { if (state.state != null) { if (state.state.motion != null) { if (state.state.motion is UnityEditor.Animations.BlendTree) { var blendTree = state.state.motion as UnityEditor.Animations.BlendTree; if (blendTree.children.Length != 0) { FrameEventBehaviour frameEventBehaviour = state.state.AddStateBehaviour <FrameEventBehaviour>(); Motion motion = blendTree.children[0].motion; if (motion != null) { frameEventBehaviour.animName = motion.name; frameEventBehaviour.Parameter = blendTree.blendParameter; frameEventBehaviour.namelist.Clear(); for (int i = 0; i < blendTree.children.Length; i++) { UnityEditor.Animations.ChildMotion child = blendTree.children[i]; Motion childmotion = blendTree.children[i].motion; if (childmotion != null && childmotion.name != null && childmotion.name != "") { if (frameEventBehaviour.namelist.Count - 1 < (int)child.threshold) { int count = (int)child.threshold - (frameEventBehaviour.namelist.Count - 1); for (int c = 0; c < count; c++) { frameEventBehaviour.namelist.Add("null"); } } frameEventBehaviour.namelist.Insert((int)child.threshold, childmotion.name); } } } } } else { Motion motion = state.state.motion; FrameEventBehaviour frameEventBehaviour = state.state.AddStateBehaviour <FrameEventBehaviour>(); frameEventBehaviour.animName = motion.name; } } } } EditorUtility.SetDirty(animatorController); AssetDatabase.SaveAssets(); AssetDatabase.Refresh(); } if (MyGUI.Button("添加状态通知支持")) { SupportEventDispatch(); } if (MyGUI.Button("copy")) { AnimatorController oldAnimatorController = target as AnimatorController; string oldAnimatorControllerPath = AssetDatabase.GetAssetPath(oldAnimatorController); string newAnimatorControllerPath = oldAnimatorControllerPath.Substring(0, oldAnimatorControllerPath.IndexOf(".")); string newpath = newAnimatorControllerPath + "_new" + ".controller"; AnimatorController NewAnimatorController = AnimatorController.CreateAnimatorControllerAtPath(newpath); var unityAnimationClipTable = new Dictionary <string, Motion>(); Object[] objects = AssetDatabase.LoadAllAssetRepresentationsAtPath(oldAnimatorControllerPath); foreach (var item in objects) { //新建AnimationClip if (item is AnimationClip) { var clip = item as AnimationClip; AnimationClip newClip = new AnimationClip { name = clip.name }; AssetDatabase.AddObjectToAsset(newClip, NewAnimatorController); newClip.SetCurve("", typeof(GameObject), "dummy", AnimationCurve.Linear(0, 0, clip.length, 0)); var settings = AnimationUtility.GetAnimationClipSettings(newClip); settings.stopTime = clip.length; settings.loopTime = clip.isLooping; AnimationUtility.SetAnimationClipSettings(newClip, settings); AnimationUtility.SetAnimationEvents(newClip, clip.events); EditorUtility.SetDirty(newClip); unityAnimationClipTable.Add(clip.name, newClip); } else if (item is UnityEditor.Animations.BlendTree) { var additem = item as UnityEditor.Animations.BlendTree; string additemjson = Tools.Obj2Json <UnityEditor.Animations.BlendTree>(additem); UnityEditor.Animations.BlendTree blendTree = Tools.Json2Obj <UnityEditor.Animations.BlendTree>(additemjson); AssetDatabase.AddObjectToAsset(blendTree, NewAnimatorController); unityAnimationClipTable.Add(blendTree.name, blendTree); } } //新建AnimationClip保存 EditorUtility.SetDirty(NewAnimatorController); AssetDatabase.Refresh(); AssetDatabase.SaveAssets(); //转移动画AnimationClip引用 NewAnimatorController.parameters = oldAnimatorController.parameters; AnimatorControllerLayer[] oldAnimatorControllerLayers = oldAnimatorController.layers; AnimatorStateMachine oldAnimatorStateMachine = oldAnimatorControllerLayers[0].stateMachine; AnimatorControllerLayer[] NewAnimatorControllerLayers = NewAnimatorController.layers; AnimatorStateMachine NewAnimatorStateMachine = NewAnimatorControllerLayers[0].stateMachine; foreach (var oldChildenstate in oldAnimatorStateMachine.states) { if (oldChildenstate.state != null) { var oldChildAnimatorState = oldChildenstate.state; var oldStatemotion = oldAnimatorController.GetStateEffectiveMotion(oldChildAnimatorState, 0); UnityEditor.Animations.AnimatorState newState = NewAnimatorStateMachine.AddState(oldChildAnimatorState.name, oldChildenstate.position); newState.name = oldChildAnimatorState.name; newState.tag = oldChildAnimatorState.tag; if (oldStatemotion != null) { if (unityAnimationClipTable.ContainsKey(oldStatemotion.name)) { var Motion = unityAnimationClipTable[oldStatemotion.name]; NewAnimatorController.SetStateEffectiveMotion(newState, Motion); //NewAnimatorStateMachine.AddState(newState, oldChildenstate.position); } } } } AssetDatabase.Refresh(); AssetDatabase.SaveAssets(); foreach (var oldChildenstate in oldAnimatorStateMachine.states) { if (oldChildenstate.state != null) { var oldChildAnimatorState = oldChildenstate.state; UnityEditor.Animations.AnimatorState newState = NewAnimatorStateMachine.GetState(oldChildAnimatorState.name); if (newState != null) { foreach (var oldTransition in oldChildAnimatorState.transitions) { UnityEditor.Animations.AnimatorState tostate = NewAnimatorStateMachine.GetState(oldTransition.destinationState.name); var transition = newState.AddTransition(tostate); // transition.interruptionSource = UnityEditor.Animations.TransitionInterruptionSource.Destination; transition.interruptionSource = oldTransition.interruptionSource;// UnityEditor.Animations.TransitionInterruptionSource.Source; transition.hasExitTime = oldTransition.hasExitTime; transition.exitTime = oldTransition.exitTime; transition.duration = oldTransition.duration; transition.offset = oldTransition.offset; foreach (var conditionConfig in oldTransition.conditions) { transition.AddCondition(conditionConfig.mode, conditionConfig.threshold, conditionConfig.parameter); } } //newState.AddStateMachineBehaviour<RoleBaseStateMachineBehaviour>(); foreach (var item in oldChildAnimatorState.behaviours) { //string sd = item.GetType().FullName; //Type sda = Type.GetType(item.GetType().FullName); //if (sda == null) //{ // sda = Type.GetType(item.GetType().Namespace + "." + item.GetType().FullName); //} newState.AddStateMachineBehaviour(item.GetType()); } } } } //EditorUtility.SetDirty(NewAnimatorController); //AssetDatabase.SaveAssets(); EditorUtility.SetDirty(NewAnimatorController); AssetDatabase.Refresh(); AssetDatabase.SaveAssets(); System.IO.File.Delete(oldAnimatorControllerPath); System.IO.File.Move(newpath, oldAnimatorControllerPath); } if (MyGUI.Button("移除多余clip")) { AnimatorController animatorController = target as AnimatorController; AnimatorControllerLayer[] animatorControllerLayers = animatorController.layers; AnimatorStateMachine animatorStateMachine = animatorControllerLayers[0].stateMachine; var objList = AssetDatabase.LoadAllAssetRepresentationsAtPath(AssetDatabase.GetAssetPath(animatorController)); Dictionary <int, bool> tmp = new Dictionary <int, bool>(); foreach (var item in objList) { if (item != null) { if (tmp.ContainsKey(item.GetInstanceID())) { DestroyImmediate(item, true); } else { tmp.Add(item.GetInstanceID(), true); } } } foreach (var item in objList) { if (item != null) { bool needRemove = true; foreach (var state in animatorStateMachine.states) { if (state.state != null && state.state.motion != null && state.state.motion.Equals(item)) { needRemove = false; } } if (needRemove) { DestroyImmediate(item, true); } } } EditorUtility.SetDirty(animatorController); AssetDatabase.SaveAssets(); AssetDatabase.Refresh(); } if (MyGUI.Button("新的状态机生成")) { AnimatorCreator animatorCreator = new AnimatorCreator(AnimatorLoadExcel.GetJObjectFromExcel(excelPath).ToObject <RoleAnimator>()); try { // skeletonDataAsset.RoleAnimator = animatorCreator.RoleAnimator; // skeletonDataAsset.RoleAnimatorString = Tools.Obj2Json(animatorCreator.RoleAnimator); AnimatorController animatorController = target as AnimatorController; List <KeyValue <string, string> > RoleAnimatorStringList = null; try { RoleAnimatorStringList = JObject.Parse(skeletonDataAsset.RoleAnimatorString) .ToObject <List <KeyValue <string, string> > >(); } catch (Exception e) { Console.WriteLine(e); } if (RoleAnimatorStringList == null) { RoleAnimatorStringList = new List <KeyValue <string, string> >(); } RoleAnimatorStringList.RemoveAll(pair => pair.Key == animatorController.name); RoleAnimatorStringList.Add(new KeyValue <string, string>(animatorController.name, Tools.Obj2Json(animatorCreator.RoleAnimator))); skeletonDataAsset.RoleAnimatorString = Tools.Obj2Json(RoleAnimatorStringList); animatorCreator.Create(); CreateAnimatorByConfig(animatorCreator.GetConfig()); } catch (InvalidOperationException elements) { Debug.Log(elements); } } 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(consumableDataFile); if (MyGUI.Button("读取")) { loadConsumableData(); } if (MyGUI.Button("保存")) { saveConsumableData(); } EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField(prefabPath); if (MyGUI.Button("制作预制体")) { saveConsumableData(); } 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 = consumableDataList.Count - 1; i >= 0; i--) { var item = consumableDataList[i]; EditorGUILayout.BeginHorizontal(); if (MyGUI.Button("删除", GUILayout.Width(50))) { consumableDataList.RemoveAt(i); } if (MyGUI.Button(item.id)) { currConsumableData = item; } if (MyGUI.Button("复制", GUILayout.Width(50))) { var consumableData = Tools.Json2Obj <ConsumableData>(Tools.Obj2Json(item, true)); consumableDataList.Add(consumableData); } EditorGUILayout.EndHorizontal(); } if (MyGUI.Button("+")) { consumableDataList.Add(new ConsumableData()); } 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 (currConsumableData != null) { MyGUI.ItemDataField(currConsumableData); } EditorGUILayout.EndScrollView(); EditorGUILayout.EndVertical(); EditorGUILayout.EndHorizontal(); EditorGUILayout.EndVertical(); }
public 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); MyGUI.Layout(position, boxStyle, new int[, ] { { 0, 1, 1 }, { 2, 1, 1 }, { 2, 1, 1 }, //{ 1, 1, 1 }, }, (Rect pos) => { EditorGUILayout.BeginVertical(); EditorGUILayout.LabelField(TagTirggerListPath); EditorGUILayout.BeginHorizontal(); if (MyGUI.Button("保存")) { savetagTirgger(); } if (MyGUI.Button("读取")) { LoadtagTirgger(); } if (MyGUI.Button("增加Tag")) { if (tagname != "" && tagname != null) { AddTag(tagname); } tagname = ""; } if (MyGUI.Button("删除Tag")) { if (tagname != "" && tagname != null) { RemoveTag(tagname); } tagname = ""; } EditorGUILayout.EndHorizontal(); tagname = MyGUI.TextFieldWithTitle("tagName:", tagname); EditorGUILayout.EndVertical(); }, (Rect pos) => { //EditorGUILayout.BeginHorizontal(); //if (MyGUI.Button("保存")) //{ //} //if (MyGUI.Button("读取")) //{ //} //EditorGUILayout.EndHorizontal(); DoGUI("hhh", ref windowbool, ref scrollPos, getValue, setValue, pos.width, pos.height, pos.x, pos.y); }, (Rect pos) => { taglistdogui(ref taglistbool, "dsa", pos.width - 10, pos.height - 10); }, (Rect pos) => { //DoGUI("hhh", ref windowbool, ref scrollPos, getValue, setValue, pos.width, pos.height,pos.x,pos.y); } ); //EditorGUILayout.BeginHorizontal(); //taglistdogui(ref taglistbool, "dsa"); //DoGUI("hhh", ref windowbool, ref scrollPos, getValue, setValue, width, height); //EditorGUILayout.EndHorizontal(); }
private void OnGUI() { roleUpgradeDataAsset = (RoleUpgradeDataAsset)EditorGUILayout.ObjectField("roleUpgradeDataAsset", roleUpgradeDataAsset, typeof(DropItemsDataAsset)); excelPath = MyGUI.TextFieldWithTitle("表格路径", excelPath); // text = GUILayout.TextArea(text, new GUIStyle(){}); if (MyGUI.Button("载入表格")) { roleUpgradeDataAsset.Clear(); EditorTools.AnalyzeExcel(excelPath, (List <KeyValuePair <string, object> > pairs) => { DropItemsDataAsset.DropItem dropItem = new DropItemsDataAsset.DropItem(); int lv = -1; int exp = -1; foreach (var pair in pairs) { switch (pair.Key) { case "lv": lv = Convert.ToInt32(pair.Value); break; case "exp": exp = Convert.ToInt32(pair.Value); break; } } Debug.Assert(lv >= 1 && exp >= 0); roleUpgradeDataAsset.AddItem(lv, exp); }); EditorUtility.SetDirty(roleUpgradeDataAsset); AssetDatabase.SaveAssets(); AssetDatabase.Refresh(); } if (MyGUI.Button("测试")) { outputText = ""; outputText += "通过经验获取等级:\n"; for (int exp = 0; exp <= RoleUpgradeDataAsset.Instance.GetLevelMaxExp() * 2; exp++) { int level = RoleUpgradeDataAsset.Instance.GetLevel(exp); outputText += "exp: " + exp + " -> level: " + level + "\n"; } for (int i = 0; i < 10; i++) { outputText += "\n"; } outputText += "通过等级获取经验:\n"; for (int level = 1; level <= RoleUpgradeDataAsset.Instance.GetLevelMax(); level++) { int exp = RoleUpgradeDataAsset.Instance.GetExp(level); outputText += "level: " + level + " -> exp: " + exp + "\n"; } } outputTextScrollViewPos = EditorGUILayout.BeginScrollView(outputTextScrollViewPos, GUILayout.ExpandWidth(true)); outputText = EditorGUILayout.TextArea(outputText); EditorGUILayout.EndScrollView(); }
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(); }
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> { { "读取", loadWeapon }, { "保存", saveWeapon }, { "制作当前预制体", CreatCurrentPrefab } }); EditorGUILayout.BeginVertical(boxStyle, GUILayout.Width(width), GUILayout.Height(height)); MyGUIExtend.Instance.Foldout("WeaponEditor", "路径信息", (() => { EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField(weaponDataFile); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); excelPath = MyGUI.TextFieldWithTitle("表格路径", excelPath); if (MyGUI.Button("载入表格")) { EditorTools.AnalyzeExcelToDic(excelPath, dic => { EquipType equipType = (EquipType)Convert.ToInt32(dic["EquipType"]); bool newWeaponData = true; switch (equipType) { case EquipType.Lswd: break; case EquipType.Shield: break; case EquipType.Swd: break; case EquipType.Sswd: break; case EquipType.Saxe: break; case EquipType.Blunt: break; case EquipType.Katana: break; case EquipType.Bow: break; case EquipType.Spear: break; default: newWeaponData = false; break; } if (newWeaponData) { WeaponData NewWeaponData = new WeaponData(); foreach (var item in dic) { switch (item.Key) { case "id": NewWeaponData.id = Convert.ToString(item.Value); break; case "IconName": NewWeaponData.icon = Convert.ToString(item.Value); break; case "name": NewWeaponData.name = Convert.ToString(item.Value); break; case "Lv": NewWeaponData.level = Convert.ToInt32(item.Value); break; case "desc": NewWeaponData.desc = Convert.ToString(item.Value); break; case "Hp": NewWeaponData.attrData.hpMax = Convert.ToSingle(item.Value); break; case "defence": NewWeaponData.attrData.def = Convert.ToSingle(item.Value); break; case "ATK": NewWeaponData.attrData.atk = Convert.ToSingle(item.Value); break; case "speed": NewWeaponData.attrData.atkSpeedScale = Convert.ToSingle(item.Value); break; case "Critical": NewWeaponData.attrData.criticalRate = Convert.ToSingle(item.Value); break; case "CriticalDamage": NewWeaponData.attrData.criticalDamage = Convert.ToSingle(item.Value); break; case "move": NewWeaponData.attrData.moveSpeedScale = Convert.ToSingle(item.Value); break; case "EquipType": NewWeaponData.equipType = equipType; break; } } int index = weaponDataList.FindIndex((data) => data.id == NewWeaponData.id); if (index >= 0) { string icon = weaponDataList[index].icon; weaponDataList.RemoveAt(index); NewWeaponData.icon = icon; } weaponDataList.Add(NewWeaponData); } }); } EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField(prefabPath); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); skeletonDataAsset = (Spine.Unity.SkeletonDataAsset)AssetDatabase.LoadAssetAtPath(skeletonDataAssetPath, typeof(Spine.Unity.SkeletonDataAsset)); skeletonDataAsset = (Spine.Unity.SkeletonDataAsset)EditorGUILayout.ObjectField(new GUIContent("SkeletonDataAsstet"), skeletonDataAsset, typeof(Spine.Unity.SkeletonDataAsset), true); skeletonDataAssetPath = AssetDatabase.GetAssetPath(skeletonDataAsset); 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 = weaponDataList.Count - 1; i >= 0; i--) { var item = weaponDataList[i]; EditorGUILayout.BeginHorizontal(); int Index = MyGUIExtend.Instance.ListSingleButton("WeaponEditor", item.id, i, (() => { currWeaponData = item; })); MyGUIExtend.Instance.Mouse_RightDrop(new Dictionary <string, Action> { { "复制", (() => { var weaponData = Tools.Json2Obj <WeaponData>(Tools.Obj2Json(weaponDataList[Index], true)); weaponDataList.Add(weaponData); }) }, { "删除", (() => { weaponDataList.RemoveAt(Index); }) } }); EditorGUILayout.EndHorizontal(); } if (MyGUI.Button("+")) { weaponDataList.Add(new WeaponData()); } 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 (currWeaponData != null) { MyGUI.ItemDataField(currWeaponData, skeletonDataAssetPath); } GUILayout.Space(10); EditorGUILayout.EndScrollView(); EditorGUILayout.EndVertical(); EditorGUILayout.EndHorizontal(); EditorGUILayout.EndVertical(); }
private void OnGUI() { dropItemsDataAsset = (DropItemsDataAsset)EditorGUILayout.ObjectField("dropItemsDataAsset", dropItemsDataAsset, typeof(DropItemsDataAsset)); excelPath = MyGUI.TextFieldWithTitle("表格路径", excelPath); // text = GUILayout.TextArea(text, new GUIStyle(){}); if (MyGUI.Button("载入表格")) { dropItemsDataAsset.DropItemList.Clear(); EditorTools.AnalyzeExcel(excelPath, (List <KeyValuePair <string, object> > pairs) => { DropItemsDataAsset.DropItem dropItem = new DropItemsDataAsset.DropItem(); foreach (var pair in pairs) { switch (pair.Key) { case "id": dropItem.Id = Convert.ToString(pair.Value); break; case "MonsterID": dropItem.RoleId = Convert.ToString(pair.Value); break; case "Name": dropItem.RoleName = Convert.ToString(pair.Value); break; case "Lv": string[] lvs = Convert.ToString(pair.Value).Split(';'); dropItem.LvFrom = Convert.ToInt32(lvs[0]); dropItem.LvTo = Convert.ToInt32(lvs[1]); break; case "DropOne": dropItem.DropOne = Convert.ToInt32(pair.Value); break; case "DropTwo": dropItem.DropTwo = Convert.ToInt32(pair.Value); break; case "DropThree": dropItem.DropThree = Convert.ToInt32(pair.Value); break; case "DropSoul": dropItem.DropSoul = Convert.ToInt32(pair.Value); break; } } dropItemsDataAsset.DropItemList.Add(dropItem); }); EditorUtility.SetDirty(dropItemsDataAsset); AssetDatabase.SaveAssets(); AssetDatabase.Refresh(); } if (MyGUI.Button("测试")) { text = ""; int instanceLevelMin = 1; int instanceLevelMax = 99; var roleIds = DropItemsDataAsset.Instance.GetAllRoleId(); foreach (var roleId in roleIds) { for (int instanceLevel = instanceLevelMin; instanceLevel <= instanceLevelMax; instanceLevel++) { List <string> dropItemIdList = DropItemsDataAsset.Instance.GetDropItemIdList(instanceLevel, roleId); int soulCount = DropItemsDataAsset.Instance.GetDropSoulCount(instanceLevel, roleId); text += "id: " + roleId + ", " + "instanceLevel: " + instanceLevel + ", dropItems: "; EditorUtility.DisplayProgressBar("测试", "id: " + roleId + ", " + "instanceLevel: " + instanceLevel + ", dropItems: ", (float)instanceLevel / instanceLevelMax); if (dropItemIdList != null) { for (int i = 0; i < dropItemIdList.Count; i++) { var dropItemId = dropItemIdList[i]; if (i == dropItemIdList.Count - 1) { text += dropItemId; text += "\n"; } else { text += dropItemId; text += ", "; } } } // 掉落魂数目 add by TangJian 2019/3/13 12:55 if (soulCount > 0) { text += ", Soulx" + soulCount; } text += "\n"; } } EditorUtility.ClearProgressBar(); } if (MyGUI.Button("测试1")) { // List<string> itemList = ItemManager.Instance.GetItemIdListDescendingOrder(0, 1, 0); // foreach (var itemId in itemList) // { // text += itemId; // text += "\n"; // } List <string> itemList = DropItemsDataAsset.Instance.GetDropItemIdList(9, "Human"); foreach (var itemId in itemList) { text += itemId; text += "\n"; } } textScrollViewPos = GUILayout.BeginScrollView(textScrollViewPos); text = EditorGUILayout.TextArea(text); GUILayout.EndScrollView(); }
public override void OnInspectorGUI() // 画 GUI { ProDraw(); if (Target.activeConfiguration) { GUILayout.Label("游戏使用该配置".AddYellow()); } else { EditorGUILayout.BeginHorizontal(); GUILayout.Label("游戏不是使用这个配置"); GUILayout.FlexibleSpace(); if (GUILayout.Button("使用该配置")) { SMSceneConfigurationUtil.EnsureActiveConfiguration(Target, true); SyncBuildSettingsIfRequired(); } EditorGUILayout.EndHorizontal(); } int workWidth = Screen.width / 3 - 34; WorkflowActionEnum targetWork = Target.actionAfterGroup; bool isLevel = targetWork == WorkflowActionEnum.LoadNextLevel; MyGUI.Heng(() => { MyGUI.Text("组结束,加载:"); MyGUI.Button(isLevel?"[下一关卡]".AddGreen(): "下一关卡".AddLightGreen(), workWidth, () => { if (!isLevel) { ChangeToWorkflowAction(WorkflowActionEnum.LoadNextLevel); } }); MyGUI.AddSpace(2); MyGUI.Button(isLevel ? "标记场景".AddLightGreen() : "[标记场景]".AddGreen(), workWidth, () => { if (isLevel) { ChangeToWorkflowAction(WorkflowActionEnum.LoadScreen); } }); MyGUI.AddSpace(); GUI.enabled = sceneListData.Selection.Count == 1; MyGUI.Button("打开", workWidth - 25, () => { OpenScene(sceneListData); }); GUI.enabled = true; }); MyCreate.Box(() => { sceneListHeight = CUResizableContainer.BeginVertical(sceneListHeight); sceneListData = CUListControl.SelectionList(sceneListData, scenes, sceneRenderer); CUResizableContainer.EndVertical(); bool isChooseScene = !sceneListData.Empty; GUI.enabled = isChooseScene; // 判断有没有点击场景 int width = Screen.width / 3 - 10; MyGUI.Heng(() => { MyGUI.Button(isChooseScene ? "关卡".AddGreen() : "关卡", width, ChangeToLevel); MyGUI.Button(isChooseScene ? "场景".AddOrange() : "关卡", width, ChangeToScreen); MyGUI.Button("Ignore", width, ChangeToIgnore); }); GUI.enabled = !sceneListData.Empty && IsScreen(scenes[sceneListData.First]);// 判断点击的场景是否标记 Screen MyCreate.Heng(() => { MyGUI.Button("开始场景", width, ChangeToFirstScreen); MyGUI.Button("关卡完成后场景", width, ChangeToFirstScreenAfterLevel); GUI.enabled = GUI.enabled && Target.actionAfterGroup == WorkflowActionEnum.LoadScreen;// 是否选择了标记场景 MyGUI.Button("完成组后场景", width, ChangeToFirstScreenAfterGroup); }); }); MyGUI.AddSpace(4); GUI.enabled = true; MyCreate.Box(() => { levelListHeight = CUResizableContainer.BeginVertical(levelListHeight); EditorGUILayout.BeginHorizontal(); groupListWidth = CUResizableContainer.BeginHorizontal(groupListWidth); int lastGroup = groupListData.First; groupListData = CUListControl.SelectionList(groupListData, Target.groups, groupRenderer, "组"); if (lastGroup != groupListData.First) { levelListData.ClearSelection(); } CUResizableContainer.EndHorizontal(); GUI.enabled = SelectedGroup != null; levelListData = CUListControl.SelectionList(levelListData, currentGroupLevels, levelRenderer, "关卡"); GUI.enabled = true; EditorGUILayout.EndHorizontal(); CUResizableContainer.EndVertical(); MyGUI.Heng(() => { MyGUI.Button("+", AddGroup); GUI.enabled = !groupListData.Empty && Target.groups.Length > 1; MyGUI.Button("-", RemoveGroup); GUI.enabled = !groupListData.Empty; MyGUI.Button("改名", RenameGroup); GUI.enabled = true; MyGUI.AddSpace(); GUI.enabled = !levelListData.Empty; MyGUI.Button("First", MoveToFirst); MyGUI.Button("↑", MoveUp); MyGUI.Button("↓", MoveDown); MyGUI.Button("Last", MoveToLast); GUI.enabled = true; }); }); }
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> { { "读取", LoadData }, { "保存", SaveData }, { "制作预制体", CreatePrefabs } }); EditorGUILayout.BeginVertical(boxStyle, GUILayout.Width(width), GUILayout.Height(height)); MyGUIExtend.Instance.Foldout("DcorationEditor", "路径信息", (() => { EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField(decorationDataFile); excelPath = MyGUI.TextFieldWithTitle("表格路径", excelPath); if (MyGUI.Button("载入Excel")) { EditorTools.AnalyzeExcelToDic(excelPath, dic => { EquipType equipType = (EquipType)Convert.ToInt32(dic["EquipType"]); switch (equipType) { case EquipType.Decoration: case EquipType.Glove: case EquipType.Shoe: case EquipType.Ring: DecorationData newDecorationData = new DecorationData(); foreach (var item in dic) { switch (item.Key) { case "id": newDecorationData.id = Convert.ToString(item.Value); break; case "IconName": newDecorationData.icon = Convert.ToString(item.Value); break; case "name": newDecorationData.name = Convert.ToString(item.Value); break; case "Lv": newDecorationData.level = Convert.ToInt32(item.Value); break; case "desc": newDecorationData.desc = Convert.ToString(item.Value); break; case "Hp": newDecorationData.attrData.hpMax = Convert.ToSingle(item.Value); break; case "defence": newDecorationData.attrData.def = Convert.ToSingle(item.Value); break; case "ATK": newDecorationData.attrData.atk = Convert.ToSingle(item.Value); break; case "speed": newDecorationData.attrData.atkSpeedScale = Convert.ToSingle(item.Value); break; case "Critical": newDecorationData.attrData.criticalRate = Convert.ToSingle(item.Value); break; case "CriticalDamage": newDecorationData.attrData.criticalDamage = Convert.ToSingle(item.Value); break; case "move": newDecorationData.attrData.moveSpeedScale = Convert.ToSingle(item.Value); break; case "EquipType": newDecorationData.equipType = equipType; break; } } int index = decorationDataList.FindIndex((data) => { return(data.id == newDecorationData.id); }); if (index >= 0) { decorationDataList.RemoveAt(index); } decorationDataList.Add(newDecorationData); break; } }); } EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField(prefabPath); 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 = decorationDataList.Count - 1; i >= 0; i--) { var item = decorationDataList[i]; EditorGUILayout.BeginHorizontal(); int Index = MyGUIExtend.Instance.ListSingleButton("DocrationEditor", item.id, i, (() => { currDecorationData = item; })); MyGUIExtend.Instance.Mouse_RightDrop(new Dictionary <string, Action> { { "删除", (() => { decorationDataList.RemoveAt(Index); }) }, { "复制", () => { var decorationData = Tools.Json2Obj <DecorationData>(Tools.Obj2Json(decorationDataList[Index], true)); decorationDataList.Add(decorationData); } } }); EditorGUILayout.EndHorizontal(); } if (MyGUI.Button("+")) { decorationDataList.Add(new DecorationData()); } 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 (currDecorationData != null) { MyGUI.ItemDataField(currDecorationData); } 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> { { "读取", 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(); }
public override void OnInspectorGUI() { if (sceneComponentGroup == null) { return; } if (MyGUI.Button("更新场景组件到最新的预制体")) { List <SceneComponent> sceneComponentList = sceneComponentGroup.gameObject.GetComponentList <SceneComponent>(); EditorCoroutineSequenceRunner.AddCoroutine(sceneComponentList.Editor_UpdateToPrefab(), 9999); } if (MyGUI.Button("更新组件排序")) { List <SceneComponent> sceneComponentList = sceneComponentGroup.gameObject.GetComponentList <SceneComponent>(); EditorCoroutineSequenceRunner.AddCoroutine(sceneComponentList.Editor_UpdateRendererShader(), 9999); EditorCoroutineSequenceRunner.AddCoroutine(sceneComponentList.Editor_UpdateSortRenderer(), 9999); } if (GUILayout.Button("给所有渲染节点添加阴影")) { List <Renderer> renderers = sceneComponentGroup.gameObject.GetComponentList <Renderer>(); foreach (var renderer in renderers) { Light.ShadowRenderer shadowRenderer = renderer.gameObject.AddComponentUnique <Light.ShadowRenderer>(); //if (renderer.sharedMaterial.mainTexture != null) //{ // string texturePath = AssetDatabase.GetAssetPath(renderer.sharedMaterial.mainTexture); // string normalPath = texturePath.Insert(texturePath.LastIndexOf('.'), "_normal"); // Debug.Log("texturePath =" + texturePath); // Debug.Log("normalPath =" + normalPath); // Texture2D normalTexture = AssetDatabase.LoadAssetAtPath<Texture2D>(normalPath); // if (normalTexture != null) // { // shadowRenderer.ShadowTexture = normalTexture; // } //} } } if (GUILayout.Button("保存所有场景预制体")) { List <SceneController> sceneControllers = sceneComponentGroup.gameObject.GetComponentList <SceneController>(); EditorCoroutineSequenceRunner.AddCoroutine(sceneControllers.Editor_ApplySceneController(), 9999); } if (GUILayout.Button("更新组件到最新->保存场景")) { List <SceneController> sceneControllers = sceneComponentGroup.gameObject.GetComponentList <SceneController>(); foreach (var sceneController in sceneControllers) { List <SceneComponent> sceneComponentList = sceneController.gameObject.GetComponentList <SceneComponent>(); EditorCoroutineSequenceRunner.AddCoroutine(sceneComponentList.Editor_UpdateToPrefab(), 9999); } EditorCoroutineSequenceRunner.AddCoroutine(sceneControllers.Editor_InitSceneObjectControllers(), 9999); EditorCoroutineSequenceRunner.AddCoroutine(sceneControllers.Editor_ApplySceneController(), 9999); } if (MyGUI.Button("设置场景地形组件的SortRenderer")) { List <SceneComponent> sceneComponentList = sceneComponentGroup.gameObject.GetComponentList <SceneComponent>(); sceneComponentList.Editor_UpdateSideWallRendererSort(); //Editor_UpdatePlacementsRendererSort } }
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(); }
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(); }
public override void OnInspectorGUI() // 画 GUI { ProDraw(); if (Target.activeConfiguration) { GUILayout.Label("游戏使用该配置".AddYellow()); } else { EditorGUILayout.BeginHorizontal(); GUILayout.Label("游戏不是使用这个配置"); GUILayout.FlexibleSpace(); if (GUILayout.Button("使用该配置")) { SMSceneConfigurationUtil.EnsureActiveConfiguration(Target, true); SyncBuildSettingsIfRequired(); } EditorGUILayout.EndHorizontal(); } MyCreate.Box(() => { sceneListHeight = CUResizableContainer.BeginVertical(sceneListHeight); sceneListData = CUListControl.SelectionList(sceneListData, scenes, sceneRenderer); CUResizableContainer.EndVertical(); bool isChooseScene = !sceneListData.Empty; GUI.enabled = isChooseScene; // 判断有没有点击场景 int width = Screen.width / 3 - 10; MyGUI.Heng(() => { MyGUI.Button(isChooseScene ? "关卡".AddGreen() : "关卡", width, ChangeToLevel); MyGUI.Button(isChooseScene ? "场景".AddOrange() : "关卡", width, ChangeToScreen); MyGUI.Button("Ignore", width, ChangeToIgnore); }); GUI.enabled = !sceneListData.Empty && IsScreen(scenes[sceneListData.First]);// 判断点击的场景是否标记 Screen MyGUI.Heng(() => { MyGUI.Button("开始场景", width, ChangeToFirstScreen); MyGUI.Button("关卡完成后场景", width, ChangeToFirstScreenAfterLevel); GUI.enabled = sceneListData.Selection.Count == 1; MyGUI.Button("打开", width, () => { OpenScene(sceneListData); }); }); }); MyGUI.AddSpace(4); GUI.enabled = true; MyCreate.Box(() => { levelListHeight = CUResizableContainer.BeginVertical(levelListHeight); levelListData = CUListControl.SelectionList(levelListData, Target.levels, levelRenderer, "关卡"); CUResizableContainer.EndVertical(); GUI.enabled = !levelListData.Empty; MyGUI.Heng(() => { MyGUI.AddSpace(); MyGUI.Button("First", MoveToFirst); MyGUI.Button("↑", MoveUp); MyGUI.Button("↓", MoveDown); MyGUI.Button("Last", MoveToLast); }); GUI.enabled = true; }); }
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(); }
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(); }
//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)); } } }); }