static public SkillUnit.SkillUnit CloneSkillUnit(SkillUnit.SkillUnit a) { SkillUnit.SkillUnit b = new SkillUnit.SkillUnit(); b.artId = a.artId; b.cd = a.cd; b.distance = a.distance; b.id = a.id; b.launchType = a.launchType; b.referId = a.referId; b.skillTime = a.skillTime; b.targetType = a.targetType; b.guidePolicy = new SkillUnit.SkillGuidePolicy(); b.guidePolicy.guideTime = a.guidePolicy.guideTime; b.guidePolicy.guidingTime = a.guidePolicy.guidingTime; b.guidePolicy.endTime = a.guidePolicy.endTime; b.guidePolicy.type = a.guidePolicy.type; return(b); }
private void DrawUnitList(float width) { //unit list GUILayout.BeginVertical("Box"); EditorGUILayout.LabelField("SkillUnit List"); List <SkillUnit.SkillUnit> skillinits = EditorDataContainer.allSkillUnits.units; unitScrollPos = EditorGUILayout.BeginScrollView(unitScrollPos); //列表 if (unitList == null) { // 加入数据数组 unitList = new ReorderableList(skillinits, typeof(SkillUnit.SkillUnit), false, false, true, true); } // 绘制Item显示列表 unitList.drawElementCallback = (Rect rect, int index, bool isActive, bool isFocused) => { SkillUnit.SkillUnit element = skillinits[index]; Rect drawRect = new Rect(rect.x, rect.y + 20, width - 30, 600); GUILayout.BeginArea(drawRect); GUILayout.Label("index: " + index); EditorDrawUtility.DrawSkillUnit(DataConvert.ConvertSkillUnit(element)); GUILayout.EndArea(); EditorGUILayout.Separator(); }; unitList.elementHeight = 600; // 绘制表头 unitList.drawHeaderCallback = (Rect rect) => { EditorGUI.LabelField(rect, "SkillUnitList"); }; // 选择回调 unitList.onSelectCallback = (ReorderableList l) => { SelectSkillUnit = l.index; }; unitList.DoLayoutList(); EditorGUILayout.EndScrollView(); GUILayout.EndVertical(); }
public static void ConvertSkillUnit(SkillUnit.SkillUnit oUnit, JSkillUnit unit) { oUnit.id = unit.id; oUnit.artId = unit.artId; oUnit.launchType = (SkillUnit.SkillUnit.LaunchType)(int) unit.launchType; oUnit.targetType = (SkillUnit.SkillUnit.TargetType)(int) unit.targetType; oUnit.skillTime = unit.skillTime; oUnit.cd = unit.cd; oUnit.distance = unit.distance; oUnit.referId = unit.referId; oUnit.guidePolicy = ConvertSkillGuidePolicy(unit.guidePolicy); if (oUnit.launchType == SkillUnit.SkillUnit.LaunchType.SINGLELINE) { if (unit.referId < EditorDataContainer.allSkillUnits.singeLines.Count && unit.referId >= 0) { SkillUnit.SkillLine line = EditorDataContainer.allSkillUnits.singeLines[unit.referId]; line = ConvertSkillLine((SkillLine)unit.skillObj); } } if (oUnit.launchType == SkillUnit.SkillUnit.LaunchType.MULLINE) { if (unit.referId < EditorDataContainer.allSkillUnits.multLines.Count && unit.referId >= 0) { SkillUnit.SkillMultiLine line = EditorDataContainer.allSkillUnits.multLines[unit.referId]; line = ConvertSkillMultiLine((SkillMultiLine)unit.skillObj); } } if (oUnit.launchType == SkillUnit.SkillUnit.LaunchType.AREA) { if (unit.referId < EditorDataContainer.allSkillUnits.areas.Count && unit.referId >= 0) { SkillUnit.SkillArea line = EditorDataContainer.allSkillUnits.areas[unit.referId]; line = ConvertSkillArea((SkillArea)unit.skillObj); } } if (oUnit.launchType == SkillUnit.SkillUnit.LaunchType.JUMP) { if (unit.referId < EditorDataContainer.allSkillUnits.jumps.Count && unit.referId >= 0) { SkillUnit.SkillJump line = EditorDataContainer.allSkillUnits.jumps[unit.referId]; line = ConvertSkillJump((SkillJump)unit.skillObj); } } if (oUnit.launchType == SkillUnit.SkillUnit.LaunchType.AREA_RANDSKILL) { if (unit.referId < EditorDataContainer.allSkillUnits.areaRands.Count && unit.referId >= 0) { SkillUnit.SkillAreaRand line = EditorDataContainer.allSkillUnits.areaRands[unit.referId]; line = ConvertSkillAreaRand((SkillAreaRand)unit.skillObj); } } if (oUnit.launchType == SkillUnit.SkillUnit.LaunchType.HELIX) { if (unit.referId < EditorDataContainer.allSkillUnits.helixes.Count && unit.referId >= 0) { SkillUnit.SkillHelix line = EditorDataContainer.allSkillUnits.helixes[unit.referId]; line = ConvertSkillHelix((SkillHelix)unit.skillObj); } } if (oUnit.launchType == SkillUnit.SkillUnit.LaunchType.FOLLOW) { if (unit.referId < EditorDataContainer.allSkillUnits.follows.Count && unit.referId >= 0) { SkillUnit.SkillFollow line = EditorDataContainer.allSkillUnits.follows[unit.referId]; line = ConvertSkillFollow((SkillFollow)unit.skillObj); } } if (oUnit.launchType == SkillUnit.SkillUnit.LaunchType.BACK_STAB) { if (unit.referId < EditorDataContainer.allSkillUnits.backStabs.Count && unit.referId >= 0) { SkillUnit.SkillBackStab line = EditorDataContainer.allSkillUnits.backStabs[unit.referId]; line = ConvertSkillBackStab((SkillBackStab)unit.skillObj); } } }