白盒测试 unity 协程 基础介绍

陈子昂 · 2016年04月12日 · 最后由 sherrycc 回复于 2018年08月01日 · 2621 次阅读

unity 协程 基础介绍

协程不是多线程,虽然是支持分开管理的,检查协程的代码不用考虑同步和锁的问题(用于异常测试的测试知识点)


unity 会在每秒帧处理对象的协程,当某些情况下,需要检查 update 函数后会进行处理协程,就需要检查,检查方式代码走查。
MonoBehaviour 并且 yield 满足,会执行协程后面的代码。
用 fps 做 1 个范例,遇到条件语句会等待时间后执行,也可以挂起。自我感觉是写的比较浅的只写了①时间管理

游戏产业可以和②碰撞管理类 ③计数 参与管理

具体 C# 例子如下:

using UnityEngine;
using System.Collections;
public class NcDrawFpsRect : MonoBehaviour
{
    ---


    IEnumerator FPS()
    {
        while (true)
        {
            // Update the FPS
            float fps = accum/frames;
            sFPS = fps.ToString( "f" + Mathf.Clamp( nbDecimal, 0, 10 ) );

        yield return new WaitForSeconds(fre); //①时间管理 协程上面float fre

            //Update fps color
            color = (fps >= 30) ? Color.green : ((fps > 10) ? Color.yellow : Color.red);

            public  float fre = 0.5F;
            private float accum = 0.0F;
            private int frames = 0;

        yield return new WaitForSecondswait0.3f)); //①时间管理 

        }
    }

协程效率对比 update 带来的性能消耗较少,这块具体可以看 unity 官方手册。
在游戏开发中把 gameobject 的 active 属性设置为 false 就关闭了协程。在 MonoBehaviour 里开发者可以便于管理,同时避免出错,这个也是协程存在的意义。

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 13 条回复 时间 点赞

支持一下~

楼主是做方面测试的,有点好奇

#2 楼 @rik782 游戏产业- -

@jiazurongyu ,,现在做的是测试行业吗?

#4 楼 @rik782 是啊,?

@jiazurongyu ,想问一下 关于 unity test tools 这块有接触过吗?现在做的工作是不是偏向于单元测试,主要是通过 c# 脚本吗?多谢!

#6 楼 @rik782 这个听说过,没有用过,个人觉得应该也是可以实现的。所有东西都是 Debug.Log 打出对应的内容,测试失败的抛出的原理。
unity 属于引擎环境启动的,可以测试的地方很多啊,不光是 C# 脚本。所以没有投入时间使用过那个。

多分享,游戏领域水太深_^

我只知道 unity3D 开发工具

#9 楼 @liyalin900416 是开发工具 - 引擎,基于 unity 开发项目,因为这个引擎的特性产生了只面向 unity 的测试内容。。

#8 楼 @kasi 谢谢查看,有时间就多分享,不过游戏这块大部分都还是业务流和半自动化的。上面说的那个我平时是读代码检查的,还没法做成 设置检查函数的静态工具。

#6 楼 @rik782 unity test tools 中 unit test 是可以用来做单元测试的,也可以做协议接口,Integration Test 这块就不是很懂了

riklu 回复

大佬有在用 unity test tools 这个么,可以请教一下你问题不

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册