源战役客户端
Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

101 linhas
2.4 KiB

  1. SettingPerformItem = SettingPerformItem or BaseClass(BaseItem)
  2. -- 性能设置项
  3. function SettingPerformItem:__init(parent)
  4. self.base_file = "setting"
  5. self.layout_file = "SettingPerformItem"
  6. self.item_list = {}
  7. self.model = GameSettingModel:GetInstance()
  8. self.curr_select_index = 1
  9. self.val2index = {}
  10. self:Load()
  11. end
  12. function SettingPerformItem:Load_callback()
  13. self:LoadSuccess()
  14. --self:InitEvent()
  15. end
  16. function SettingPerformItem:LoadSuccess()
  17. self.item_con = self:GetChild("btn_con")
  18. self.title = self:GetChild("title"):GetComponent("TextMeshProUGUI")
  19. if self.need_refreshData then
  20. self:SetData(self.info,self.call_back)
  21. end
  22. if self.need_select then
  23. self:SelectBtnByVal(self.select_val)
  24. end
  25. end
  26. function SettingPerformItem:SetData(info,call_back)
  27. self.info = info
  28. self.call_back = call_back
  29. for i,v in ipairs(info.val_list) do
  30. self.val2index[v] = i
  31. end
  32. if self.is_loaded then
  33. local call_fun = function (index)
  34. self:SelectBtn(index)
  35. self.call_back(self.info.setting_str,self.info.val_list[index])
  36. end
  37. self.title.text = info.title or ""
  38. print(info.title)
  39. local item = nil
  40. for i,v in ipairs(info.name_list) do
  41. item = self.item_list[i]
  42. if item == nil then
  43. item = SettingBtnItem.New(self.item_con)
  44. self.item_list[i] = item
  45. end
  46. self.item_list[i]:SetData(v,i,call_fun)
  47. if i==1 then
  48. item:SetAnchoredPosition(56,26)
  49. elseif i==2 then
  50. item:SetAnchoredPosition(196,26)
  51. elseif i==3 then
  52. item:SetAnchoredPosition(370,26)
  53. end
  54. end
  55. self.need_refreshData = true
  56. else
  57. self.need_refreshData = true
  58. end
  59. end
  60. function SettingPerformItem:SelectBtn( index,force )
  61. if index == self.curr_select_index and not force then return end
  62. if self.item_list[self.curr_select_index] then
  63. self.item_list[self.curr_select_index]:SetSelect(false)
  64. end
  65. self.curr_select_index = index
  66. if self.item_list[self.curr_select_index] then
  67. self.item_list[self.curr_select_index]:SetSelect(true)
  68. end
  69. end
  70. function SettingPerformItem:SelectBtnByVal(val)
  71. self.select_val = val
  72. if self.is_loaded then
  73. if val == nil or self.val2index[val] == nil then
  74. val = GameSettingManager.PerformanceList[1].val_list[2]
  75. self.select_val = val
  76. end
  77. self:SelectBtn(self.val2index[val],true)
  78. self.need_select = false
  79. else
  80. self.need_select = true
  81. end
  82. end
  83. function SettingPerformItem:__delete( )
  84. for i,v in ipairs(self.item_list) do
  85. v:DeleteMe()
  86. v = nil
  87. end
  88. end