CrossHair.cs 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using UnityEngine.UI;
  5. /* 准心对象 */
  6. public class CrossHair : MonoBehaviour
  7. {
  8. public static CrossHair ins;
  9. private Image image = null;
  10. private bool open = false;
  11. private bool visiable = false;
  12. void Awake()
  13. {
  14. ins = this;
  15. }
  16. void Start()
  17. {
  18. this.image = this.GetComponent<Image>();
  19. this.open = UserSettings.ins.openCrossHair;
  20. this.visiable = this.image.enabled;
  21. this.SetVisiable(false);
  22. }
  23. void Update()
  24. {
  25. if (open) SetVisiable(ArmBow.ins && ArmBow.ins.IsCanShoot());
  26. }
  27. void SetVisiable(bool value)
  28. {
  29. if (this.visiable == value) return;
  30. this.visiable = value;
  31. this.GetComponent<Image>().enabled = this.visiable;
  32. }
  33. public RaycastHit GetRaycastHit() {
  34. float maxDistance = 100;
  35. int layerMask = 1 << 8;
  36. RaycastHit hit;
  37. Ray ray = Camera.main.ScreenPointToRay(this.transform.position, Camera.MonoOrStereoscopicEye.Mono);
  38. bool raycastResult = Physics.Raycast(ray.origin, ray.direction, out hit, maxDistance, layerMask);
  39. // if (raycastResult) return hit.point;
  40. return hit;
  41. }
  42. }