Ejemplo n.º 1
0
    void ClearNCreateNewInSceneCaches(int newLength)
    {
        versionDataCache = new int[newLength];

        for (int i = 0; i < blockObjects.Length; i++)
        {
            if (blockObjects [i])
            {
                ISObjectPoolManager.Unspawn(blockObjects [i]);
            }
        }

        blockObjects = new GameObject[newLength];
    }
Ejemplo n.º 2
0
    void UpdateEntireScene()
    {
        int versionCheckResult = gridData.IsLastestVersion(currentVersion);

        if (versionCheckResult == -1)
        {
            return;
        }

        Debug.Log("New version detected, updating " + (versionCheckResult - currentVersion).ToString() + " changes...");

        int[] data = gridData.GetRawData();

        for (int i = 0; i < data.Length; i++)
        {
            if (data [i] == versionDataCache [i])
            {
                continue;
            }

            //Once a block is changed(otherwise, loop is continued), check the surrounding blocks and see if some of them also need to be updated.
            UpdateBlocksCacheIgroned(gridData.SurroundingBlocks(gridData.DecodeIndex(i)));

            versionDataCache [i] = data [i];

            ISSCBlockVector b = gridData.DecodeIndex(i);

            if (blockObjects [i])
            {
                ISObjectPoolManager.Unspawn(blockObjects [i]);
            }
            if (data [i] <= 1)
            {
                continue;
            }
            if (!gridData.IsBlockVisiable(b))
            {
                continue;
            }

            Vector3 position = ISSCBGrid.GridPositionToWorldPosition(b, transform.position);
            blockObjects [i] = ISObjectPoolManager.Spawn(blockList.blocks [data [i]].gameObject, position, Quaternion.identity) as GameObject;
        }

        currentVersion = versionCheckResult;
    }
Ejemplo n.º 3
0
    public void UpdateBlockCacheIgroned(ISSCBlockVector block)
    {
        int id = gridData.EncodeIndex(block);

        if (blockObjects [id])
        {
            ISObjectPoolManager.Unspawn(blockObjects [id]);
        }

        if (!gridData.IsBlockVisiable(block))
        {
            return;
        }
        int[] data = gridData.GetRawData();

        if (data [id] <= 1)
        {
            return;
        }

        Vector3 position = ISSCBGrid.GridPositionToWorldPosition(block, transform.position);

        blockObjects [id] = ISObjectPoolManager.Spawn(blockList.blocks [data [id]].gameObject, position, Quaternion.identity) as GameObject;
    }
Ejemplo n.º 4
0
    IEnumerator TimeUp()
    {
        yield return(new WaitForSeconds(time));

        ISObjectPoolManager.Unspawn(this.gameObject);
    }
Ejemplo n.º 5
0
 override public void OnStateExit(Animator animator, AnimatorStateInfo animatorStateInfo, int layerIndex)
 {
     ISObjectPoolManager.Unspawn(animator.gameObject);
 }