zoukankan      html  css  js  c++  java
  • unity3D AsyncOperation异步加载场景&百分比效果

     1 using System.Collections;
     2 using UnityEngine;
     3 using UnityEngine.SceneManagement;
     4 using UnityEngine.UI;
     5 
     6 public class LoadAwait : MonoBehaviour
     7 {
     8     public GameObject loadPanel; //载入面板
     9     public Slider slider;//滑动条
    10     public Text loadMsg;//载入提示信息
    11     public GameObject UI_One;
    12     public GameObject UI_Two;
    13 
    14     public void LoadNextScence()
    15     {
    16         StartCoroutine(LoadScence());
    17     }
    18     
    19     IEnumerator LoadScence()
    20     {
    21         UI_One.gameObject.SetActive(false);//对象UI1,没有可忽视
    22         UI_Two.gameObject.SetActive(true);//对象UI界面2,没有可忽视
    23 
    24         //显示载入界面
    25         loadPanel.SetActive(true);
    26 
    27         //创建异步操作
    28         AsyncOperation op = SceneManager.LoadSceneAsync(SceneManager.GetActiveScene().buildIndex + 1);
    29 
    30         //禁止激活下一个场景
    31         op.allowSceneActivation = false;
    32 
    33         //如果没有加载完毕
    34         while (!op.isDone)
    35         {
    36             //赋值0-1
    37             slider.value = op.progress;
    38 
    39             //显示百分比
    40             loadMsg.text = op.progress * 100 + "%";
    41 
    42             //大于等于0.9表示加载完毕
    43             if (op.progress >= 0.9f)
    44             {
    45                 //直接修改值为1,表示100%
    46                 slider.value = 1;
    47 
    48                 //修改提示内容
    49                 loadMsg.text = "请按下任意按键,进入游戏!";
    50 
    51                 //判断按下任意按键时
    52                 if (Input.anyKeyDown)
    53                 {
    54                     //加载下一个场景
    55                     op.allowSceneActivation = true;
    56                 }
    57 
    58             }
    59 
    60             //退出,返回空
    61             yield return null;
    62 
    63         }
    64     }
    65 }
    View Code

    将代码挂载到画布下任意一个对象上,假设为空对象LoadManger

    可以忽视UI_One和UI_Two

    将对应的功能对象拖入公开变量

    给进入游戏按钮添加事件,将LoadManger拖入,选择LoadNextScence()

     

     效果

    时间若流水,恍惚间逝去
  • 相关阅读:
    html中frameset的详细使用方法
    日期控件API
    限制input输入类型(多种方法实现)
    springmvc导出excel并弹出下载框
    Spring mvc 验证码的做法
    Spring Boot 集成MyBatis
    Spring Boot 实践折腾记(三):三板斧,Spring Boot下使用Mybatis
    支付系统架构
    javaScript事件(六)事件类型之滚轮事件
    你不是真正的快乐
  • 原文地址:https://www.cnblogs.com/alanshreck/p/14737078.html
Copyright © 2011-2022 走看看