gongyan 0e41269b2a 加载光照贴图Demo 2 سال پیش
..
Readme.md 0e41269b2a 加载光照贴图Demo 2 سال پیش
Readme.md.meta 0e41269b2a 加载光照贴图Demo 2 سال پیش

Readme.md

LuaScripts/CommonUtils 目录树

├─ LuaScripts/CommonUtils
│   ├─ DemoLuaScripts               -- 所有 Demo 脚本存放位置
│   │   ├─ DemoAll.lua                  -- 选择 Demo 展示界面
│   │   ├─ DemoMain.lua                 -- Demo 入口文件
│   │   ├─ DemoMenu.lua                 -- Demo 选择菜单
│   │   ├─ DemoPage.lua                 -- Demo 翻页
│   │   ├─ DemoPagePoster.lua           -- Demo 翻页轮播
│   │   ├─ DemoProgressor.lua           -- Demo 按钮进度条
│   │   ├─ DemoRemoteReturn.lua         -- Demo 返回键
│   │   ├─ DemoToast.lua                -- Demo 提示
│   │   ├─ DemoUINavigator.lua          -- Demo 设置EntryButton
│   ├─ Menu                         -- 选择菜单
│   │   ├─ Menu.lua                     -- 菜单 具体实现
│   ├─ Page                         -- 翻页
│   │   ├─ Page.lua                     -- 翻页 具体实现
│   │   ├─ PageModule.lua               -- 翻页 基础模块
│   │   ├─ PagePoster.lua               -- 翻页 轮播
│   ├─ Progressor                   -- 按钮进度条
│   │   ├─ Progressor.lua               -- 按钮进度条 具体实现
│   ├─ Toast                        -- 提示
│   │   ├─ Toast.lua                    -- 提示 具体实现
│   ├─ UINavigator                  -- UINavigator
│   │   ├─ UINavigator.lua              -- UINavigator 具体实现

ZEventDispatchCenter.lua 事件分发脚本

  • 需添加EventType

    -- COMMON EVENT
    -- COMMON EVENT
    COMMON_SET_ENTRY_BUTTON                     = "COMMON_SET_ENTRY_BUTTON",
    COMMON_SET_GESTUREINPUT                     = "COMMON_SET_GESTUREINPUT",
    COMMON_REMOTE_RETURN                        = "COMMON_REMOTE_RETURN",
    COMMON_SELECT_BUTTON                        = "COMMON_SELECT_BUTTON",
    COMMON_SELECT_SCROLL                        = "COMMON_SELECT_SCROLL",
    COMMON_MENU_CLICK_BUTTON                    = "COMMON_MENU_CLICK_BUTTON",
    COMMON_UI_NAVIGATOR_ANIM                    = "COMMON_UI_NAVIGATOR_ANIM",
    COMMON_UI_NAVIGATOR_SELECT_MENU             = "COMMON_UI_NAVIGATOR_SELECT_MENU",
    COMMON_UI_NAVIGATOR_SELECT                  = "COMMON_UI_NAVIGATOR_SELECT",
    COMMON_UI_PAGE_MODULE_EFFECT                = "COMMON_UI_PAGE_MODULE_EFFECT",
    COMMON_UI_PAGE_MODULE_CHANGE_SHADOW_IMG     = "COMMON_UI_PAGE_MODULE_CHANGE_SHADOW_IMG",
    COMMON_UI_PAGE_MODULE_CHANGE_EFFENT_TYPE    = "COMMON_UI_PAGE_MODULE_CHANGE_EFFENT_TYPE",
    COMMON_UI_PAGE_MODULE_REFRESH_UI            = "COMMON_UI_PAGE_MODULE_REFRESH_UI",
    COMMON_UI_PAGE_CHANGE                       = "COMMON_UI_PAGE_CHANGE",
    COMMON_UI_PAGE_PRE                          = "COMMON_UI_PAGE_PRE",
    COMMON_UI_PAGE_NEXT                         = "COMMON_UI_PAGE_NEXT",
    

UINavigator

  • 在入口文件 挂载 UINavigator 脚本

    require("Base/UIHelper.lua"):OpenUI("CommonUtils/UINavigator/UINavigator.lua")
    

    Demo入口文件 : BundleResource/LuaScripts/CommonUtils/DemoLuaScripts/DemoMain.lua

项目入口文件 : BundleResource/main.lua

  • 设置 EntryButton:

    local eventManager = require('Base/ZEventDispatchCenter.lua')
    eventManager:DispatchEvent(eventManager.EventType.COMMON_SET_ENTRY_BUTTON, gameObject)
    
  • 设置选中的Button 不传参数则设置为空

    local eventManager = require('Base/ZEventDispatchCenter.lua')
    eventManager:DispatchEvent(eventManager.EventType.COMMON_UI_NAVIGATOR_SELECT, gameObject/nil)
    
  • Demo 脚本 : BundleResource/LuaScripts/CommonUtils/DemoLuaScripts/DemoUINavigator.lua

Menu 菜单

  • 前期工作
  • Prefab 设置好 Menu 中显示的菜单数量 (单数)
  • Prefab 所有 Menu 中可选的Button 设置 Tag => CommonUtilsMenu

  • DataRelay.lua 缓存数据

    -- COMMON_UTILS MENU
    ["MENU_SHOW_ITEM_COUNT"]            = "MENU_SHOW_ITEM_COUNT",
    ["MENU_SCROLL"]                     = "MENU_SCROLL",
    
  • 初始化

    -- 挂载 Menu 脚本
    require("Base/UIHelper.lua"):AddScript(ZUIMenuPanel.gameObject, "CommonUtils/Menu/Menu.lua")
    
    -- if you need:
    require("CommonUtils/Menu/Menu.lua").SetShowItemData(5) -- 设置展示的Menu Item数量(单数) 默认为 3
    require("CommonUtils/Menu/Menu.lua").SetMenuScroll()    -- 设置鼠标滚轮控制切换选中菜单
    
  • Demo 脚本 : BundleResource/LuaScripts/CommonUtils/DemoLuaScripts/DemoMenu.lua

Page 翻页

  • EffectType 翻页类型

    LeftTop/LeftBottom/RightTop/RightBottom
    
  • DataRelay.lua 缓存数据

    -- COMMON_UTILS_PAGE
    ["PAGE_INFO"]                       = "PAGE_INFO",
    
  • 初始化

    local tPageInfo = {
        -- 图片列表
        ["tImgPath"]            = {
            "CommonUtils/Textures/Page/page0.png",
            "CommonUtils/Textures/Page/page1.png",
            "CommonUtils/Textures/Page/page2.png",
            "CommonUtils/Textures/Page/page3.png",
            "CommonUtils/Textures/Page/page4.png",
            "CommonUtils/Textures/Page/page5.png",
        },
        -- 图片 翻页展示的背景
        ["szImgBG"]             = "CommonUtils/Textures/Page/P0_Back.png",
        -- 翻页的阴影 RightToLeft
        ["szShadowLeft"]        = "CommonUtils/Textures/Page/shadow.png",
        -- 翻页的阴影 LeftToRight
        ["szShadowRight"]       = "CommonUtils/Textures/Page/shadowLTR.png",
        -- 翻页的阴影 宽度
        ["nShadowWidth"]        = 50,
        -- 翻页时长
        ["nEffectTime"]         = 0.5,
        -- 左翻动效 类型
        ["leftEffectType"]      = "LeftBottom",
        -- 右翻动效 类型
        ["rightEffectType"]     = "RightBottom"
    }
    
    SetCache("PAGE_INFO", tPageInfo)
    
    local pageObj       = DemoPage.rootPanel.transform:Find("Page").gameObject
    
    local uiHelper      = require('Base/UIHelper.lua')
    local szPagePath    = "CommonUtils/Page/Page.lua"
    uiHelper:AddScript(pageObj, szPagePath)
    
    require(szPagePath).Init()
    
  • 左右翻页

    local eventManager  = require('Base/ZEventDispatchCenter.lua')
    eventManager:DispatchEvent(eventManager.EventType.COMMON_UI_PAGE_PRE)       -- 左翻
    eventManager:DispatchEvent(eventManager.EventType.COMMON_UI_PAGE_NEXT)      -- 右翻
    
  • Demo 脚本 : BundleResource/LuaScripts/CommonUtils/DemoLuaScripts/DemoPage.lua

PagePoster 翻页轮播

  • Effect 翻页类型

    LeftTop/LeftBottom/RightTop/RightBottom
    
  • DataRelay.lua 缓存数据

    -- COMMON_UTILS_PAGE
    ["PAGE_INFO"]                       = "PAGE_INFO",
    ["PAGE_POSTER_TAG_INFO"]            = "PAGE_POSTER_TAG_INFO",
    
  • 初始化

    local tPageInfo = {
        ["tImgPath"]            = {
            "CommonUtils/Textures/Page/page0.png",
            "CommonUtils/Textures/Page/page1.png",
            "CommonUtils/Textures/Page/page2.png",
            "CommonUtils/Textures/Page/page3.png",
            "CommonUtils/Textures/Page/page4.png",
            "CommonUtils/Textures/Page/page5.png",
        },
        ["szImgBG"]             = "CommonUtils/Textures/Page/P0_Back.png",
        ["szShadowLeft"]        = "CommonUtils/Textures/Page/shadow.png",
        ["szShadowRight"]       = "CommonUtils/Textures/Page/shadowLTR.png",
        ["nShadowWidth"]        = 50,
        ["nEffectTime"]         = 0.5,
        ["leftEffectType"]      = "LeftBottom",
        ["rightEffectType"]     = "RightBottom"
    }
    
    local tPagePosterTagInfo = {
        -- 选中图片
        ['szTarget']         = "CommonUtils/Textures/PagePoster/light.png",
        -- 未选中图片
        ['szNoramal']        = "CommonUtils/Textures/PagePoster/normal.png",
    }
    
    SetCache("PAGE_INFO", tPageInfo)
    SetCache("PAGE_POSTER_TAG_INFO", tPagePosterTagInfo)
    
    local pageObj           = DemoPagePoster.rootPanel.transform:Find("Poster/Page").gameObject
    local tagObj            = DemoPagePoster.rootPanel.transform:Find("Poster/Tag").gameObject
    
    local uiHelper          = require('Base/UIHelper.lua')
    local szPagePath        = "CommonUtils/Page/Page.lua"
    local szPagePosterPath  = "CommonUtils/Page/PagePoster.lua"
    uiHelper:AddScript(pageObj, szPagePath)
    uiHelper:AddScript(tagObj, szPagePosterPath)
    
    require(szPagePath).Init()
    require(szPagePosterPath).Init()
    
  • 左右翻页

    local eventManager  = require('Base/ZEventDispatchCenter.lua')
    eventManager:DispatchEvent(eventManager.EventType.COMMON_UI_PAGE_PRE)       -- 左翻
    eventManager:DispatchEvent(eventManager.EventType.COMMON_UI_PAGE_NEXT)      -- 右翻
    
  • Demo 脚本 : BundleResource/LuaScripts/CommonUtils/DemoLuaScripts/DemoPagePoster.lua

Progressor 进度条

  • DataRelay.lua 缓存数据 根据自己需要设置

  • 初始化

    require("CommonUtils/Progressor/Progressor.lua").InitDataRelay("PROGRESSOR_DEMO_A")
    
  • 设置冷却时间

    --[[
        nPeriodTime: 冷却时间 单位s
        szKey: DataRelay.lua 中添加的 Key
    ]]
    require("CommonUtils/Progressor/Progressor.lua").SetCooldown(szKey, nPeriodTime)    
    
  • 进度条更新

    --[[
        nFillAmount: 当前进度
        szKey: DataRelay.lua 中添加的 Key
        bFill: 进度条填充条件
        ProgressorCallbackA: 填充完之后的回调函数
        FillProgressor(szKey, bFill, ProgressorCallbackA)
    ]]
    -- 初始化
    progressorA = require("CommonUtils/Progressor/Progressor.lua"):new()progressorA:SetCooldown(2)
    
    -- 使用处
    local imgCom      = DemoProgressor.rootPanel.transform:Find("Img_D"):GetComponent("Image")
    imgCom.fillAmount = progressorD:FillProgressor(bFill, ProgressorCallbackD)
    
  • Demo 脚本 : BundleResource/LuaScripts/CommonUtils/DemoLuaScripts/DemoProgressor.lua

RemoteReturn 返回按键监听

  • 事件监听与取消监听

    local function RegisterEvent()
        local eventManager = require('Base/ZEventDispatchCenter.lua')
    
        eventManager:RegisterEvent(eventManager.EventType.COMMON_REMOTE_RETURN, RemoteReturn)
    end
    
    local function UnregisterEvent()
        local eventManager = require('Base/ZEventDispatchCenter.lua')
    
        eventManager:UnregisterEvent(eventManager.EventType.COMMON_REMOTE_RETURN, RemoteReturn)
    end
    
  • Demo 脚本 : BundleResource/LuaScripts/CommonUtils/DemoLuaScripts/DemoRemoteReturn.lua

Toast 提示

  • 触发

    local szPath = "CommonUtils/Textures/Toast/prompt.png"      -- 提示图片地址
    require("CommonUtils/Toast/Toast.lua").ToastInfo(szPath)
    
  • Demo 脚本 : BundleResource/LuaScripts/CommonUtils/DemoLuaScripts/DemoToast.lua