下面的是切换换场景需要加载的进度条的显示
先查一个话题,如果你想在切换场景的时候有些游戏物体需要被保留 就在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);
}
}
希望可以帮到你~