UISign2View.lua 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. local UISign2View = require("UISign/UISign2View_Generate")
  2. local ModelViewSystem = require("ModelViewSystem")
  3. local PreviewSystem = require("PreviewSystem")
  4. local _modelViewSystem;
  5. local previewSystem = nil;
  6. local _modelPath = Constants.ModelPath;
  7. local _modelName = nil;
  8. --[[
  9. local _acPath = "";
  10. local _acName = "";]]--
  11. function UISign2View:OnAwake(data)
  12. self.controller = require("UISign/UISign2Ctr"):new()
  13. self.controller:Init(self)
  14. self.controller:SetData(data)
  15. end
  16. function UISign2View:AddEventListener()
  17. end
  18. function UISign2View:FillContent(data, uiBase)
  19. self.uiBase = uiBase
  20. local gameObject = self.uiBase:GetRoot()
  21. if gameObject ~= nil then
  22. self.gameObject = gameObject
  23. self.transform = gameObject.transform
  24. end
  25. self:InitGenerate(self.transform, data)
  26. self:Init()
  27. end
  28. function UISign2View:Init()
  29. ManagerContainer.LuaUIMgr:CloseInputMask()
  30. if not _modelName then
  31. _modelName = GlobalConfig.Instance:GetConfigStrValue(160)
  32. end
  33. self:InitModel();
  34. end
  35. function UISign2View:RemoveEventListener()
  36. ManagerContainer.LuaEventMgr:Unregister(self.uiData.name)
  37. end
  38. function UISign2View:AddUIEventListener()
  39. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name)
  40. end
  41. function UISign2View:OnHide()
  42. end
  43. function UISign2View:OnShow(data)
  44. self.controller:SetData(data)
  45. end
  46. function UISign2View:OnClose()
  47. if previewSystem then
  48. previewSystem:Dispose()
  49. end
  50. previewSystem = nil
  51. if _modelViewSystem then
  52. _modelViewSystem:Dispose()
  53. end
  54. _modelViewSystem = nil
  55. if self._closeTimer then
  56. ManagerContainer.LuaTimerMgr:RemoveTimer(self._closeTimer);
  57. self._closeTimer = nil;
  58. end
  59. end
  60. function UISign2View:OnDispose()
  61. self.controller:OnDispose()
  62. end
  63. function UISign2View:InitModel()
  64. if not _modelViewSystem then
  65. _modelViewSystem = ModelViewSystem:new();
  66. end
  67. local _dialogueString = self.controller:GetDialogueString();
  68. local _nickName = ManagerContainer.DataMgr.UserData:GetUserNickname();
  69. local _string = I18N.SetLanguageValue(_dialogueString, _nickName);
  70. local _times = self.controller:GetDialogueTimes();
  71. if not previewSystem then
  72. previewSystem = PreviewSystem:new("Sign", 1024, 1024)
  73. local _posStr = GlobalConfig.Instance:GetConfigStrValue(162)
  74. local _pos = string.split(_posStr, ";")
  75. local _eulStr = GlobalConfig.Instance:GetConfigStrValue(163)
  76. local _eul = string.split(_eulStr, ";")
  77. local _posReal = Vector3.zero;
  78. local _eulReal = Quaternion.Euler(0, 0, 0);
  79. if #_pos == 3 then
  80. _posReal = Vector3(tonumber(_pos[1]), tonumber(_pos[2]), tonumber(_pos[3]));
  81. end
  82. if #_eul == 3 then
  83. _eulReal = Quaternion.Euler(tonumber(_eul[1]), tonumber(_eul[2]), tonumber(_eul[3]));
  84. end
  85. previewSystem:SetView(_posReal, _eulReal);
  86. end
  87. local _dialogueData = {
  88. _textStr = _string, --要说的话
  89. _showStartTime = _times[1], --显示的开始时间
  90. _showEndTime = _times[2], --显示的结束时间
  91. _dialogueParent = GlobalConfig.Instance:GetConfigStrValue(161), --冒泡对话的父级节点的路径
  92. }
  93. _modelViewSystem:RefreshView(_modelPath, _modelName, nil, nil, _dialogueData, nil, self, self.LoadModelCB);
  94. local _data = self.controller:GetData();
  95. if _data ~= true then
  96. self._closeTimer = ManagerContainer.LuaTimerMgr:AddTimer(_times[3], 1, self, self.OpenSignInFun, nil);
  97. end
  98. end
  99. function UISign2View:OpenSignInFun()
  100. --ManagerContainer.DataMgr.SignData:OpenSign(Enum.UIPageName.UIBattle);
  101. self:UIClose()
  102. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UISignDaily)
  103. end
  104. --load 模型
  105. function UISign2View:LoadModelCB(model)
  106. if model then
  107. if previewSystem then
  108. previewSystem:UpdateGo(model)
  109. end
  110. model:SetActive(true)
  111. end
  112. self.rawImage.rawImage.texture = previewSystem:GetRenderTexture()
  113. end
  114. return UISign2View