obsidian/笔记文件/2.笔记/108TickTimer在Unity客户端测试案例.md
2025-03-26 00:02:56 +08:00

2.2 KiB
Raw Permalink Blame History

!Pasted image 20220801132303.png

先新建一个空的unity工程

!Pasted image 20220801132344.png

在debug相关目录可以找到对应生成的dll文件

!Pasted image 20220801132452.png

另外还有一个dll文件是打印相关的

!Pasted image 20220801132540.png

直接复制粘贴到unity的Asset目录即可

!Pasted image 20220801132607.png

回到unity中会自动编译一下dll文件

!Pasted image 20220801132713.png

在unity脚本先引入需要用到的命名空间然后对打印信息的插件进行初始化和引用

再实例化计时器其中的3个action委托也指定一下是打印信息插件的对应接口

!Pasted image 20220801133037.png

然后在Update()函数中添加按键判断是添加task还是删除task

!Pasted image 20220801133338.png 再加一个,是计算平均值的;

!Pasted image 20220801133529.png

因为前面的延迟参数是设置成0所以另外需要调用函数去更新和调用回调

!Pasted image 20220801133833.png

unity运行项目然后按键点击可以看到间隔差显示都是正常的

!Pasted image 20220801134000.png

按下s计算平均间隔正常

!Pasted image 20220801134152.png

将sethandle相关设置成false不会放到队列中进行操作

!Pasted image 20220801134303.png

按下对应的按键,可以发现,不是在不同的线程操作了,都只是在单一线程下,进行操作;

!Pasted image 20220803124622.png

如果把延迟改成10然后sethandle还是false这时就会创建一个单独的计时器去进行计时和调用通过时间线程去驱动

!Pasted image 20220801134742.png

运行可以看到也是正常驱动的而且线程id也是固定的因为它是一个固定的创建出来的一个线程

!Pasted image 20220801134823.png

这又是放到队列里,进行处理;

!Pasted image 20220801134858.png

可以看到,又都是放到主线程中,进行处理;

!Pasted image 20220801135010.png

总结一下如果这个传参不为0就会启动一个单独的线程进行计时和驱动