找回密码
 注册帐号

扫一扫,访问微社区

GUI unity lua中如何做倒计时?

4
回复
1014
查看
[ 复制链接 ]
3偶尔光临
258/300
排名
10112
昨日变化

16

主题

40

帖子

258

积分

Rank: 3Rank: 3Rank: 3

UID
295003
好友
0
蛮牛币
217
威望
0
注册时间
2018-8-28
在线时间
94 小时
最后登录
2019-4-8
2018-9-26 16:01:18 显示全部楼层 阅读模式
5蛮牛币
本帖最后由 Deliver_Nk8a0 于 2018-9-26 16:16 编辑

比如倒计时5秒的显示该怎么做?
我尝试用dotween.sequence来做,用了5个insertcallback,每个callback改变相应的文本,但是一旦中途按了退出按钮然后马上又进入倒计时的话,之前的callback仍然在执行,然后尝试在按钮事件中执行了sequence的Kill函数,但是没有执行,就发现好像只有在sequence定义的函数里执行kill才有用,可是lua的变量不都是全局变量吗?

sequence的定义:
self.sequence = DG.Tweening.DOTween.Sequence()

然后在另外一个函数中调用kill:
self.sequence:Kill()

看字面的话,是因为sequence的类型其实是一个函数吗?所以没办法用这种调用方式?那要如何调用kill来及时删除callback?
回复

使用道具 举报

7日久生情
2062/5000
排名
1627
昨日变化

19

主题

470

帖子

2062

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
218268
好友
5
蛮牛币
2394
威望
0
注册时间
2017-4-18
在线时间
763 小时
最后登录
2019-4-18

活力之星

2018-9-26 16:01:19 显示全部楼层
再说Unity使用lua,不管 slua、tolua、xlua都有封装后的协程,直接用
回复

使用道具 举报

6蛮牛粉丝
1394/1500
排名
1939
昨日变化

7

主题

57

帖子

1394

积分

Rank: 6Rank: 6Rank: 6

UID
244931
好友
0
蛮牛币
2264
威望
0
注册时间
2017-9-20
在线时间
636 小时
最后登录
2019-6-15
2018-9-28 18:06:54 显示全部楼层
或许你可以看下lua教程里关于变量的作用域部分
然后你设置一个变量中止正在运行的计时

参照xlua简单的计时器可以这么写一个
local time = CS.UnityEngine.Time
local onClick

local m_curTime = 0
local m_endTime = 5

function func()
while( onClick and m_curTime < m_endTime) do
     m_curTime = m_curTime + time.deltaTime
end
if m_curTime >= m_endTime then
body
end
end

虽然看着很low就是了
回复

使用道具 举报

6蛮牛粉丝
1039/1500
排名
3170
昨日变化

22

主题

226

帖子

1039

积分

Rank: 6Rank: 6Rank: 6

UID
231610
好友
3
蛮牛币
1206
威望
0
注册时间
2017-7-11
在线时间
377 小时
最后登录
2019-5-25
2018-9-29 09:38:24 显示全部楼层
用协程啊
回复

使用道具 举报

7日久生情
2062/5000
排名
1627
昨日变化

19

主题

470

帖子

2062

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
218268
好友
5
蛮牛币
2394
威望
0
注册时间
2017-4-18
在线时间
763 小时
最后登录
2019-4-18

活力之星

2018-10-8 08:34:45 显示全部楼层
lua语言有其本身的协程,计时器首先想到用协程就行
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则