public void SwitchAllEx(params Bone[] bones) { foreach (var t in UIDOFEditor.I.avatar.data.asts) { if (ClipTool.IsLeftBone(t.dof.bone)) { var rightBone = ClipTool.GetPairBone(t.dof.bone); if (rightBone > 0) { var right = GetAstFromAvatar(rightBone); if (right != null) { var left = t.euler; t.euler = right.euler; right.euler = left; } } } else { if (ArrayInclude(bones, t.dof.bone) || ClipTool.IsRightBone(t.dof.bone)) { continue; } else//middle { t.euler.y = -t.euler.y; t.euler.z = -t.euler.z; } } } }
public bool Load(string clipName)//不存在文件则返回false { path = UIClipList.I.clipPath + clipName + ".clip"; if (System.IO.File.Exists(path)) { _clip = Serializer.XMLDeSerialize <Clip>(path); _clip.clipName = clipName; foreach (var curve in _clip.curves) { var trans = UIDOFEditor.I.avatar.transform.Search(curve.name); curve.ast = UIDOFEditor.I.avatar.GetTransDOF(trans); } ClipTool.GetPairs(_clip.curves); ClipTool.GetFrameRange(_clip); PlayerPrefs.SetString("LastOpenClipName", clipName); PlayerPrefs.Save(); if (onLoadClip != null) { onLoadClip(); } return(true); } else { Debug.Log("路径: " + path + " 不存在。"); return(false); } }
public bool Load() { path = UIClipList.I.clipPath + clipName + ".clip"; if (System.IO.File.Exists(path)) { _clip = Serializer.XMLDeSerialize <Clip>(path); _clip.clipName = clipName; foreach (var curve in _clip.curves) { //curve.trans = UIDOFEditor.I.avv atar.transform.Search(curve.name); var trans = UIDOFEditor.I.avatar.transform.Search(curve.name); curve.ast = UIDOFEditor.I.avatar.GetTransDOF(trans); } ClipTool.GetPairs(_clip.curves); ClipTool.GetFrameRange(_clip); //PlayerPrefs.SetString("LastOpenClipName", clipName); //PlayerPrefs.Save(); return(true); } else // 不存在clip文件则新建一个 { _clip = new Clip(clipName); foreach (var ast in UIDOFEditor.I.avatar.data.asts) { _clip.AddCurve(ast); } ClipTool.GetPairs(_clip.curves); ClipTool.GetFrameRange(_clip); //PlayerPrefs.SetString("LastOpenClipName", clipName); //PlayerPrefs.Save(); return(false); } }
public void InsertKey() { switch (insertType) { case InsertKeyType.EulPos: UIClip.I.clip.AddEulerPosAllCurve(frameIdx); break; case InsertKeyType.Eul: break; case InsertKeyType.Pos: break; default: throw null; } ClipTool.GetFrameRange(UIClip.I.clip); }
public void RemoveKeyAt(float time) { switch (insertType) { case InsertKeyType.EulPos: UIClip.I.clip.RemoveEulerPosAllCurve(time); break; case InsertKeyType.Eul: break; case InsertKeyType.Pos: break; default: throw null; } ClipTool.GetFrameRange(UIClip.I.clip); }
public void New(string clipName) { var c = new Clip(clipName); foreach (var ast in UIDOFEditor.I.avatar.data.asts) { c.AddCurve(ast); } ClipTool.GetPairs(c.curves); ClipTool.GetFrameRange(c); PlayerPrefs.SetString("LastOpenClipName", clipName); PlayerPrefs.Save(); path = UIClipList.I.clipPath + clipName + ".clip"; clip = Serializer.XMLSerialize(c, path); }
void ApplyTo60Fps() { var ratio = 60f / SYS.Fps; foreach (var curveObj in UIClip.I.clip.curves) { foreach (var curve in curveObj.curves) { foreach (var key in curve) { key.time = Mathf.RoundToInt(key.time * ratio); } } } ClipTool.GetFrameRange(UIClip.I.clip); UITimeLine.I.frameIdx_F *= ratio; inputfieldFps.text = "60"; }
public void FlipRight2Left() { foreach (var t in UIDOFEditor.I.avatar.data.asts) { if (!ClipTool.IsRightBone(t.dof.bone)) { continue; } var leftBone = ClipTool.GetPairBone(t.dof.bone); if (leftBone > 0) { var left = GetAstFromAvatar(leftBone); if (left != null) { left.euler = t.euler; } } } }
public void SwitchLeftAndRight() { foreach (var t in UIDOFEditor.I.avatar.data.asts) { if (!ClipTool.IsLeftBone(t.dof.bone)) { continue; } var rightBone = ClipTool.GetPairBone(t.dof.bone); if (rightBone > 0) { var right = GetAstFromAvatar(rightBone); if (right != null) { var left = t.euler; t.euler = right.euler; right.euler = left; } } } }