public static void RestoreBone(Maid maid, int slotNo, GameObject obj, Transform bone) { BackUpBoneData orNullMaidBoneData = BackUpData.GetOrNullMaidBoneData(maid, slotNo, obj, bone); bool flag = orNullMaidBoneData == null; if (!flag) { bool changedPos = orNullMaidBoneData.changedPos; if (changedPos) { bone.localPosition = orNullMaidBoneData.position; } bool changedRot = orNullMaidBoneData.changedRot; if (changedRot) { bone.localRotation = orNullMaidBoneData.rotation; } bool changedScl = orNullMaidBoneData.changedScl; if (changedScl) { bone.localScale = orNullMaidBoneData.scale; } BackUpObjectData orNullMaidObjectData = BackUpData.GetOrNullMaidObjectData(maid, slotNo, obj); orNullMaidObjectData.boneDataDic.Remove(bone); } }
private void ResetTransform() { Transform bone = CommonUIData.bone; BackUpBoneData orNullMaidBoneData = BackUpData.GetOrNullMaidBoneData(CommonUIData.maid, CommonUIData.slotNo, CommonUIData.obj, bone); bool flag = orNullMaidBoneData == null; if (!flag) { bool changedPos = orNullMaidBoneData.changedPos; if (changedPos) { bone.localPosition = orNullMaidBoneData.position; } bool changedRot = orNullMaidBoneData.changedRot; if (changedRot) { bone.localRotation = orNullMaidBoneData.rotation; } bool changedScl = orNullMaidBoneData.changedScl; if (changedScl) { bone.localScale = orNullMaidBoneData.scale; } BackUpData.GetOrNullMaidObjectData(CommonUIData.maid, CommonUIData.slotNo, CommonUIData.obj).boneDataDic.Remove(bone); } }
public static void RestoreScale(Maid maid, int slotNo, GameObject obj, Transform bone) { BackUpBoneData orNullMaidBoneData = BackUpData.GetOrNullMaidBoneData(maid, slotNo, obj, bone); bool flag = orNullMaidBoneData == null; if (!flag) { bool changedScl = orNullMaidBoneData.changedScl; if (changedScl) { bone.localScale = orNullMaidBoneData.scale; bool flag2 = orNullMaidBoneData.changedPos || orNullMaidBoneData.changedRot; if (flag2) { orNullMaidBoneData.changedScl = false; } else { BackUpData.GetOrNullMaidObjectData(maid, slotNo, obj).boneDataDic.Remove(bone); } } } }
private void ResetScale() { Transform bone = CommonUIData.bone; BackUpBoneData orNullMaidBoneData = BackUpData.GetOrNullMaidBoneData(CommonUIData.maid, CommonUIData.slotNo, CommonUIData.obj, bone); bool flag = orNullMaidBoneData == null; if (!flag) { bool changedScl = orNullMaidBoneData.changedScl; if (changedScl) { bone.localScale = orNullMaidBoneData.scale; } bool flag2 = orNullMaidBoneData.changedPos || orNullMaidBoneData.changedRot; if (flag2) { orNullMaidBoneData.changedScl = false; } else { BackUpData.GetOrNullMaidObjectData(CommonUIData.maid, CommonUIData.slotNo, CommonUIData.obj).boneDataDic.Remove(bone); } } }
private void DrawTransform() { BackUpBoneData backUpBoneData = null; bool flag = CommonUIData.bone; if (flag) { backUpBoneData = BackUpData.GetOrNullMaidBoneData(CommonUIData.maid, CommonUIData.slotNo, CommonUIData.obj, CommonUIData.bone); } GUILayout.BeginHorizontal(new GUILayoutOption[0]); GUILayout.Label("位置", UIParams.Instance.lStyle, new GUILayoutOption[0]); GUILayout.FlexibleSpace(); bool flag2 = backUpBoneData == null || !backUpBoneData.changedPos; if (flag2) { GUI.enabled = false; } bool flag3 = GUILayout.Button("R", UIParams.Instance.bStyle, new GUILayoutOption[0]); if (flag3) { BackUpData.RestorePosition(CommonUIData.maid, CommonUIData.slotNo, CommonUIData.obj, CommonUIData.bone); BackUpData.Refresh(); } GUI.enabled = true; GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(new GUILayoutOption[0]); GUILayout.Label("回転", UIParams.Instance.lStyle, new GUILayoutOption[0]); GUILayout.FlexibleSpace(); bool flag4 = backUpBoneData == null || !backUpBoneData.changedRot; if (flag4) { GUI.enabled = false; } bool flag5 = GUILayout.Button("R", UIParams.Instance.bStyle, new GUILayoutOption[0]); if (flag5) { BackUpData.RestoreRotation(CommonUIData.maid, CommonUIData.slotNo, CommonUIData.obj, CommonUIData.bone); BackUpData.Refresh(); } GUI.enabled = true; GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(new GUILayoutOption[0]); GUILayout.Label("拡縮", UIParams.Instance.lStyle, new GUILayoutOption[0]); GUILayout.FlexibleSpace(); bool flag6 = backUpBoneData == null || !backUpBoneData.changedScl; if (flag6) { GUI.enabled = false; } bool flag7 = GUILayout.Button("R", UIParams.Instance.bStyle, new GUILayoutOption[0]); if (flag7) { BackUpData.RestoreScale(CommonUIData.maid, CommonUIData.slotNo, CommonUIData.obj, CommonUIData.bone); BackUpData.Refresh(); } GUI.enabled = true; GUILayout.EndHorizontal(); }
private static XElement GetMaidObjectData(Maid maid, int slotID) { SceneDataManager.trsHash = new HashSet <Transform>(); bool flag = false; bool flag2 = slotID == -1; GameObject gameObject; if (flag2) { TBodySkin tbodySkin = maid.body0.goSlot[0]; gameObject = maid.body0.m_Bones.gameObject; } else { TBodySkin tbodySkin = maid.body0.GetSlot(slotID); gameObject = tbodySkin.obj; } bool flag3 = !gameObject; XElement result; if (flag3) { result = null; } else { BackUpSlotData orNullMaidSlotData = BackUpData.GetOrNullMaidSlotData(maid, slotID); bool flag4 = orNullMaidSlotData == null; if (flag4) { result = null; } else { bool flag5 = !orNullMaidSlotData.objectDataDic.ContainsKey(gameObject); if (flag5) { result = null; } else { BackUpObjectData backUpObjectData = orNullMaidSlotData.objectDataDic[gameObject]; XElement xelement = new XElement("ObjectData"); bool changedYure = backUpObjectData.changedYure; if (changedYure) { XElement xelement2 = new XElement("Yure"); bool yureState = YureUtil.GetYureState(maid, slotID); xelement2.Add(yureState); xelement.Add(xelement2); bool flag6 = !yureState; if (flag6) { flag = true; } } bool flag7 = slotID == -1; Transform rootBone; Transform[] array; if (flag7) { SkinnedMeshRenderer componentInChildren = maid.body0.goSlot[0].obj.GetComponentInChildren <SkinnedMeshRenderer>(); rootBone = maid.body0.m_Bones.transform; array = (from bone in componentInChildren.bones where bone != null select CMT.SearchObjName(rootBone, bone.name, true) into bone where bone != null select bone).ToArray <Transform>(); } else { rootBone = maid.body0.goSlot[slotID].obj_tr; SkinnedMeshRenderer componentInChildren2 = rootBone.gameObject.GetComponentInChildren <SkinnedMeshRenderer>(); array = (from bone in componentInChildren2.bones where bone != null select bone).ToArray <Transform>(); } foreach (Transform transform in array) { Transform transform2 = transform; while (transform2 != rootBone) { bool flag8 = !transform2; if (flag8) { Debug.Log("ルートオブジェクト配下にありません:" + transform.name); return(null); } bool flag9 = SceneDataManager.trsHash.Contains(transform2); if (flag9) { break; } bool flag10 = flag || BackUpData.GetOrNullMaidBoneData(maid, slotID, gameObject, transform2) != null; if (flag10) { XElement xelement3 = new XElement("TransformData"); XElement xelement4 = new XElement("Name"); xelement4.Add(transform2.name); xelement3.Add(xelement4); xelement3.Add(SceneDataManager.GetVector3Data("Scale", transform2.localScale)); xelement3.Add(SceneDataManager.GetVector3Data("Position", transform2.localPosition)); xelement3.Add(SceneDataManager.GetVector3Data("Rotation", transform2.localEulerAngles)); xelement.Add(xelement3); } SceneDataManager.trsHash.Add(transform2); transform2 = transform2.parent; } } result = xelement; } } } return(result); }
public void Draw() { GUILayout.Label("ボーン編集", new GUILayoutOption[0]); UIUtil.BeginIndentArea(); bool flag = CommonUIData.bone; if (flag) { bool maidBoneDataExist = BackUpData.GetMaidBoneDataExist(CommonUIData.maid, CommonUIData.slotNo, CommonUIData.obj, CommonUIData.bone); if (maidBoneDataExist) { GUILayout.BeginHorizontal(new GUILayoutOption[0]); bool flag2 = GUILayout.Button("トランスフォームリセット", UIParams.Instance.bStyle, new GUILayoutOption[0]); if (flag2) { this.ResetTransform(); } GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); UIUtil.BeginIndentArea(); BackUpBoneData orNullMaidBoneData = BackUpData.GetOrNullMaidBoneData(CommonUIData.maid, CommonUIData.slotNo, CommonUIData.obj, CommonUIData.bone); bool flag3 = orNullMaidBoneData != null; if (flag3) { bool changedPos = orNullMaidBoneData.changedPos; if (changedPos) { GUILayout.BeginHorizontal(new GUILayoutOption[0]); bool flag4 = GUILayout.Button("位置リセット", UIParams.Instance.bStyle, new GUILayoutOption[0]); if (flag4) { this.ResetPosition(); } GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); } bool changedRot = orNullMaidBoneData.changedRot; if (changedRot) { GUILayout.BeginHorizontal(new GUILayoutOption[0]); bool flag5 = GUILayout.Button("回転リセット", UIParams.Instance.bStyle, new GUILayoutOption[0]); if (flag5) { this.ResetRotation(); } GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); } bool changedScl = orNullMaidBoneData.changedScl; if (changedScl) { GUILayout.BeginHorizontal(new GUILayoutOption[0]); bool flag6 = GUILayout.Button("拡縮リセット", UIParams.Instance.bStyle, new GUILayoutOption[0]); if (flag6) { this.ResetScale(); } GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); } } UIUtil.EndoIndentArea(); } } UIUtil.EndoIndentArea(); }