// Token: 0x06002EAB RID: 11947 RVA: 0x000B3ADC File Offset: 0x000B1CDC
    private IEnumerator Start()
    {
        if (!base.Working && ++this.iter < (this.iter_end = this.Count))
        {
            base.Working = true;
            for (;;)
            {
                global::ThrottledTask.Timer timer = base.Begin;
                do
                {
                    try
                    {
                        this[this.iter].Spawn(this.runtimeLoad, 9);
                    }
                    catch (Exception ex)
                    {
                        Exception e = ex;
                        Debug.LogException(e, this);
                    }
                    if (++this.iter >= this.iter_end)
                    {
                        goto IL_FC;
                    }
                }while (timer.Continue);
                yield return(null);
            }
IL_FC:
            base.Working = false;
            yield break;
        }
        yield break;
    }
Ejemplo n.º 2
0
    // Token: 0x06000360 RID: 864 RVA: 0x00010A68 File Offset: 0x0000EC68
    private IEnumerator DoUnpack()
    {
        this.totalTrees       = 0;
        this.currentTreeIndex = 0;
        foreach (TreeUnpackGroup grp in this.unpackGroups)
        {
            this.totalTrees += grp.meshes.Length;
        }
        base.Working         = true;
        this.groupEnumerator = ((IEnumerable <TreeUnpackGroup>) this.unpackGroups).GetEnumerator();
        global::ThrottledTask.Timer timer = base.Begin;
        while (this.MoveNext())
        {
            GameObject col = new GameObject(string.Empty, new Type[]
            {
                typeof(MeshCollider)
            })
            {
                hideFlags = 9,
                tag       = this.currentGroup.tag,
                layer     = ((this.currentGroup.layer != 0) ? this.currentGroup.layer : 10)
            };
            MeshCollider mc = (MeshCollider)col.collider;
            mc.smoothSphereCollisions = this.currentGroup.spherical;
            mc.sharedMesh             = this.currentMesh;
            if (!timer.Continue)
            {
                yield return(new WaitForEndOfFrame());

                timer = base.Begin;
            }
        }
        base.Working = false;
        Object.Destroy(this);
        yield break;
    }