CombatGestureController.cs 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. using System;
  2. using Fort23.Mono;
  3. using GameLogic.Combat.Hero;
  4. using UnityEngine;
  5. using Utility;
  6. namespace GameLogic.Combat.CombatTool
  7. {
  8. public class CombatGestureController : Singleton<CombatGestureController>
  9. {
  10. private HeroEntityMono heroEntityMono;
  11. private RaycastHit[] hit = new RaycastHit[10];
  12. public void Dispose()
  13. {
  14. }
  15. public void Update()
  16. {
  17. if (Input.GetMouseButtonDown(0))
  18. {
  19. Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
  20. // LayerMask layerMask = LayerMask.NameToLayer("hero");
  21. if (Physics.Raycast(ray.origin, ray.direction, out RaycastHit hit))
  22. {
  23. HeroEntityMono mono = hit.transform.gameObject.GetComponent<HeroEntityMono>();
  24. if (mono != null && !mono.combatHeroEntity.IsEnemy)
  25. {
  26. heroEntityMono= mono;
  27. heroEntityMono.combatHeroEntity.CombatAIBasic.ChangeState(CombatHeroStateType.PickUp);
  28. CombatHeroEntity[] combatHeroEntities = CombatController.currActiveCombat.CombatHeroController.GetHero(false);
  29. if (CombatController.currActiveCombat.CombatCameraControllder.FollowHeroId== heroEntityMono.combatHeroEntity.CurrCombatHeroInfo.modelID||combatHeroEntities!=null&&combatHeroEntities.Length == 1)
  30. {
  31. CombatController.currActiveCombat.CombatCameraControllder.isStop = true;
  32. }
  33. }
  34. }
  35. }
  36. if (Input.GetMouseButton(0))
  37. {
  38. if (heroEntityMono != null && heroEntityMono.combatHeroEntity != null)
  39. {
  40. // Vector2 pos = Input.mousePosition;
  41. Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
  42. int layerMask = LayerMask.NameToLayer("hongpei");
  43. int count = Physics.RaycastNonAlloc(ray.origin, ray.direction, hit);
  44. if (count > 0)
  45. {
  46. for (int i = 0; i < count; i++)
  47. {
  48. if (hit[i].transform.gameObject.layer == layerMask)
  49. {
  50. heroEntityMono.gameObject.transform.position =
  51. hit[i].point;
  52. }
  53. }
  54. }
  55. }
  56. }
  57. if (Input.GetMouseButtonUp(0))
  58. {
  59. if (heroEntityMono != null)
  60. {
  61. heroEntityMono.combatHeroEntity.CombatAIBasic.ChangeState(CombatHeroStateType.idle);
  62. }
  63. heroEntityMono = null;
  64. CombatController.currActiveCombat.CombatCameraControllder.isStop = false;
  65. }
  66. }
  67. }
  68. }