游戏蛮牛学习群(纯技术交流,不闲聊):159852603
游戏蛮牛 手机端
开启辅助访问
 找回密码
 注册帐号

扫一扫,访问微社区

首页   >   博客   >   Sunry

Unity3D 异步加载界面效果

个人分类: Unity 学习 | 2018-10-24 20:48
      今天是1024 程序员的节日 , 不知道大家今天都是怎么过节的呢!  废话不多说  今天主要讲一个关于异步加载 实现类似于 进入游戏时的加载条 !  下面是源码  
第一步的源码,挂在任何物体上就可以使用
```
// 首先需要引用命名空间
using UnityEngine.SceneManagement; 
 // 异步操作协同程序
 private AsyncOperation mAsyncOperation;
// 进展 
 private int progress = 0; 
 //当前进展 
 private int mCurProgress = 0;
 // 公共的委托事件 
 public static DisplayProgressHandler OnDisplayValueEvent; 
 //加载的场景
 public static int changjing=1;
//公共的委托事件 
public delegate void DisplayProgressHandler(int value) ;

private IEnumerator LoadScene()
 {
 // u3d 5.3之后使用using UnityEngine.SceneManagement;加载场景 
  mAsyncOperation = SceneManager.LoadSceneAsync(changjing);
 // 不允许加载完毕自动切换场景,因为有时候加载太快了就看不到加载进度条UI效果了 
 mAsyncOperation.allowSceneActivation = false; 
 // mAsyncOperation.progress测试只有0和0.9
 while (!mAsyncOperation.isDone && mAsyncOperation.progress < 1) 
 yield return mAsyncOperation;
 //不会调用到该位置 Debug.Log("Done"); 
 }
 }

void Update()
 {
 //Debug.Log("u:" + mAsyncOperation.progress + ",完成 " + mAsyncOperation.isDone + ", " + progress + ", " + mCurProgress);
//进度最多只能无限接近0.9(但是到不了0.9),然后场景激活成功后又会变为0 
 //isDone始终为false
 if (mAsyncOperation.progress < 0.899) 
 {
 progress = (int)(mAsyncOperation.progress * 100); 
 }
 else 
 { 
 progress = 100; 
 }
 if (mCurProgress <= progress)
 { 
mCurProgress++;
 if (OnDisplayValueEvent!=null)
 {
 OnDisplayValueEvent(mCurProgress);
 }
 }
 else if (mCurProgress >= 100) 
 {
 // 必须等进度条跑到100%才允许切换到下一场景
 mAsyncOperation.allowSceneActivation = true; //切换场景之后上一个场景的代码就失效了,包括该代码
 }
 }
 }
```
第二部 带入UI  上一步代码 只实现了 加载场景 可以单独使用 ,但是并没有解决UI界面 加载的动画 下面进行 UI脚本

//滑动条 
public Slider slider; 
//加载进展文字 
public Text text; 
//委托方法
 private void OnEnable()
 { 
 Loading_.OnDisplayValueEvent += GetDate;
 }

 void GetDate(int value)
 {
 if (value > 100)
 {
 text.text = "正在加载资源...100%";
 }
 else 
 {
 text.text = string.Format( "正在加载资源...{0}%",value); } slider.value = value;
}

```
以上 两个脚本适合在任何场景中使用!!! 

0 0

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册帐号

个人分类

标签

阅读排行

评论排行

推荐博客

最新博客

关闭

站长推荐 上一条 /1 下一条

返回顶部