分享

SceneManager场景管理

 3dC 2016-10-06
SceneManager
class in UnityEngine.SceneManagement
描述
运行时的场景管理。
静态变量
sceneCount: 当前加载的场景的总数。
前加载的场景的数量将被返回。
sceneCountInBuildSettings : 在BuildSettings的号码。
――――――――――――――――――――
静态函数
―――――――――――――――――――――――
CreateScene:在运行时创建一个空的新场景,使用给定的名称。
在运行时创建一个空的新场景,使用给定的名称。
新的场景将开放相加到层次与现有已经打开的场景。新场景的路径将是空的。此函数用于在运行时创建场景。创建一个场景编辑时间(例如,使编辑脚本或工具需要创建场景时),使用editorscenemanager.newscene。
――――――――――――――――――――――――
public static SceneManagement.Scene GetActiveScene()
现场的活动场景。
描述
获取当前活动场景。
当前活动的场景将被用来作为目标由脚本实例化新的游戏对象现场。
using UnityEngine;
using UnityEngine.SceneManagement;

public class GetActiveSceneExample : MonoBehaviour
{
    void Start()
    {
        Scene scene = SceneManager.GetActiveScene();

        Debug.Log("Active scene is '" + scene.name + "'.");
    }
}
――――――――――――――――――――――
public static SceneManagement.Scene GetSceneAt(int index);

index:场景索引。指数必须大于或等于0和小于scenemanager.scenecount。

返回:
根据给定的参数返回一个场景引用。
获取现场在添加场景的场景管理器的列表索引:

using UnityEditor;
using UnityEditor.SceneManagement;
using UnityEngine.SceneManagement;
using UnityEngine;
public class Example
{
    // adds a menu item which gives a brief summary of currently open scenes
    [MenuItem("SceneExample/Scene Summary")]
    public static void ListSceneNames()
    {
        string output = "";
        if (SceneManager.sceneCount > 0)
        {
            for (int n = 0; n < SceneManager.sceneCount; ++n)
            {
                Scene scene = SceneManager.GetSceneAt(n);
                output += scene.name;
                output += scene.isLoaded ? " (Loaded, " : " (Not Loaded, ";
                output += scene.isDirty ? "Dirty, " : "Clean, ";
                output += scene.buildIndex >=0 ? " in build)\n" : " NOT in build)\n";
            }
        }
        else
        {
            output = "No open scenes.";
        }
        EditorUtility.DisplayDialog("Scene Summary",output, "Ok");
    }
}

public static SceneManagement.Scene GetActiveScene();
获取当前活动场景。
当前活动的场景将被用来作为目标由脚本实例化新对象。
using UnityEngine;
using UnityEngine.SceneManagement;

public class GetActiveSceneExample : MonoBehaviour
{
    void Start()
    {
        Scene scene = SceneManager.GetActiveScene();

        Debug.Log("Active scene is '" + scene.name + "'.");
    }
}
public static void LoadScene(int sceneBuildIndex, SceneManagement.LoadSceneMode mode = LoadSceneMode.Single);
public static void LoadScene(string sceneName, SceneManagement.LoadSceneMode mode = LoadSceneMode.Single);

sceneName: 需发加载的场景名称或路径。

sceneBuildIndex:在“ Build Settings”加载中的场景的索引。

Mode:允许您指定是否要加载相加现场。见LoadScene模式有关选项的详细信息。
LoadSceneMode:在播放器加载一个场景时使用。
Single:关闭所有当前场景和加载一个新场景。
Additive:将场景添加到当前加载的场景中。
你可以使用这个异步版本:LoadSceneAsync。

using UnityEngine;
using UnityEngine.SceneManagement;

public class ExampleClass : MonoBehaviour {
    void Start () {
        // Only specifying the sceneName or sceneBuildIndex will load the scene with the Single mode
        SceneManager.LoadScene ("OtherSceneName", LoadSceneMode.Additive);
    }
}

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多