/// t-->[0,1] public static Vector3 GetHermitePoint_T(float t, YamlPositionData preData, YamlPositionData nexData, LerpType lerpType) { Vector3 position; if(lerpType==LerpType.LineLerp) { position = Vector3.Lerp(preData.value,nexData.value, t); } else { position = CalculateHermitePoint(t,nexData.time-preData.time,preData.value,nexData.value,preData.outSlope,nexData.inSlope); } return position; }
void ParsePositionDataToList(YamlSequenceNode node, string key) { List <YamlSQTData> list = new List <YamlSQTData>(); IList <YamlNode> nodeList = node.Children; foreach (YamlMappingNode valueNode in nodeList) { YamlPositionData postionData = new YamlPositionData(); postionData.time = float.Parse(EasyYaml.FindMapNodeByKey("time", valueNode).ToString()); postionData.value = GetVector3("value", valueNode); postionData.inSlope = GetVector3("inSlope", valueNode); postionData.outSlope = GetVector3("outSlope", valueNode); postionData.tangentMode = float.Parse(EasyYaml.FindMapNodeByKey("tangentMode", valueNode).ToString()); list.Add(postionData); } positionInfo.Add(key, list); }