关于unity 进度条加载场景的问题

下面的是切换换场景需要加载的进度条的显示

先查一个话题,如果你想在切换场景的时候有些游戏物体需要被保留 就在start中添加这句话代码

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class KeepGame : MonoBehaviour {


//就是这句话哦~ 然后把这个挂在不需要销毁的游戏物体上 就可以了
	void Start () {
 		GameObject.DontDestroyOnLoad(gameObject);
	}

	public void LoadingGanmeMethod()
	{
		//单独的场景加载  这个的入参是int型 如果你不是很清楚的话 可以去查看unity的 File>build setting>中间右边有一个 Add Open Scene的按钮点击一下 它会自定添加当前的场景 并为其编上编码(见场景名最右边的数字就是场景索引号。) 你是可以看见的。
 		//SceneManager.LoadSceneAsync(playeringScenceNum);(异步加载)
        
        //使用方式二
        // using UnityEngine.SceneManagement;需要引用的 命名空间
 
        // SceneManager.LoadScene(场景索引号);同步加载
	}
	
	// Update is called once per frame
	void Update () {
		
	}
}

下面是场景切换进度条的显示代码

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.IO;
using System.Net;
using System.Text;
using System;
using UnityEngine.UI;
using DG.Tweening;
using System.ComponentModel.Design.Serialization;
using UnityEngine.SceneManagement;





public class AddScene : MonoBehaviour {


	public static AddScene instance;
	//单例
	void Awake ()
	{
		instance = this;

	}

	public GameObject canvas;
    //如果不想使用find可以使用拖拽的方式 放进来
	public GameObject jindutiao_;//  type = Scrollbar

    //可以将此脚本挂在相机上
	void Start(){
		//上来关闭进度条  因为进度条一般都是点击了开始之后才会出现 所以笔者在这里就关闭了进度条
		//jindutiao_sb.SetActive (false);
        //下面的游戏物体的寻找是通过Find 到的  如果你想快速的做出一个试验品 就可以将下面的注释掉
		canvas = GameObject.Find ("Canvas").gameObject;
		jindutiao_ = canvas.transform.Find ("jindutiao").gameObject;
        //注释到这里  然后上面两个游戏物体 可以使用拖拽的方式 放进来

	}

	public void OpenIsGameing(){


		StartCoroutine (Enter_game_interface_back (1));
	}


	IEnumerator Enter_game_interface_back(int sceneNum)
	{

		Debug.Log("玩家进入游戏1");



		int displayerProgaress = 0;
		int toProgress = 0;
		AsyncOperation op = SceneManager.LoadSceneAsync (sceneNum);
		op.allowSceneActivation = false;
		while (op.progress < 0.9f) {
			toProgress = (int)op.progress * 100;
			while (displayerProgaress < toProgress) {
				++displayerProgaress;
				JinDuTiao (displayerProgaress);
				yield return new WaitForEndOfFrame ();
			}
			toProgress = 100;
			while (displayerProgaress < toProgress) {
				++displayerProgaress;
				JinDuTiao (displayerProgaress);
				yield return new WaitForEndOfFrame ();
			}
			op.allowSceneActivation = true;


		}

		Debug.Log ("数据初始化完毕的显示----------------------------------------------------------");
	}
    
    //进度条的数据显示
	public void JinDuTiao(float jindu){
		Debug.Log ("jindu==" + (jindu/100));
		jindutiao_.GetComponent<Scrollbar>().size = (jindu/100);
	}

}

希望可以帮到你~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值