// File -> Retarget TimelineLayer public bool DecodeData(StreamReader sr) { try { //일단 TimelineLayer의 기본 속성을 로드한다. string strHeader = sr.ReadLine(); int nName = int.Parse(strHeader.Substring(0, 3)); if (nName > 0) { _displayName = strHeader.Substring(3, nName); } else { _displayName = "<None>"; } strHeader = strHeader.Substring(3 + nName); string[] strParse = strHeader.Split(new string[] { "/" }, StringSplitOptions.None); _unitID = int.Parse(strParse[0]); _timelineLayerUniqueID = int.Parse(strParse[1]); _linkModType = (apAnimTimelineLayer.LINK_MOD_TYPE) int.Parse(strParse[2]); _transformID = int.Parse(strParse[3]); _boneID = int.Parse(strParse[4]); _guiColor.r = float.Parse(strParse[5]); _guiColor.g = float.Parse(strParse[6]); _guiColor.b = float.Parse(strParse[7]); _guiColor.a = float.Parse(strParse[8]); _controlParamID = int.Parse(strParse[9]); _controlValueType = (apControlParam.TYPE) int.Parse(strParse[10]); _linkType = (apAnimClip.LINK_TYPE) int.Parse(strParse[11]); int nKeyframes = int.Parse(strParse[12]); _keyframeUnits.Clear(); for (int i = 0; i < nKeyframes; i++) { //Keyframe을 하나씩 파싱해서 넣어주자 apRetargetKeyframeUnit keyframe = new apRetargetKeyframeUnit(); keyframe.DecodeData(sr.ReadLine()); _keyframeUnits.Add(keyframe); } } catch (Exception ex) { Debug.LogError("Decode Data Exception : " + ex); return(false); } return(true); }
// Functions //------------------------------------------------------ // AnimTimelineLayer -> File public void SetTimelineLayer(int unitID, apAnimTimelineLayer timelineLayer) { _unitID = unitID; _displayName = timelineLayer.DisplayName; _timelineLayerUniqueID = timelineLayer._uniqueID; _linkedTimelineLayer = timelineLayer; _linkModType = timelineLayer._linkModType; _transformID = timelineLayer._transformID; _boneID = timelineLayer._boneID; _guiColor = timelineLayer._guiColor; _controlParamID = timelineLayer._controlParamID; _controlValueType = apControlParam.TYPE.Int; if (timelineLayer._linkType == apAnimClip.LINK_TYPE.ControlParam && timelineLayer._linkedControlParam != null) { _controlValueType = timelineLayer._linkedControlParam._valueType; } _linkType = timelineLayer._linkType; _keyframeUnits.Clear(); int curKeyframeUnitID = 0; for (int i = 0; i < timelineLayer._keyframes.Count; i++) { apRetargetKeyframeUnit newKeyUnit = new apRetargetKeyframeUnit(); newKeyUnit.SetAnimKeyframe(curKeyframeUnitID, timelineLayer._keyframes[i]); _keyframeUnits.Add(newKeyUnit); curKeyframeUnitID++; } }