IEnumerator LoadScene()
    {
        yield return(null);

        Time.timeScale = 1;

        AsyncOperation op = SceneManager.LoadSceneAsync(nextScene);

        op.allowSceneActivation = false;

        float timer = 0.0f;

        Vector3 min, max;

        min = Camera.main.ViewportToWorldPoint(Vector3.zero);
        max = Camera.main.ViewportToWorldPoint(new Vector3(1, 1));
        //Debug.Log(min + " : " + max);


        player = GameObject.FindWithTag("Player").GetComponent <DisplayPlayer>();
        player.SetSprites(playerSprites);


        min.z = min.y = max.y = max.z = 0;
        min  *= 1.3f;
        player.transform.position = min;


        yield return(new WaitForSeconds(0.5f));

        while (!op.isDone)
        {
            yield return(null);

            timer += Time.deltaTime;
            if (op.progress < 0.9f)
            {
                //progressBar.fillAmount = Mathf.Lerp(progressBar.fillAmount, op.progress, timer);
                player.transform.position = Vector3.Lerp(min, max, timer);
                if (timer >= op.progress)
                {
                    timer = 0f;
                }
            }
            else
            {
                //progressBar.fillAmount = Mathf.Lerp(progressBar.fillAmount, 1f, timer);
                player.transform.position = Vector3.Lerp(min, max, timer);
                if (timer >= 1.0f)
                {
                    op.allowSceneActivation = true;

                    if (toMainMenu == true)
                    {
                        MainManager.Instance.ReLoad(nextScene);
                    }
                    yield break;
                }
            }
        }
    }
コード例 #2
0
 public void ChangePlayer(Sprite[] sprites, ShopManager.ItemInfo itemInfo)
 {
     gamePlayerGoodsInfo = itemInfo;
     playerSprites       = sprites;
     player.SetSprites(sprites);
 }