SC_shakeCamera.cs 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. using UnityEngine;
  2. using System.Collections;
  3. public class SC_shakeCamera : MonoBehaviour
  4. {
  5. private float shakeTime = 0.0f;
  6. private float fps = 60.0f;
  7. private float frameTime = 0.0f;
  8. private float shakeDelta = 0.002f;
  9. public Camera cam;
  10. public static bool isshakeCamera = false;
  11. public static float shakeINT = 2;
  12. // Use this for initialization
  13. void Start()
  14. {
  15. shakeTime = 0.1f;
  16. fps = 60.0f;
  17. frameTime = 0.01f;
  18. shakeDelta = 0.002f;
  19. //cam = GameObject.FindGameObjectWithTag ("MainCamera").GetComponent<Camera> ();
  20. cam = gameObject.GetComponent<Camera>();
  21. }
  22. private void OnEnable()
  23. {
  24. }
  25. private void OnDisable()
  26. {
  27. if (cam == null )
  28. {
  29. cam = gameObject.GetComponent<Camera>();
  30. }
  31. cam.rect = new Rect(0.0f, 0.0f, 1.0f, 1.0f);
  32. }
  33. // Update is called once per frame
  34. void Update()
  35. {
  36. if (isshakeCamera)
  37. {
  38. if (shakeTime > 0)
  39. {
  40. shakeTime -= Time.deltaTime;
  41. if (shakeTime <= 0)
  42. {
  43. cam.rect = new Rect(0.0f, 0.0f, 1.0f, 1.0f);
  44. isshakeCamera = false;
  45. shakeTime = 0.1f;
  46. fps = 60.0f;
  47. frameTime = 0.01f;
  48. shakeDelta = 0.002f;
  49. }
  50. else
  51. {
  52. frameTime += Time.deltaTime;
  53. if (frameTime > 2.0 / fps)
  54. {
  55. frameTime = 0;
  56. cam.rect = new Rect(shakeDelta * (-1.0f + shakeINT * Random.value), shakeDelta * (-1.0f + shakeINT * Random.value), 1.0f, 1.0f);
  57. }
  58. else
  59. {
  60. cam.rect = new Rect(0.0f, 0.0f, 1.0f, 1.0f);
  61. }
  62. }
  63. }
  64. }
  65. //else if (Input.GetMouseButtonDown(0))
  66. //{
  67. // shakeCamera();
  68. //}
  69. }
  70. public static void shakeCamera(float shakeInt)
  71. {
  72. shakeINT = shakeInt;
  73. isshakeCamera = true;
  74. }
  75. }