コード例 #1
0
    // External scripts will call this function
    // From here, CustomAnimations script will select the appropriate anim to use.
    public void doAnim(JSFanimType animType, int x, int y)
    {
        switch (animType)
        {
        case JSFanimType.GLOBALDESTROY:
            if (PieceDestroyEffect)
            {
                if (JSFUtils.isPooling)
                {
                    PoolManager.Pools[animPoolName].Spawn(PieceDestroyEffect.transform, gm.board[x, y].position, Quaternion.identity);
                }
                else
                {
                    Instantiate(PieceDestroyEffect, gm.board[x, y].position, Quaternion.identity);
                }
            }
            break;

        case JSFanimType.NOMOREMOVES:
            if (noMoreMoves)
            {
                if (JSFUtils.isPooling)
                {
                    PoolManager.Pools[animPoolName].Spawn(noMoreMoves.transform);
                }
                else
                {
                    Instantiate(noMoreMoves);
                }
            }
            break;

        case JSFanimType.ARROWH:
            if (horizontalAnim != null)
            {
                if (JSFUtils.isPooling)
                {
                    PoolManager.Pools[animPoolName].Spawn(horizontalAnim.transform, gm.board[x, y].position, Quaternion.identity);
                }
                else
                {
                    Instantiate(horizontalAnim, gm.board[x, y].position, Quaternion.identity);
                }
            }
            break;

        case JSFanimType.ARROWV:
            if (verticalAnim != null)
            {
                if (JSFUtils.isPooling)
                {
                    PoolManager.Pools[animPoolName].Spawn(verticalAnim.transform, gm.board[x, y].position, Quaternion.identity);
                }
                else
                {
                    Instantiate(verticalAnim, gm.board[x, y].position, Quaternion.identity);
                }
            }
            break;

        case JSFanimType.ARROWVH:
            if (verticalAnim != null && horizontalAnim != null)             // animation effect
            {
                if (JSFUtils.isPooling)
                {
                    PoolManager.Pools[animPoolName].Spawn(verticalAnim.transform, gm.board[x, y].position, Quaternion.identity);
                    PoolManager.Pools[animPoolName].Spawn(horizontalAnim.transform, gm.board[x, y].position, Quaternion.identity);
                }
                else
                {
                    Instantiate(verticalAnim, gm.board[x, y].position, Quaternion.identity);
                    Instantiate(horizontalAnim, gm.board[x, y].position, Quaternion.identity);
                }
            }
            break;

        case JSFanimType.ARROWTLBR:
            if (topLBottomRAnim != null)             // animation effect
            {
                if (JSFUtils.isPooling)
                {
                    PoolManager.Pools[animPoolName].Spawn(topLBottomRAnim.transform, gm.board[x, y].position, Quaternion.identity);
                }
                else
                {
                    Instantiate(topLBottomRAnim, gm.board[x, y].position, Quaternion.identity);
                }
            }
            break;

        case JSFanimType.ARROWTRBL:
            if (topRBottomLAnim != null)             // animation effect
            {
                if (JSFUtils.isPooling)
                {
                    PoolManager.Pools[animPoolName].Spawn(topRBottomLAnim.transform, gm.board[x, y].position, Quaternion.identity);
                }
                else
                {
                    Instantiate(topRBottomLAnim, gm.board[x, y].position, Quaternion.identity);
                }
            }
            break;

        case JSFanimType.ARROWTX:                               // is when match-4 power combine with match-T
            if (verticalAnim != null && horizontalAnim != null) // animation effect
            {
                if (JSFUtils.isPooling)
                {
                    PoolManager.Pools[animPoolName].Spawn(verticalAnim.transform, gm.board[x, y].position, Quaternion.identity);
                    PoolManager.Pools[animPoolName].Spawn(horizontalAnim.transform, gm.board[x, y].position, Quaternion.identity);
                    if (x + 1 < gm.boardWidth)
                    {
                        PoolManager.Pools[animPoolName].Spawn(verticalAnim.transform, gm.board[x + 1, y].position, Quaternion.identity);
                    }
                    if (x - 1 >= 0)
                    {
                        PoolManager.Pools[animPoolName].Spawn(verticalAnim.transform, gm.board[x - 1, y].position, Quaternion.identity);
                    }
                    if (y + 1 < gm.boardHeight)
                    {
                        PoolManager.Pools[animPoolName].Spawn(horizontalAnim.transform, gm.board[x, y + 1].position, Quaternion.identity);
                    }
                    if (y - 1 >= 0)
                    {
                        PoolManager.Pools[animPoolName].Spawn(horizontalAnim.transform, gm.board[x, y - 1].position, Quaternion.identity);
                    }
                }
                else
                {
                    Instantiate(verticalAnim, gm.board[x, y].position, Quaternion.identity);
                    Instantiate(horizontalAnim, gm.board[x, y].position, Quaternion.identity);
                    if (x + 1 < gm.boardWidth)
                    {
                        Instantiate(verticalAnim, gm.board[x + 1, y].position, Quaternion.identity);
                    }
                    if (x - 1 >= 0)
                    {
                        Instantiate(verticalAnim, gm.board[x - 1, y].position, Quaternion.identity);
                    }
                    if (y + 1 < gm.boardHeight)
                    {
                        Instantiate(horizontalAnim, gm.board[x, y + 1].position, Quaternion.identity);
                    }
                    if (y - 1 >= 0)
                    {
                        Instantiate(horizontalAnim, gm.board[x, y - 1].position, Quaternion.identity);
                    }
                }
            }
            break;

        case JSFanimType.BOMB:
            if (starAnim != null)
            {
                if (JSFUtils.isPooling)
                {
                    PoolManager.Pools[animPoolName].Spawn(starAnim.transform, gm.board[x, y].position, Quaternion.identity);
                }
                else
                {
                    Instantiate(starAnim, gm.board[x, y].position, Quaternion.identity);
                }
            }
            break;

        case JSFanimType.Special5:
            if (rainbowAnim != null)
            {
                if (JSFUtils.isPooling)
                {
                    PoolManager.Pools[animPoolName].Spawn(rainbowAnim.transform, gm.board[x, y].position, Quaternion.identity);
                }
                else
                {
                    Instantiate(rainbowAnim, gm.board[x, y].position, Quaternion.identity);
                }
            }
            break;

        case JSFanimType.Special6:
            if (bombAnim != null)
            {
                if (JSFUtils.isPooling)
                {
                    PoolManager.Pools[animPoolName].Spawn(bombAnim.transform, gm.board[x, y].position, Quaternion.identity);
                }
                else
                {
                    Instantiate(bombAnim, gm.board[x, y].position, Quaternion.identity);
                }
            }
            break;

        case JSFanimType.LOCKHIT:
            if (lockAnim != null)
            {
                if (JSFUtils.isPooling)
                {
                    PoolManager.Pools[animPoolName].Spawn(lockAnim.transform, gm.board[x, y].position, Quaternion.identity);
                }
                else
                {
                    Instantiate(lockAnim, gm.board[x, y].position, Quaternion.identity);
                }
            }
            break;

        case JSFanimType.ROCKHIT:
            if (rockAnim != null)
            {
                if (JSFUtils.isPooling)
                {
                    PoolManager.Pools[animPoolName].Spawn(rockAnim.transform, gm.board[x, y].position, Quaternion.identity);
                }
                else
                {
                    Instantiate(rockAnim, gm.board[x, y].position, Quaternion.identity);
                }
            }
            break;

        case JSFanimType.ICEHIT:
            if (iceAnim != null)
            {
                if (JSFUtils.isPooling)
                {
                    PoolManager.Pools[animPoolName].Spawn(iceAnim.transform, gm.board[x, y].position, Quaternion.identity);
                }
                else
                {
                    Instantiate(iceAnim, gm.board[x, y].position, Quaternion.identity);
                }
            }
            break;

        case JSFanimType.SHADEHIT:
            if (shadedAnim != null)
            {
                if (JSFUtils.isPooling)
                {
                    PoolManager.Pools[animPoolName].Spawn(shadedAnim.transform, gm.board[x, y].position, Quaternion.identity);
                }
                else
                {
                    Instantiate(shadedAnim, gm.board[x, y].position, Quaternion.identity);
                }
            }
            break;

        case JSFanimType.CONVERTSPEC:
            if (convertingAnim != null)
            {
                if (JSFUtils.isPooling)
                {
                    PoolManager.Pools[animPoolName].Spawn(convertingAnim.transform, gm.board[x, y].position, Quaternion.identity);
                }
                else
                {
                    Instantiate(convertingAnim, gm.board[x, y].position, Quaternion.identity);
                }
            }
            break;

        case JSFanimType.TREASURECOLLECTED:
            if (treasureCollectedAnim != null)
            {
                if (JSFUtils.isPooling)
                {
                    PoolManager.Pools[animPoolName].Spawn(treasureCollectedAnim.transform, gm.board[x, y].position, Quaternion.identity);
                }
                else
                {
                    Instantiate(treasureCollectedAnim, gm.board[x, y].position, Quaternion.identity);
                }
            }
            break;
        }
    }
コード例 #2
0
    /*
     * NOTES :
     *
     * Use "gm.board[x,y].position" to get the origin location of the caller
     * gm.boardWidth / gm.boardHeight    <--- the width and height of the current board
     *
     * ---------------------------
     *
     * IMPORTANT ~!!
     *
     * Pool Manager version of the script has an auto-despawn function
     * located in the "Lifespan.cs" script found in area 51/GUI Related/
     *
     *
     */

    // OVERLOADED FUNCTION for doAnim
    public void doAnim(JSFanimType animType, int[] arrayRef)
    {
        doAnim(animType, arrayRef[0], arrayRef[1]);           // call main function
    }