CameraShakeEvent.cs 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. using System;
  2. namespace Xft
  3. {
  4. public class CameraShakeEvent : XftEvent
  5. {
  6. public CameraShakeEvent(XftEventComponent owner) : base(XEventType.CameraShake, owner)
  7. {
  8. }
  9. public override void Initialize()
  10. {
  11. this.ToggleCameraShakeComponent(true);
  12. }
  13. public override void Reset()
  14. {
  15. base.Reset();
  16. }
  17. public override void OnBegin()
  18. {
  19. base.OnBegin();
  20. this.m_cameraShake.Reset(this.m_owner);
  21. if (this.m_owner.CameraShakeType == XCameraShakeType.Spring)
  22. {
  23. this.m_cameraShake.PositionSpring.AddForce(this.m_owner.PositionForce);
  24. this.m_cameraShake.RotationSpring.AddForce(this.m_owner.RotationForce);
  25. this.m_cameraShake.EarthQuakeToggled = this.m_owner.UseEarthQuake;
  26. }
  27. this.m_cameraShake.enabled = true;
  28. }
  29. protected void ToggleCameraShakeComponent(bool flag)
  30. {
  31. this.m_cameraShake = base.MyCamera.gameObject.GetComponent<XftCameraShakeComp>();
  32. if (this.m_cameraShake == null)
  33. {
  34. this.m_cameraShake = base.MyCamera.gameObject.AddComponent<XftCameraShakeComp>();
  35. }
  36. this.m_cameraShake.enabled = flag;
  37. }
  38. protected XftCameraShakeComp m_cameraShake;
  39. }
  40. }