Example #1
0
    IEnumerator Countdown()
    {
        while (fade.IsFade)
        {
            yield return(null);
        }
        aud.Play();
        for (int count = countDownImage.Length - 1; count >= 0; count--)
        {
            //表示
            countDownImage[count].SetActive(true);
            //1秒待つ
            float t = 0.0f;
            while (t <= 1.0f)
            {
                t += Time.unscaledDeltaTime;
                yield return(null);
            }
            //消す
            countDownImage[count].SetActive(false);
        }
        Time.timeScale = 1.0f;
        yield return(new WaitForSeconds(1.0f));

        BgmManager.GetInstance().Play(BgmEnum.Game, true, 0.3f);
    }
Example #2
0
 private void Start()
 {
     fade = Fade.instance;
     fade.StartFadeIn();
     aud = GetComponent <AudioSource>();
     BgmManager.GetInstance().Stop();
     StartCoroutine(Gacha());
 }
Example #3
0
 void Start()
 {
     PointManager.Reset();
     Time.timeScale = 0.0f;
     BgmManager.GetInstance().Stop();
     aud  = GetComponent <AudioSource>();
     fade = Fade.instance;
     fade.StartFadeIn();
     StartCoroutine(Countdown());
 }
    private void Start()
    {
        fade = Fade.instance;
        fade.StartFadeIn();
        BgmManager.GetInstance().Play(BgmEnum.Select);
        viewportMin = Camera.main.ViewportToWorldPoint(Vector2.zero);
        viewportMax = Camera.main.ViewportToWorldPoint(Vector2.one);
        for (int i = 0; i < PlayerCount.MaxValue; ++i)
        {
            PlayerJoinManager.SetJoinInfo(i, false);
        }

        for (int i = 0; i < playerNum; ++i)
        {
            playerUI[i] = new PlayerUI();
            foreach (Transform child in playerUIList[i].transform)
            {
                if (child.name == "Cursor")
                {
                    playerUI[i].cursor = child.gameObject;
                }
                else if (child.name == "Capsule")
                {
                    playerUI[i].capusuleTransform = child.transform;
                }
                else if (child.name == "OK")
                {
                    playerUI[i].okObj        = child.gameObject;
                    playerUI[i].startOkScale = child.gameObject.transform.localScale;
                    child.gameObject.SetActive(false);
                }
            }
        }

        for (int i = 0; i < animalNum; ++i)
        {
            startAnimal[i] = animalArray[i].transform.localPosition;

            foreach (Transform child in animalArray[i].transform)
            {
                if (child.tag == "Animal")
                {
                    animalMoveObj[i]   = child;
                    animalAnimation[i] = child.gameObject.GetComponent <PlayerAnimationController>();
                }
                else
                {
                    message[i] = child.gameObject;
                    message[i].SetActive(false);
                }
            }
            PlayerType type = animalArray[i].GetComponent <CharaType>().type;
            animalIndex.Add(type, i);
        }
    }
Example #5
0
    IEnumerator ResultStart()
    {
        while (fade.IsFade)
        {
            yield return(null);
        }
        //各順位ごとにプレイヤーの番号を格納
        List <int>[] counts = new List <int> [PlayerCount.MaxValue];
        for (int i = 0; i < PlayerCount.MaxValue; ++i)
        {
            counts[i] = new List <int>();
        }

        for (int i = 0; i < PlayerCount.MaxValue; ++i)
        {
            if (!PlayerJoinManager.IsJoin(i))
            {
                continue;
            }
            counts[PointManager.GetRank(i) - 1].Add(i);
        }

        yield return(new WaitForSeconds(0.5f));

        // くす玉を開く間隔
        const float intervalTime = 1.0f;
        int         index        = PlayerCount.MaxValue - 1;

        for (int i = PlayerCount.MaxValue - 1; i >= 0; --i)
        {
            for (int j = 0; j < counts[i].Count; ++j)
            {
                KusudamaAnimationPlay(counts[i][j]);
                if (i == 0)
                {
                    Instantiate(
                        kamifubukiPrefab,
                        playerPosArray[counts[i][j]].transform.position + new Vector3(0, 2, 0),
                        kamifubukiPrefab.transform.rotation);
                }
                --index;
            }
            if (counts[i].Count != 0)
            {
                aud.Play();
                yield return(new WaitForSeconds(intervalTime));
            }
        }

        yield return(new WaitForSeconds(1.0f));

        BgmManager.GetInstance().Play(BgmEnum.Result, false);
        animEnd = true;
    }
Example #6
0
 void Start()
 {
     fade = Fade.instance;
     fade.StartFadeIn();
     aud = GetComponent <AudioSource>();
     PointManager.ApplyRank();
     kusudamaArray = new GameObject[PlayerCount.MaxValue];
     rankTextArray = new Image[PlayerCount.MaxValue];
     Generate();
     BgmManager.GetInstance().Stop();
     StartCoroutine(ResultStart());
 }
Example #7
0
    IEnumerator Gacha()
    {
        while (fade.IsFade)
        {
            yield return(null);
        }
        gachaAnimator.SetTrigger("TurnTrigger");
        aud.PlayOneShot(gachaRotateAudio);
        yield return(new WaitForSeconds(1.4f));

        // ボールを出す数
        int   gachaBallNum          = 20;
        int   count                 = 0;
        int   seed                  = 1;
        float gachaIntervalTimeBase = 0.8f;
        float gachaIntervalTime     = gachaIntervalTimeBase * gachaIntervalTimeBase;
        float ballSpeed             = 0.04f;
        float animatorSpeed         = 1.0f;

        while (gachaBallNum > count && titleAnimationPlaying)
        {
            gachaAnimator.SetTrigger("ShakeTrigger");
            aud.PlayOneShot(ballGenerateAudio);
            // 球の生成
            GachaGenerator(ballSpeed, seed++);
            count++;
            yield return(new WaitForSeconds(gachaIntervalTime));

            // 排出する時間を設定
            gachaIntervalTimeBase -= gachaIntervalTimeBase / gachaBallNum;
            gachaIntervalTime      = gachaIntervalTimeBase * gachaIntervalTimeBase;
            // 球のスピードを設定
            ballSpeed += ballSpeed * 0.03f;
            // アニメーションスピードを設定
            animatorSpeed += animatorSpeed * 0.02f;
            gachaAnimator.SetFloat("Speed", animatorSpeed);
        }

        if (!titleAnimationPlaying)
        {
            BgmManager.GetInstance().Play(BgmEnum.Title);
            yield break;
        }

        titleAnimator.SetTrigger("FadeTrigger");
        var anim = titleAnimator.GetCurrentAnimatorStateInfo(0);

        yield return(new WaitForSeconds(1.0f));

        BgmManager.GetInstance().Play(BgmEnum.Title);
    }