SkillPolicyFinder.cs 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. using UnityEngine;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. namespace YLBattle
  5. {
  6. /// <summary>
  7. ///
  8. /// </summary>
  9. public class SkillPolicyFinder
  10. {
  11. /// <summary>
  12. /// 单键实例
  13. /// </summary>
  14. private static SkillPolicyFinder _Instance = null;
  15. /// <summary>
  16. /// 瞄准策略
  17. /// </summary>
  18. private Dictionary<ESkillAIM, SkillAIMFoundation> mAIMPolicy = new Dictionary<ESkillAIM, SkillAIMFoundation>();
  19. /// <summary>
  20. /// 单键实例
  21. /// </summary>
  22. /// <returns>单键</returns>
  23. public static SkillPolicyFinder Instance()
  24. {
  25. if (null == _Instance)
  26. {
  27. _Instance = new SkillPolicyFinder();
  28. }
  29. return _Instance;
  30. }
  31. /// <summary>
  32. /// 构造函数
  33. /// </summary>
  34. protected SkillPolicyFinder()
  35. {
  36. this.mAIMPolicy.Clear();
  37. this.InitializeAIMPolicy();
  38. }
  39. /// <summary>
  40. /// 查询AIM
  41. /// </summary>
  42. /// <param name="type">查询类型</param>
  43. /// <returns>AIM瞄准策略</returns>
  44. public SkillAIMFoundation AIMFoundation(ESkillAIM type)
  45. {
  46. if (this.mAIMPolicy.ContainsKey(type))
  47. {
  48. return (SkillAIMFoundation)this.mAIMPolicy[type].Clone();
  49. }
  50. return null;
  51. }
  52. /// <summary>
  53. ///
  54. /// </summary>
  55. private void InitializeAIMPolicy()
  56. {
  57. this.mAIMPolicy.Add(ESkillAIM.Map, new SkillAIMMap());
  58. this.mAIMPolicy.Add(ESkillAIM.Screen, new SkillAIMScreen());
  59. this.mAIMPolicy.Add(ESkillAIM.Center, new SkillAIMCenter());
  60. }
  61. }
  62. }