public bool GetShake(out Vector3 pos, out Quaternion rot) { pos = Vector3.zero; rot = Quaternion.identity; bool nontrivialResult = false; for (int i = m_ShakeEventList.Count - 1; i >= 0; --i) { CinemachineScreenShakeEvent e = m_ShakeEventList[i]; if (e.Expired) { m_ShakeEventList.RemoveAt(i); } else { nontrivialResult = true; Vector3 pos0 = Vector3.zero; Quaternion rot0 = Quaternion.identity; e.GetSignal(out pos0, out rot0); pos += pos0; rot *= rot0; } } return(nontrivialResult); }
public void AddShakeEvent(CinemachineScreenShakeEvent e) { e.StartTime = CurrentTime; m_ShakeEventList.Add(e); }