在unity3d里怎么做进度条

   更新日期:2024.06.02

一、任意建两个场景,分别命名为testScene1、testScene2,两个场景中分别设置“切换场景”按钮,便于立昂场景之间的相互切换,注意,两个切换按钮加载的的场景均是”loadScene“;建loadScene场景,用于处理加载进度条。

二、导入NGUI资源包,在Unity3D菜单栏中选中NGUI-Open-Prefab Toolbar,在Prefab Toolbar窗口中,选中Control - Colored Progress Bar拖拽至Hierarchy面板,修改名字为”Loading“。

三、在Hierarchy面板,Loading添加子物体Label,Label的Context内容为“loading”,适当调整字体大小。创建脚本LoadingScripts,UI Root的摄像机Camera添加组件LoadingScripts。

四、LoadingScripts脚本代码如图所示。

objProcessBar.GetComponent<UISlider>().value = acOp.progress;

异步加载场景testScene2的速度直接决定了进度条的实际进展速度。

五、加载场景loadScene一闪而过,迅速的就跳转到了场景testScene2。完全无法看到进度条进展的过程。上述代码简单实用性强,非常适合加载大场景大资源等耗时长的情况。

六、为了满足小资源/场景加载时也显示出进度条,使用如下图所示代码。AsyncOperation另一个重要的属性AsyncOperation.allowSceneActivation

 acOp.allowSceneActivation = false;

 acOp.allowSceneActivation = true;

当acOp.allowSceneActivation = false即使场景已经加载完成,也不会自动跳转,直到acOp.allowSceneActivation = true;

七、实验一下效果,进度条进展效果良好,仔细观察进度条1%、2%、3%到100%,完全按照i++的代码设定执行。这时进度条的额进展速度与异步加载场景的速度无关。

八、之所以能够得到满意的效果,每一个百分比的进度都能展示在眼前,是因为这个脚本中还有一个重要的语句。yield return new WaitForEndOfFrame();

九、将该语句移到while循环语句的大括号外面,再次运行Unity3D,看一下效果,会发现加载场景loadScene再次一闪而过。这是因为这里的while循环只处理了一个判断i 是否小于 100,一个i++,和一个赋值语句,电脑的执行速度非常快,快的有时人眼无法识别。



用NGUI插件,安装后它里面就有示例。

  1. 新建两个场景,保存为level1和level2

2.将图片素材放进工程文件中,分别作为关卡背景、进度条背景和进度条前景

3.创建C#脚本,取名Life

4.打开脚本,加入如图所示代码

5.将脚本拖拽到摄像机上,将三张图片对号入座到图片变量中

6.按播放键调试



  • 17327775155 :如何在Unity3D使用 WWW 加载场景并显示进度条
    韶阁丽3761 :答:1.新建两个场景,保存为level1和level2 2.将图片素材放进工程文件中,分别作为关卡背景、进度条背景和进度条前景 3.创建C#脚本,取名Life 4.打开脚本,加入如图所示代码 5.将脚本拖拽到摄像机上,将三张图片对号入座到图片变量中 6.按播放键调试 ...
  • 17327775155 :Unity3D 使用 WWW 加载场景并显示进度条
    韶阁丽3761 :答:进度条的显示也更加容易,但是使用这种方式,需要先把场景打包成 unity3d(查看详情) 或者 assetbundle(查看详情) 文件。先把测试场景搭建好,如图:然后添加一个 C# 脚本,取名 Usewww.cs,全部代码如下:复制代码   代码如下:using UnityEngine;  using System.Collections;&...
  • 17327775155 :如何在Unity3D使用 WWW 加载场景并显示进度条
    韶阁丽3761 :答:异步加载场景,可以使用变量progress查看加载进度 5.x:UnityEngine.SceneManagement.SceneManager.LoadSceneAsync ("sceneName").progress;4.x Application.LoadLevelAsync (1).progress;WWW通常使用在访问url时,www.progress可以查看加载进度
  • 17327775155 :unity3d中loading界面怎么制作
    韶阁丽3761 :答:using System.Collections;using UnityEngine;using UnityEngine.UI;using UnityEngine.SceneManagement;public class Loading : MonoBehaviour { //进度条 public Slider progressSlider; //进度条进度显示文字 public Text ProgressSliderText; //当前加载进度 private int nowProcess; ...
  • 17327775155 :unity3d 加载进度条<带图,带当前加载百分之多少>
    韶阁丽3761 :答:呵呵 / 用Unity做血条或进度条真的很方便,GUI里scrollbar就可以轻松实现,再加上lerp一个血条或进度条就完成了。/ using UnityEngine;using System.Collections;public class BloodBarTest : MonoBehaviour { public GUISkin theSkin;public float bloodValue = 0.0f;
  • 17327775155 :unity ugui 怎样制作进度条
    韶阁丽3761 :答:最简单的方法就是通过点击菜单GameObject->UI->Slider创建一个可以拖动的Slider,然后根据自己需要,去掉不需要的组件。另一种办法就是自己定义一个:首先点击GameObject->UI->Image创建一个作为进度条背景的图。然后选中创建的Image,再次点击GameObject->UI->Image创建一个作为进度显示的图。设置好它们的...
  • 17327775155 :求教怎样做loading
    韶阁丽3761 :答:1 你要有Unity Pro授权 2 在插入unity页面的js代码中设置自定义logo路径,进度条图片路径,进度条背景框图片路径。例如 var params= { logoimage:'logo.png',progressbarimage: "bar.png",progressframeimage: "frameimage.png"} unityObject.embedUnity("unityPlayer", "WebPlayer.unity3d", 600...
  • 17327775155 :Unity3D的常见问题
    韶阁丽3761 :答:答:Max正常制作摄像机漫游动画,导到Unity中后,将Unity的Camea拖拽到Max导出的摄像机Gameobject物体之上,作为其子物体即可。9:如何自定义Webplayer载入Logo及进度条?答:,,。10:GUI上怎么使用中文字?答:导入任意中文字体,然后定义GUISkin字体为该字体即可。11:购买一个授权可以安装几台电脑?答:可以安装于2...
  • 17327775155 :如何自己开发软件?
    韶阁丽3761 :答:1.新建Unity3d工程,添加两个场景。2.新建一个C#脚本,自定义名称。3.输入代码 4.将图片拖拽到变量上进行赋值。5.点击播放按钮并按P键播放动画,当进度条到100%时,跳转第二个场景。6.点击文件-发布设置,打开发布设置面板。7.设置发布和运行,设置名称和路径,点击发布。8.点击Play打开程序。
  • 17327775155 :Unity3d如何实现滚动文本框?
    韶阁丽3761 :答:然后调整大小和在Panel中的位置 三、新建一个ScrollBar,不在Panel之下,和Panel并列,Direction设置成Bottan to Top。设置成Panel同样的高度,并挨在一起,这样看起来就是一个文本框右边带着一个垂直滚动条 四、Panel的Scroll Rect组件的Content指定Text,Vertical Scrollbar指定上面新建的ScrollBar。
  • 相关链接

    欢迎反馈与建议,请联系电邮
    2024 © 视觉网