SceneEventCtl.cs 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. using UnityEngine;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. public static class SceneEventCtl
  5. {
  6. public static Ray ray;
  7. public static RaycastHit hit;
  8. public static float updateTimeDown, updateTimeUp;
  9. public static Vector3 originPos = Vector3.zero;
  10. private static Vector3 s_downMousePos = Vector3.zero;
  11. private static bool s_mouseDown = false;
  12. public static bool s_enableSceneEvent = false;
  13. public static bool s_dragged = false;
  14. public static float timeDown, timeUp;
  15. public static bool GetRaycastHit(Camera cam, int layerMask,ref RaycastHit hit_, bool ifPlay = true)
  16. {
  17. if (Input.GetMouseButtonDown(0))
  18. timeDown = Time.time;
  19. if (Input.GetMouseButtonUp(0))
  20. {
  21. timeUp = Time.time;
  22. if (timeUp - timeDown > 0.2)
  23. {
  24. return false;
  25. }
  26. Ray ray = cam.ScreenPointToRay(Input.mousePosition);
  27. RaycastHit hit;
  28. if (Physics.Raycast(ray, out hit, 100, layerMask, QueryTriggerInteraction.Collide))
  29. {
  30. hit_ = hit;
  31. return true;
  32. }
  33. }
  34. return false;
  35. }
  36. public static bool UpdateRaycastHit(Camera cam, int layerMask)
  37. {
  38. if (Input.GetMouseButtonDown(0))
  39. {
  40. s_mouseDown = true;
  41. s_dragged = false;
  42. updateTimeDown = Time.time;
  43. s_downMousePos = Input.mousePosition;
  44. }
  45. if (s_mouseDown && !s_dragged && Vector3.Distance(Input.mousePosition, s_downMousePos) >= 5.0f)
  46. {
  47. s_dragged = true;
  48. }
  49. if (Input.GetMouseButtonUp(0) && !s_dragged)
  50. {
  51. s_mouseDown = false;
  52. ray = cam.ScreenPointToRay(Input.mousePosition);
  53. if (Physics.Raycast(ray, out hit, 100, layerMask,QueryTriggerInteraction.Collide))
  54. {
  55. return true;
  56. }
  57. }
  58. return false;
  59. }
  60. }