void SetActiveKeyFrame(KeyframeBase keyFrame) { if (keyFrame.avatar != null) { KeyframeAvatar keyframeAvatar = keyFrame.avatar; int avatarID = keyFrame.avatar.avatarID; string action = keyFrame.avatar.action; string expression = keyFrame.avatar.expression; string chat = keyFrame.avatar.chat; Vector3 moveTo = keyFrame.moveTo; Vector3 pos = keyFrame.pos; print("___avatar id: " + keyFrame.avatar.avatarID + " timer " + timer + " moveTO:" + moveTo); if (chat != null && chat.Length > 0) { uiTimeline.GetComponent <UIChatManager>().OnCharacterSay(avatarID, chat); } else if (moveTo != Vector3.zero) { charactersManager.MoveCharacter(avatarID, moveTo); } else { charactersManager.PositionateCharacter(avatarID, pos); charactersManager.ChangeExpression(avatarID, expression); charactersManager.CharacterAction(avatarID, action); } } }
public float GetLastRecordedKeyFrame(int avatarID) { float keyframeTime = 0; foreach (KeyframeBase keyFrame in GetActiveScenesTimeline().keyframes) { if (keyFrame.avatar != null) { KeyframeAvatar keyframeAvatar = keyFrame.avatar; if (keyframeAvatar.avatarID == avatarID) { keyframeTime = keyFrame.time; } } } return(keyframeTime); }
KeyframeBase GetNewKeyframeAvatar(Character character) { //RemoveLaterKeyFramesFor (character.id); KeyframeBase keyframe = new KeyframeBase(); keyframe.time = GetRoundedTimer(uiTimeline.timer); KeyframeAvatar keyframeAvatar = new KeyframeAvatar(); keyframeAvatar.avatarID = character.data.id; keyframeAvatar.action = character.actions.action.ToString(); keyframeAvatar.expression = character.customizer.value; keyframe.avatar = keyframeAvatar; keyframe.pos = character.transform.position; return(keyframe); }
void RemoveLaterKeyFramesFor(int avatarID) { List <KeyframeBase> keyframesToDelete = new List <KeyframeBase>(); foreach (KeyframeBase keyFrame in GetActiveScenesTimeline().keyframes) { if (keyFrame.avatar != null) { KeyframeAvatar keyframeAvatar = keyFrame.avatar; if (keyframeAvatar.avatarID == avatarID && keyFrame.time >= uiTimeline.timer) { keyframesToDelete.Add(keyFrame); } } } foreach (KeyframeBase k in keyframesToDelete) { GetActiveScenesTimeline().keyframes.Remove(k); } }