Github - Unity3d-Timers

https://github.com/pointcache/Unity3d-Timers

Unity3d-Timers

Timer class with various behaviors

About: Have a system allowing to easily create and extend complex timer behaviors.

Usage:

//Start simple repeater
Timer.Repeater(5f, () => Debug.Log("Repeater test"));
//Start countdown and call Draw in 2.5 seconds
Timer.Countdown(2.5f, Draw);

Concept: A manager class pools and constructs new timers, timer store up to 4 handlers, and arbitrarely raise events in concrete implementation.

private class CountdownBehavior : TimerBehaviorBase, ITimerBehavior
{
    float exitTime;
    public void Initialize()
    {
        exitTime = f1;
    }

    public void Update(float deltaTime)
    {
        TimePassed += deltaTime;
        TotalTimeActive += deltaTime;

        if (TimePassed > exitTime)
        {
            Completed = true;
            c1();
        }
    }
}

Countdown inherits TimerBehaviorBase and implements ITimerBehavior. On top of that only concrete behavior in implemented that uses data and callbacks provided in constructor:

public static Timer Countdown(float exitTime, Action callback)
{
    Timer timer = TimerManager.getTimer();
    timer.SetBehavior<CountdownBehavior>();
    timer.behaviorBase
        .SetFloats(exitTime, 0, 0, 0)
        .SetCallbacks(callback, null, null, null);
    timer.behavior.Initialize();
    return timer;
}

as you can see you can set 4 floats, and 4 callbacks and use them in your implementation of behavior as you like. Examples 

For concrete real example look at Ability class, it implements typical game ability, with cooldown.

时间: 2024-10-24 00:24:35

Github - Unity3d-Timers的相关文章

定时器(NSTimer)

iOS中定时器NSTimer的使用 1.初始化 + (NSTimer *)timerWithTimeInterval:(NSTimeInterval)ti target:(id)aTarget selector:(SEL)aSelector userInfo:(id)userInfo repeats:(BOOL)yesOrNo; + (NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval)ti target:(id)aTarget se

[GitHub] - Unity Timer

https://github.com/akbiggs/UnityTimer#unity-timer Run actions after a delay in Unity3D. This library has been battle-tested and hardened throughout numerous projects, including the award-winning Pitfall Planet. Written by Alexander Biggs + Adam Robin

GitHub上整理的一些工具,求补充

http://segmentfault.com/q/1010000002404545 技术站点 Hacker News:非常棒的针对编程的链接聚合网站 Programming reddit:同上 MSDN:微软相关的官方技术集中地,主要是文档类 infoq:企业级应用,关注软件开发领域 OSChina:开源技术社区,开源方面做的不错哦 cnblogs,51cto,csdn:常见的技术社区,各有专长 stackoverflow:IT技术问答网站 GitHub:全球最大的源代码管理平台,很多知名开源

在Unity3D项目中接入ShareSDK实现安卓平台微信分享功能(可使用ShareSDK默认UI或自定义UI)

最近公司的大厅要重做,我协助主程一起制作新大厅和新框架,前面制作的编辑器也派上了用场.等全部功能做完后我会再写一个复盘,这两天主程在忙于写热更新的功能,所以把接入分享SDK功能的任务交给了我,ShareSDK官网的文档比较分散,而且关于Unity的文档比较简略,所以还是有不少的坑.写篇博客分享一下,并加强理解记忆. 第一步,先去ShareSDK的官网下载最新版本的ShareSDK(完全免费).地址:http://www.mob.com/ 我们选择ShareSDK For Unity3D,页面会直

GitHub上整理的一些工具

GitHub上整理的一些工具 GitHub   2015-11-19 10:10:47 发布 您的评价:       0.0   收藏     5收藏 技术站点 Hacker News:非常棒的针对编程的链接聚合网站 Programming reddit:同上 MSDN:微软相关的官方技术集中地,主要是文档类 infoq:企业级应用,关注软件开发领域 OSChina:开源技术社区,开源方面做的不错哦 cnblogs,51cto,csdn:常见的技术社区,各有专长 stackoverflow:IT

搭建CARDBOARD+ANDROID+unity3d的VR开发环境

一.下载最新unity3d(u3d官网) 二.下载最新cardboardsdkforunity(https://github.com/googlesamples/cardboard-unity) 三.打开unity3d建立project,导入sdk和demo 四.build成android apk,安装即可:注意选landscape left 可以体验的demo apk在网盘:http://pan.baidu.com/s/1dDdl4bv

[Unity3D]Unity3D游戏开发之Lua与游戏的不解之缘(下)

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 喜欢我的博客请记住我的名字:秦元培,我的博客地址是blog.csdn.net/qinyuanpei. 转载请注明出处,本文作者:

Unity3D音乐音效研究-MIDI与波表

其实音乐音效这个命题本身没什么好研究的. Unity3D提供了丰富的结构和使用方式,足够使用了. 但是我有一些小小的想法和需求,一般的Unity资料并没有给我答案. 一个是容量要小.MP3.OGG的高音质压缩一分钟一M多,多放几首背景音乐就顶不住了. 一个是资源和主程序分离,方便更新,别和我提AssetBundle,这东西的平台不兼容性,完全是在增加麻烦. 还有就是想要一个示波器 像这样的就行了. 问题1.最小不过MIDI,MIDI是乐曲的原始信息,本地合成,1M多MP3不过一分钟,MIDI录一

Unity3D游戏开发之从Unity3D项目版本号控制说起

??各位朋友.大家好.欢迎大家关注我的博客,我是秦元培,我的独立博客地址是http://qinyuanpei.com.CSDN博客地址是http://blog.csdn.net/qinyuanpei. 今天我想和大家聊聊Unity3D游戏项目的版本号控制. 1.为什么要进行版本号控制? ??当我一个人写代码的时候,在我的脑海中是不存在版本号控制这个概念的.由于我对整个项目的代码如数家珍. 但是当我和一群人在一起写代码的时候.我可能并不会清楚团队中有谁改动了哪一行代码,即使是一个变量的名称或者是一