SmartBowController.cs 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. using LightGlue.Unity.Custom;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using UnityEngine;
  5. using UnityEngine.UI;
  6. namespace DuckHunter
  7. {
  8. public class SmartBowController : MonoBehaviour
  9. {
  10. public static SmartBowController Instance;
  11. void Start() {
  12. Instance = this;
  13. SimulateMouseController.ins?.RemoveOpenLocker("NotGame");
  14. //InfraredDemo.running
  15. if (AimHandler.ins) {
  16. if (CommonConfig.UseRomaSdk)
  17. {
  18. LightGlueGameManager._ins.OnPositionUpdate += OnVec2PositionUpdate;
  19. return;
  20. }
  21. if (!AimHandler.ins.bRuning9Axis())
  22. {
  23. InfraredDemo.infraredCameraHelper.OnPositionUpdate += OnVec2PositionUpdate;
  24. }
  25. else CameraToLook.ins.onParseRotation += OnRotationUpdate;
  26. }
  27. }
  28. void OnDestroy() {
  29. if (Instance == this) Instance = null;
  30. //destroy
  31. if (AimHandler.ins)
  32. {
  33. if (CommonConfig.UseRomaSdk)
  34. {
  35. LightGlueGameManager._ins.OnPositionUpdate -= OnVec2PositionUpdate;
  36. return;
  37. }
  38. if (!AimHandler.ins.bRuning9Axis())
  39. {
  40. InfraredDemo.infraredCameraHelper.OnPositionUpdate -= OnVec2PositionUpdate;
  41. }
  42. else CameraToLook.ins.onParseRotation -= OnRotationUpdate;
  43. }
  44. }
  45. public void OnRotationUpdate(Quaternion rotation)
  46. {
  47. GameManager.Instance?.OnModuleRotationUpdate(rotation);
  48. }
  49. public void OnVec2PositionUpdate(Vector2 p, Vector2 cameraLocation) {
  50. if (CrossHair.Instance) CrossHair.Instance.transform.position = p;
  51. }
  52. float _lastShootTime = 0;
  53. public void OnShooting(float speed)
  54. {
  55. if (Time.time == 0) return;
  56. //野鸭间隔时间
  57. float interval = GlobalData.MyDeviceMode == DeviceMode.Gun?0.2f:1f;
  58. if (Time.realtimeSinceStartup - _lastShootTime < interval) return;
  59. _lastShootTime = Time.realtimeSinceStartup;
  60. GameManager.Instance?.OnModuleShooting(speed,true);
  61. }
  62. public void ResetAim() {
  63. // AimHandler.ins.DoIdentity();
  64. AutoResetView.DoIdentity();
  65. }
  66. }
  67. }