Пример #1
0
        // 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);
        }
Пример #2
0
        // 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++;
            }
        }