unity和lua开发游戏常备技能

…衆ロ難τιáo~ 提交于 2019-12-04 00:01:33

推荐阅读:

一。使用制作滑动列表:使用UILayout做虚拟列表

在这里插入图片描述

ui.list = base:findcom("center/ScrollView/Viewport/Content", "UILayout")
ui.list.onCreate = base.createrender
ui.list.onUpdate = base.updaterender
ui.list.ItemRenderer = Asset:LoadAsset(asseturi.getassetpath(base.module, "manualItem"))

--创建item
function base.createrender(go)
    local render = {}
    render.lv = utils.findtext(go, "lv")--等级名字
    taskitems[go] = render
end
刷新item
function base.updaterender(go, index)
    local render = taskitems[go]
    local currLv=lv
    if lv>index then
        --已达到等级
        render.lv="已达成"
    else
        render.lv="未达成"
    end
end

需要注意的是:如果滑动过程中,列表中数据出现混乱,可以考虑是列表的item大小的问题。由于大小item差异,导致UILayout脚本里计算出现问题。

二。使用Slider制作进度条

使用Slider做进度条时,如果不想支持触摸滑动,应将Slider组建下的Interactable取消勾选

三。使用InputField制作输入框

如果只希望输入整数,则修改InputField的ContentType为IntergetNumber
在这里插入图片描述

ui.manualLv = utils.findinput(go, "InputField")
--实时监听文本框输入内容,控制其范围
utils.addchangeevent(ui.manualLv, base.inputlimit)
function base.inputlimit(_input, _id, _str)
    local maxnumber = #ui.proto - commonmodel.activeDatas.manual_syn.level
    local temp = tonumber(_str)
    if temp then
        if temp >= maxnumber then
            ui.manualLv = maxnumber
        elseif temp <= 0 then
            ui.manualLv = 1
        else
            ui.manualLv = temp
        end
    end
end

四。使用使用DOTween制作动画

(1)InsertCallback在给定的时间位置上放置一个回调函数。

local seq = DOTween.Sequence()
seq:InsertCallback(1, function()
    labelpopup.show("提示")
end)

代码功能:延迟一秒显示一个文本提示
(2)DOScale放大缩小效果

obj.transform.localScale = Vector3.New(0.2,0.2,0.2)
--SetEase()设置动画曲线
obj.transform:DOScale(Vector3.New(1,1,1), 0.18):SetEase(Ease.OutBack)

(3)Sequence:相当于一个Tweener的链表,可以通过执行一个Sequence来执行一串Tweener,使用Sequence类可以方便的组织

local seq = DOTween.Sequence()
--Append:在Sequence的最后添加一个tween。
seq:Append(strans:DOLocalMove(pos, 0.3, false):SetEase(Ease.OutExpo))
seq:Append(strans:DOLocalMove(target1, 0.3, false):SetEase(Ease.InBack)) 
seq:Append(strans:DOLocalMove(pos, 0.2, false)) 
--AppendInterval:在Sequence的最后添加一段时间间隔。
seq:AppendInterval(0.05)

seq:Append(mtrans:DOLocalMove(target2, 0.3, false):SetEase(Ease.InBack)) 
seq:Append(mtrans:DOLocalMove(mpos, 0.2, false))  
seq:AppendInterval(0.05)

seq:Append(strans:DOLocalMove(target1, 0.3, false):SetEase(Ease.InBack))
seq:Append(strans:DOLocalMove(pos, 0.2, false))
seq:AppendInterval(0.1)
seq:Append(strans:DOLocalMove(spos, 0.3, false):SetEase(Ease.OutExpo))
seq:Play()

seq:InsertCallback(0.3, function()

end)

seq:InsertCallback(0.6, function()

end)

seq:OnComplete(function()

end)
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!