unity3d 异步加载场景代码

 1 using UnityEngine;
 2 using System.Collections;
 3
 4 /// <summary>
 5 /// 加载场景
 6 /// </summary>
 7 public class LoadSence : MonoBehaviour {
 8
 9
10     private IEnumerator StartLoading(string SenceName)
11     {
12         int displayProgress = 0;
13         int toProgress = 0;
14         AsyncOperation op = Application.LoadLevelAsync(SenceName);
15         op.allowSceneActivation = false;
16         while (op.progress < 0.2f)
17         {
18             toProgress = (int)op.progress * 100;
19             while (displayProgress < toProgress)
20             {
21                 ++displayProgress;
22                 SetLoadingPercentage(displayProgress);
23                 yield return new WaitForEndOfFrame();
24             }
25         }
26
27         toProgress = 100;
28         while (displayProgress < toProgress)
29         {
30             ++displayProgress;
31             SetLoadingPercentage(displayProgress);
32             yield return new WaitForEndOfFrame();
33         }
34         yield return new WaitForSeconds(1.0f);
35         op.allowSceneActivation = true;
36     }
37
38
39
40     // Use this for initialization
41     void Start () {
42
43         Time.timeScale = 1.0f;
44
45         switch (GameManager.CurrentSenceIndex)
46         {
47
48             case 1:
49
50                 GameManager.m_NextSence = "linjiankongdi";
51
52                 break;
53             case 2:
54                 GameManager.m_NextSence =  "linjiankongdi2";
55
56                 break;
57             case 3:
58
59                 GameManager.m_NextSence =  "huangyejiaotang";
60
61                 break;
62             case 4:
63
64                 GameManager.m_NextSence =  "huangyejiaotang2";
65
66                 break;
67
68             default:
69                 break;
70         }
71
72         StartCoroutine(StartLoading(GameManager.m_NextSence));
73         //StartCoroutine(StartLoading("SenceOne"));
74
75     }
76
77     public UISlider m_UISlider;
78
79     void SetLoadingPercentage(int progress)
80     {
81         m_UISlider.value = (float)progress / 100.0f;
82     }
83
84
85
86
87     // Update is called once per frame
88     void Update () {
89
90     }
91 }
时间: 2024-11-05 02:18:07

unity3d 异步加载场景代码的相关文章

Unity 异步加载场景

效果图如下: 今天一直在纠结如何加载场景,中间有加载画面和加载完毕的效果动画! A 场景到 B ,  看见网上的做法都是 A –> C –> B.  C场景主要用于异步加载B 和 播放一些加载场景的动画 AsyncOperation op = Application.LoadLevelAsync("C");   异步加载C场景 op.allowSceneActivation = false; 加载完毕之后不自动跳转到B场景(在加载结束的时候,就可以播放一些加载完毕的动画)

u3d 异步加载场景以及进度条的显示

1.先建立两个场景 2.把两个场景在在build setting 中添加两个建好的两个场景 3.在第一个场景中建立一个button和slider组件 4.代码处理 using UnityEngine;using System.Collections;using UnityEngine.UI;using UnityEngine.SceneManagement;public class ButtonTest : MonoBehaviour { public Button ButtonTestTran

Unity3D异步加载方法

异步加载的方法很多,这里我介绍一下我前段时间学到的一个异步加载方法,感觉挺好用,有兴趣的可以看看,下面就直接贴代码: /// <summary> /// Async to load. /// Created By Hong Youwei /// 2015.3.25 /// </summary> using UnityEngine; using System.Collections; public class AsyncToLoad : MonoBehaviour { public

关于unity3D异步加载进度条实时更新的方法

在其他地方看到所谓的实时更新就是 让slider的当前value等于异步对象的进度值而已,太坑了,这个正常来理解的意思不就是从0开始递增到100嘛,不管怎么我已经完成这个功能了,代码贴上,以免日后忘记, 找到这篇博客的朋友算你好运,直接搬走吧(NGUI版)~ 需要重点提醒的:异步对象AsyncOperation的值到90%后不会再增长,剩下的10%要让AsyncOperation.allowSceneActivation(意思是场景加载完毕后自动跳转场景)为true时才会自动完成~ 完整代码下方

异步加载场景及Loading进度条制作

实现功能:点击开始游戏以后UI界面进入Loading界面,Loading结束以后自动进入游戏场景. 在这之前先在Build Settings中Add要使用的场景 在场景A中添加StartGame方法: Application.LoadLevel(1)://同步加载Loading界面(因为Loading界面资源较少速度快所以此处用同步方法) 在Loading场景中加入进度条图片:分为上下两层,上层负责显示进度 将上层的进度条Image组件中的Image Ttpe改为Filled 接下来再Loadi

【Unity笔记】使用协程(Coroutine)异步加载场景

using UnityEngine; using System.Collections; using UnityEngine.SceneManagement; using System; public class LoadingPage : MonoBehaviour { public UISlider progressBar; // 目标进度 float target = 0; // 读取场景的进度,取值范围0~1 float progress = 0; // 异步对象 AsyncOperat

异步加载场景和Loading进度条制作

在切换场景的时候,直接 用 application.LoadLevel()这个方法,如果加载的场景资源过多的话,会卡死一段时间的. 所以,用一个过渡的场景的话,体验会好一点. 那么就先开始做一个过渡的场景(名字叫做:Loading)吧..(比如像下面酱紫,百度的一张图片) 要切换场景的时候,Application.LoadLevel("Loading"):就先切换到这个Loading场景,Loading场景资源少,就一个背景图和一个slider,所以,直接同步加载过来也很快的 然后,在

Unity异步加载场景loading条

using UnityEngine; using System.Collections; public class LoadingScene : MonoBehaviour { public UISlider processBar; private AsyncOperation async; private uint _nowprocess; // Use this for initialization void Start () { _nowprocess = 0; StartCoroutin

广告banner:手动滑动切换,自动切换,点击跳转,异步加载网络图片

效果图: 该banner功能有自动切换图片,点击图片可以自定义事件,手动滑动切换,异步加载图片 代码说话: 布局文件: <!-- 广告位 --> <FrameLayout android:id="@+id/new_recommend" android:layout_width="fill_parent" android:layout_height="wrap_content" > <com.cyou.cmall.ui