2021-06-17 現(xiàn)項目組框架理解用法

基本的UI 方面的流程? ??

UI Owner 是 UI邏輯腳本的基類?

創(chuàng)建 UI 界面的編寫 都是在是Start.LUA中進行注冊的??

每一個UI的腳本都繼承 —Class('? name ',UIowner)

local? c=self:Cholder()? 間接理解? ?可以相當于是UI的父??

可以通過? c.parent Name.childName? 獲取到對應(yīng)的UI?

UIOWner.lua 對應(yīng)的是全局的函數(shù)? 為? UIOWner

UI邏輯腳本的基類? ? 任何的 UI界面? ?可以通過他 顯示? 隱藏? ?各種 UI邏輯層方面的回調(diào) 函數(shù)

界面場景的加載??

UIOwner:PanelDrag() 子類重寫? ?UIOwner:onNew()? ? 第一次創(chuàng)建UI時的觸發(fā)? ? UIOwner:Cholder()? 獲取UI的根節(jié)點? ? UIOWner:GetIdx() 獲取UI所在UI配置中的數(shù)據(jù)

UIMAnager.LUA 對應(yīng)全局的UIManager? 負責(zé)UI邏輯層的鼠標操作? 鍵盤管理操作? ?各個UI界面的布局調(diào)整 刷新? 緩存 設(shè)置層級?

他可以實現(xiàn)對外接口? 可以在如何一個地方去調(diào)用??

UI.LUA? 對應(yīng)的Lua全局函數(shù)為 UI

負責(zé)各個UI邏輯腳本的快速創(chuàng)及獲取? 切換 顯示? 隱藏? 函數(shù)的反射 顯示狀態(tài)? ?獲取對象綁定的組件??

對外的一個接口? 可以在如何一個地方去調(diào)用他??

UI.FormatTime(...,...,...)設(shè)置時間? ? ??

UI.RecordOpenPanel (name)? ? ??有一個表用來記錄專門去存放? 已經(jīng)打開的UI面板? ? ?記錄打開的UI面板? UI面板的類型? ?

UI.ClearRecordOpenPanel(name)? 清理單個打開的UI面板? ? Name? 清理? ?UI面板的類名? ? ?

UI.CloseAllOpenPanel()? ? 一次性 關(guān)閉? 所有的已經(jīng)打開的面板? ? ?

Defiine .lua? 腳本中? ?有接收消息的方法? ? ? ?

?發(fā)送消息的方式: Warn { Msg=_T'無法購買' }

Table中 的? Function中? 降序? 升序? ?

_G.Item={}? ?中? ? ? ?Player 的金幣點券? 磚石? ? ?格子數(shù)? ?裝備數(shù)? ? ?CD中剩余時間??

_G.Redpoit? 紅點系統(tǒng)? ?基本上所有的方法都是通過 接口 來實現(xiàn)的


????au.esc_btn.button.onClick?=?function(?)????????UI.showActivityui(false)????end

? ? 框架中地顯示隱藏是采用的 Active 來進行顯示隱藏的? ? 例如? CS.xxxName xxx=false? ?CS.xxxNameXXX=true

? ? Zone.lua是對游戲場景的一個加載 獲取? 顯示




?在UI.lua中? 找UI面板的方式? ?通過__index? 中去找? 類型是否是string? 類型? 如果是string類型? ? 因為? ??UI.showDepotUI(true)? ?是這樣的方式??

所以在找的時候看是不是? Show類型的 如果 是? ?就? 從第? 5個開始找? ?判斷? ?后面的UI是不是你想要的UI? 然后對他進行顯示 和隱藏??

local?UIMeta={}

UIMeta.__index?=?function(tb,?k)

????local?v=rawget(tb,?k)

????if?v?then?return?v;?end

????if?type(k)=='string'?then

????????if?k:lead'show'?then

????????????local?name?=?string.sub(k,?5)

????????????if?isui(name)??then

????????????????--?if?name?==?'Dun_target'?or?name?==?'dun_target'?then

????????????????--??_wl(?'#################'?)

????????????????--??_wl(?debug.traceback(?)?)

????????????????--??_wl(?'#################'?)

????????????????--?end

????????????????return?function(b,?...)

????????????????????--_lj(?'showui<<<<<<<<<<<<<<<<',?b,?name?)

????????????????????if?CLOSEALL?then?return?end

????????????????????UIManager:GetInstance():Show(name,?b,?...)

????????????????end

????????????end

????????end

????end

end


Zone.GetZone().zoneinfo.zoneid? 獲取當前 場景的ID? ?

Const.lua中 有 _G.Colors={? }? 有 游戲中的原始方式的顏色? ? ? _g.ChatChannelColor={? ?}? ? 世界? 中門? ?區(qū)域? ?隊伍??


Define中 是所有的服務(wù)器接收的消息回調(diào)? ? 然后我們通過? ?列如? Item.lua中? 去接收數(shù)據(jù)的時候? ? ?

------------------------------------------------Event

when{?_order=0?}????--背包道具更

function?BagUpAll(Info)

????me.bag?=?Info?~=?EMPTY?and?Info?or?{?}

????local?ui?=?UI.getUI(?'BackpackUI'?)

????if?not?ui?then?return?end

????if?ui.handSort?then

????????ui.handSort?=?nil

????????Warn{?Msg?=?_T'背包整理成功'?}

????end

????ui:selectUpTab(?)

end

button.onClick?

Zonerole .lua? 中有對玩家數(shù)據(jù)的? ?配置? ? ?


advancedlist.lua中? 有對所有下拉列表的配置? ?

GetIndexByRenderer()--獲得某個格子當前顯示第多少條數(shù)據(jù)

GetRendererAt()--獲得第多少條數(shù)據(jù)對應(yīng)哪個格子

Set()--選中第幾個數(shù)據(jù)所在的格子,,需要在按鈕的click里去設(shè)置


--[=[total是滾動列表需要顯示的數(shù)據(jù)的總數(shù),callback是刷新每個格子的回調(diào)函數(shù),top是讓滾動列表瞬間滾動到第幾條數(shù)據(jù)對應(yīng)的格子,同ScrollToIndex,top為nil的時候滾動列表待在以前的狀態(tài)

callback需要符合如下格式:

function(r, index, cindex, selected)

? ? local config = Cfg.cfg_item[self.items[index]];

? ? local image = r.btn.image;

? ? image.sprite = config.icon;

? ? local choose = r.choose;

? ? choose.active=(selected);

end]=]--

function AdvancedList.setData( self, total, callback, top )


Advancedlist.lua 中有roots 是有ScrollRect組件的那個transForm 是

SetData中? 是個滾動裂變? ?需要顯示數(shù)據(jù)的總數(shù) Call back、



--[=[total是滾動列表需要顯示的數(shù)據(jù)的總數(shù),callback是刷新每個格子的回調(diào)函數(shù),top是讓滾動列表瞬間滾動到第幾條數(shù)據(jù)對應(yīng)的格子,同ScrollToIndex,top為nil的時候滾動列表待在以前的狀態(tài)

callback需要符合如下格式:

function(r,?index,?cindex,?selected)

????local?config?=?Cfg.cfg_item[self.items[index]];

????local?image?=?r.btn.image;

????image.sprite?=?config.icon;

????local?choose?=?r.choose;

????choose.active=(selected);

end]=]--


--每幀調(diào)用一次 及調(diào)用次數(shù) 較多


local?rect?=?ui.recttransform??

????local?flytime?=?0self

????local?func?=?function(e)

????????flytime?=?flytime?+?6*e

????????if?flytime?>=?1000?then

????????????rect.anchX?=?endX

????????????rect.anchY?=?endY

????????????if?self._timers[name]?then

????????????????Timer.stop(?name?)

????????????????self._timers[name]?=?nil

????????????????self._flytb[name]?=?nil

????????????????if?callback?then?callback()?end

????????????end

????????else

????????????local?temp?=?1500*flytime?-?flytime*flytime/2

????????????rect.anchX?=?stax?+?temp*ax

????????????rect.anchY?=?stay?+?temp*ay

????????end

????end

????self:StartTimer(name,1,func)--調(diào)用次數(shù)較多時,即每幀調(diào)用


CreateRoleUI??

GUIComponent.cs? UI面板拖拽移動??


倒計時的? 的方式? ???

??if?isstart?then

????????c.go_btn.button.interactable?=?false

????????c.go_btn.btn_name.text.text?=?_T"即將開始"

????????self:ctrlTimer('activityshow',function()

????????????local?leftTime?=?timing*1000?-?os.now(0)

????????????local?mst?=?mstr{_T"活動開啟倒計時:<<<t>>>",?t?=?toTimingFormat2(leftTime)}

????????????c.hd_time.countdown.text.text?=?mst

????????????if?leftTime?<?0?then?--?倒計時結(jié)束

????????????????self:Show(false)

????????????????--?self:HideWithEffect()

????????????????local?ui?=?UI.getUI('MainUI')

????????????????if?ui?then

????????????????????ui:activityOnShow()

????????????????end

????????????????return?true

????????????end

????????end)




---客戶端的實現(xiàn)方法? 時間對應(yīng)


function?CollectUI:OnIdle(?e?)

????if?self.begintime?then

????????local?dt?=?_now(?)?-?self.begintime

????????local?t?=?Cfg.cfg_mine[self.id].casttime

????????if?dt?<?t?then

????????????self.collectui.innercircle.image.fillAmount?=?dt/t

????????else

????????????self.begintime?=?nil

????????????self.collectui.innercircle.image.fillAmount?=?0

????????end

????end

end


function?Cutdown:OnIdle(?e?)

????self.time?=?e?+?self.time

????if?self.time?>?UpdateTime?then

????????self.time?=?0

????????self:Init()

????end

end


table.sort( self.parts, table.asc( 'equiplvupnum' ) ) -- asc 按指定列升序

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
禁止轉(zhuǎn)載,如需轉(zhuǎn)載請通過簡信或評論聯(lián)系作者。

相關(guān)閱讀更多精彩內(nèi)容

  • 這是一個場景的NPC搜素功能,由于后期NPC的數(shù)量可能會比較多,所以不能采用創(chuàng)建加載的方法來實現(xiàn)這個功能,想了想,...
    d546d748d718閱讀 527評論 0 0
  • 用到的組件 1、通過CocoaPods安裝 2、第三方類庫安裝 3、第三方服務(wù) 友盟社會化分享組件 友盟用戶反饋 ...
    SunnyLeong閱讀 15,212評論 1 180
  • 我是黑夜里大雨紛飛的人啊 1 “又到一年六月,有人笑有人哭,有人歡樂有人憂愁,有人驚喜有人失落,有的覺得收獲滿滿有...
    陌忘宇閱讀 8,900評論 28 54
  • 信任包括信任自己和信任他人 很多時候,很多事情,失敗、遺憾、錯過,源于不自信,不信任他人 覺得自己做不成,別人做不...
    吳氵晃閱讀 6,394評論 4 8
  • 步驟:發(fā)微博01-導(dǎo)航欄內(nèi)容 -> 發(fā)微博02-自定義TextView -> 發(fā)微博03-完善TextView和...
    dibadalu閱讀 3,430評論 1 3

友情鏈接更多精彩內(nèi)容