Unity3D 进度条

在大场景加载时,都希望有一个进度条能显示当前加载的百分比,而不是卡在当前场景或者是直接黑屏。

 

Unity3D提供了一些函数供我们使用。

Application.LoadLevelAsync

using UnityEngine;
using System.Collections;

public class example : MonoBehaviour {
    IEnumerator Start() {
        AsyncOperation async = Application.LoadLevelAsync("MyBigLevel");
        yield return async;
        Debug.Log("Loading complete");
    }
}

 

这个是异步加载的函数,AsyncOperation的progress返回了0-1之间的值,表示进度。

转载于:https://www.cnblogs.com/gameprogram/archive/2012/06/05/2536836.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Unity中实现加载进度条首先要使用异步加载场景的方式。当加载新场景时,我们可以通过使用Unity的异步操作来显示加载进度条,并在加载完成后跳转到另一个场景。 首先,在场景A中创建一个空物体,并给它添加一个C#脚本。在脚本中,我们可以使用以下代码来进行异步加载的操作: ```csharp using UnityEngine; using UnityEngine.SceneManagement; public class AsyncLoader : MonoBehaviour { public string nextSceneName; // 下一个场景的名称 void Start() { StartCoroutine(LoadNextSceneAsync()); } IEnumerator LoadNextSceneAsync() { AsyncOperation asyncLoad = SceneManager.LoadSceneAsync(nextSceneName); // 异步加载下一个场景 asyncLoad.allowSceneActivation = false; // 禁止切换到下一个场景 while (!asyncLoad.isDone) { // 获取加载进度(范围:0-1) float progress = Mathf.Clamp01(asyncLoad.progress / 0.9f); // 在这里更新你的进度条 UpdateProgressBar(progress); yield return null; } asyncLoad.allowSceneActivation = true; // 允许切换到下一个场景 } void UpdateProgressBar(float progress) { // 在这里更新你的进度条的显示 } } ``` 然后,在场景A中添加一个你喜欢的进度条,可以是UI控件或者3D模型,然后将该进度条的显示与UpdateProgressBar函数中的progress参数相关联。 最后,在场景A中将需要加载的新场景的名称赋值给AsyncLoader组件的nextSceneName变量。 这样,当场景A加载时,进度条将会根据加载的进度进行显示,当加载完成后,AsyncLoader会将allowSceneActivation属性设置为true,从而切换到另一个场景。这样就实现了加载进度条先显示前一个场景后跳转到另一个场景的效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值