예제 #1
0
    //	寿司
    IEnumerator Sushi(ItemCtrl.ITEM_TYPE itemType, int time)
    {
        // 	エフェクト保持用
        GameObject effect = null;

        //	効果中のアイテムリストに寿司がなければ
        if (!ActivatingItems.Contains(itemType))
        {
            //	アイテムコントローラーを取得
            var ic = gameManager.GetComponent <ItemCtrl>();
            //	アイテムに設定したエフェクトを生成
            effect = Instantiate(ic.effect[(int)itemType]);
            //	エフェクトをプレイヤーの子オブジェクトにして、プレイヤーに追従
            effect.transform.SetParent(this.gameObject.transform, false);
        }
        //	効果中のアイテムリストに追加
        ActivatingItems.Add(itemType);
        //	設定時間待つ
        yield return(new WaitForSeconds(time));

        //	エフェクトを削除
        Destroy(effect);
        //	効果アイテムリストからこの寿司を削除
        ActivatingItems.Remove(itemType);
    }
예제 #2
0
    //todo: アニメーション制御
    //todo: アニメーションのデータを揃える
    //diary: アニメーションデータとモデル下さい……

    /// <summary>
    /// アイテムをプレイヤーに付与する
    /// </summary>
    /// <param name="itemType">アイテムの種類</param>
    public void AddItem(ItemCtrl.ITEM_TYPE itemType)
    {
        //	アイテムコントローラーを取得
        var itemCtrl = gameManager.GetComponent <ItemCtrl>();

        //	アイテムによって挙動を追加
        switch (itemType)
        {
        case ItemCtrl.ITEM_TYPE.BOMB:
        {
            //	スコアをマイナス
            MinusScore(itemCtrl.BombMinusScore);

            //	取得したポジションに爆発エフェクトを生成
            var pos    = gameObject.transform.position;
            var effect = Instantiate(itemCtrl.effect[(int)itemType], pos, Quaternion.identity);
            //	再生時間が終わったら、削除
            Destroy(effect, effect.GetComponentInChildren <ParticleSystem>().duration);

            break;
        }

        case ItemCtrl.ITEM_TYPE.WASHTUB:
        {
            //	一定時間効果が続くのでコルーチンへ
            StartCoroutine(WashTub(itemType, itemCtrl.WashTubTime));
            break;
        }

        case ItemCtrl.ITEM_TYPE.SUSHI:
        {
            //	一定時間効果が続くのでコルーチンへ
            StartCoroutine(Sushi(itemType, itemCtrl.SushiTime));
            break;
        }

        default: break;
        }
    }