游戏开发学习笔记(三)游戏加载场景的制作

思路:

UI设计,异步加载主场景

由于主场景比较大,使用异步加载游戏主场景,如果想了解同步加载和异步加载,可以搜索其他博客加以了解,这里不再做更多解释

UI设计

添加一个slider作为进度条

异步加载主场景

添加脚本LoadingScene,编辑脚本
public class LoadingScene : MonoBehaviour {

    public UISlider slider;         //进度条
    public UILabel label;           //进度数
    private AsyncOperation asyncOp;
    private int nowprocess = 0;     //目前的进度数

    void Start()
    {
        StartCoroutine(StartLoading());
    }

    void Update()
    {
        if (asyncOp == null)        //如果为空,则return,不运行下面的代码
        {
            return;
        }

        int toprocess;              //要到达的进度数(最多只能到达90)

        if (asyncOp.progress < 0.9f)
        {
            toprocess = (int)(asyncOp.progress * 100);
        }
        else             //asyncOp.progress已经达到0.9,场景不会再加载,我们要手动加载剩余的10%
        {
            toprocess = 100;
        }
        if (nowprocess < toprocess)
        {
            nowprocess++;       // nowprocess++可以使进度数从1逐步加载100,而不会跳跃性的加
        }
        slider.value = nowprocess / 100f;       //更新进度条和进度数
        label.text = (slider.value * 100).ToString()+"%";
        if (nowprocess == 100)          //加载完毕
        {
            asyncOp.allowSceneActivation = true;
        }
    }

    //携程异步加载下个场景
    private IEnumerator StartLoading()
    {

        asyncOp = Application.LoadLevelAsync(3);
        asyncOp.allowSceneActivation = false;       //AsyncOperation.isDone为false,AsyncOperation.progress的值增加到0.9后就保持不变
        yield return asyncOp;
      
    }
}


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值