void Update() { if (!isFreeze) { return; } if (!m_TimelineManager.m_MoveTimeline.Locked) { if (Input.GetButtonDown("Horizontal")) { // Start recording horizontal movement m_StartActionTime = Time.time; float direction = GetMoveDirection(); float currentTime = Time.time; float duration = currentTime - m_StartActionTime; Action action = new MoveAction(m_StartActionTime - m_PlayTime, duration, direction, 1); m_TimelineManager.RecordAction(action); Move(direction); } if (Input.GetButton("Horizontal")) { float direction = GetMoveDirection(); float currentTime = Time.time; float duration = currentTime - m_StartActionTime; m_TimelineManager.m_MoveTimeline.UpdateDurationLastAction(duration); m_TimelineManager.m_MoveTimeline.UpdateDirectionLastAction(direction); Move(direction); } if (Input.GetButtonUp("Horizontal")) { float direction = GetMoveDirection(); float currentTime = Time.time; float duration = currentTime - m_StartActionTime; m_TimelineManager.m_MoveTimeline.UpdateDurationLastAction(duration); Debug.Log("Add new action at " + m_StartActionTime + ". Move timeline: " + m_TimelineManager.m_MoveTimeline.Length()); } } // Jump if (Input.GetButtonDown("Jump") && !m_TimelineManager.m_JumpTimeline.Locked) { float time = Time.time - m_PlayTime; Action action = new JumpAction(time); if (Jump()) { m_TimelineManager.RecordAction(action); } Debug.Log("Jump timeline: " + m_TimelineManager.m_JumpTimeline.Length()); } // Shoot if (Input.GetButtonDown("Fire1") && m_BulletRemaining > 0 && !m_TimelineManager.m_ShootTimeline.Locked) { float time = Time.time - m_PlayTime; Action action = new ShootAction(time); Fire(); m_TimelineManager.RecordAction(action); Debug.Log("Shoot timeline: " + m_TimelineManager.m_ShootTimeline.Length()); } }