Unity3D_(API)场景切换SceneManager

  Unity场景切换SceneManager  官方文档:传送门

静态方法

  创建场景

  CreateScene   Create an empty new Scene at runtime with the given name.

  得到当前激活的场景
  GetActiveScene   Gets the currently active Scene.

  根据index得到一个场景
  GetSceneAt   Get the Scene at index in the SceneManager‘s list of loaded Scenes.

  通过BuildIndex得到一个场景

  GetSceneByBuildIndex   Get a Scene struct from a build index.

  通过名字得到一个场景
  GetSceneByName   Searches through the Scenes loaded for a Scene with the given name.

  

  通过路径得到一个场景
  GetSceneByPath   Searches all Scenes loaded for a Scene that has the given asset path.

  加载场景
  LoadScene   Loads the Scene by its name or index in Build Settings.

  异步加载场景
  LoadSceneAsync   Loads the Scene asynchronously in the background.

  合并两个场景
  MergeScenes  This will merge the source Scene into the destinationScene.

  把某个游戏物体移动到场景当中
  MoveGameObjectToScene   Move a GameObject from its current Scene to a new Scene.

  激活某个场景
  SetActiveScene   Set the Scene to be active.

  异步卸载某个场景
  UnloadSceneAsync   Destroys all GameObjects associated with the given Scene and removes the Scene from the SceneManager

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

public class Scene_Gary : MonoBehaviour {

    // Use this for initialization
    void Start () {
        SceneManager.sceneLoaded += this.OnSceneLoader;
    }

    //当场景加载出来调用触发的事件
    void OnSceneLoader(Scene scene,LoadSceneMode mode)
    {
        Debug.Log("Hello Gary~");
    }

    // Update is called once per frame
    void Update () {
        //加载场景
        SceneManager.LoadScene("Gary2");
        //获得当前场景
        Scene scene = SceneManager.GetActiveScene();
        //重新加载当前场景
        SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex);
    }
}

Scene_Gary.cs

    void Start () {
        //将OnSceneLoader()方法添加到场景管理类
        SceneManager.sceneLoaded += this.OnSceneLoader;
    }

    //当场景加载出来调用触发的事件
    void OnSceneLoader(Scene scene,LoadSceneMode mode)
    {
        Debug.Log("Hello Gary~");
    }
CreateScene Create an empty new Scene at runtime with the given name.
GetActiveScene Gets the currently active Scene.
GetSceneAt Get the Scene at index in the SceneManager‘s list of loaded Scenes.
GetSceneByBuildIndex Get a Scene struct from a build index.
GetSceneByName Searches through the Scenes loaded for a Scene with the given name.
GetSceneByPath Searches all Scenes loaded for a Scene that has the given asset path.
LoadScene Loads the Scene by its name or index in Build Settings.
LoadSceneAsync Loads the Scene asynchronously in the background.
MergeScenes This will merge the source Scene into the destinationScene.
MoveGameObjectToScene Move a GameObject from its current Scene to a new Scene.
SetActiveScene Set the Scene to be active.
UnloadSceneAsync Destroys all GameObjects associated with the given Scene and removes the Scene from the SceneManager.

原文地址:https://www.cnblogs.com/1138720556Gary/p/9942088.html

时间: 2024-11-12 18:00:55

Unity3D_(API)场景切换SceneManager的相关文章

Unity 中场景切换

Unity游戏开发中,单个Scene解决所有问题似乎不可能,那么多个Scene之间的切换是必然存在.如果仅仅是切换,似乎什么都好说,但是在场景比较大的时候不想让玩家等待加载或者说场景与场景之间想通过一些画面.动画表现出一些让玩家期待的东西,大家就要去认真考虑.这篇文章主要介绍两种增加切换中如何播放画面或者动画等等,提高玩家的浸入感,当然你也可以做成无缝的场景. 1 操作基础函数 LoadLevel Loads the level by its name or index.  加载场景,加载之前你

cocos2d-x 场景切换

***************************************转载请注明出处:http://blog.csdn.net/lttree******************************************* 今天终于把界面交上去了,~~o(>_<)o ~~,花费了好多时间... 做个  场景切换  来庆祝一下. PS:欢迎大家一起讨论呀~,共同加油! ********************************* 本文三部分: 1.前言 2.菜单按钮执行场景切换

Egret场景切换管理类切换和单例使用方法

场景切换是很多开发者在开发过程中必不可少的一个环节,当项目中有两个或两个以上的游戏场景时,怎样管理这些场景,能够使它们之间的切换更加方便呢?今天就为大家介绍场景切换管理类的切换方法和单例的使用方法. 案例源码:https://github.com/hkjlx/qhcj 首先创建一个所有场景的父类Scene Scene类主要是为了方便管理场景,此类是一个抽象类,子类必须继承此类并实现onComplete()抽象方法才能进行场景的切换. abstract class Scene extends eu

unity 之 场景切换进度条显示

一.UI建立建立slider适当更改即可: 二.新增loadScene脚本,用来进行场景切换,将其绑定任意物体上面.博主以放置主相机为例.参数分别为进度条(用来设置value值),显示进度文本text: 在设置中加入两个场景: 三.脚本: 1 /// <summary> 2 /// 场景切换 3 /// 在unity 获取当前加载进度progress中,其中最多到0.9.只有等到加载到第二个场景才会到1 4 /// 所有在加载进度条时如果progress的值近似0.9,则直接将进度参数设置为1

cocos2d-x-3.x 场景(3)场景切换特效

听说cocos场景切换比较帅气,就在网上查了许多场景切换可以掉用的. 先说怎么弄,贴代码,在上一节所示的地方 bool HelloWorld::init(){ if (!Layer::init()) { return false; } Size visibleSize = Director::getInstance()->getVisibleSize(); Vec2 origin = Director::getInstance()->getVisibleOrigin(); Sprite *la

8 cocos2dx添加场景切换效果,控制场景切换彻底完成之后再执行动画

 1 添加场景切换效果 供场景切换的类: CCTransitionJumpZoom CCTransitionProgressRadialCCW CCTransitionProgressRadialCW CCTransitionProgressHorizontal CCTransitionProgressVertical CCTransitionProgressInOut CCTransitionProgressOutIn CCTransitionCrossFade CCTransitionF

cocos2dx 场景切换

版本是 cocos2dx 3.3 场景切换的时刻是:(代码有删减) void Director::drawScene() { // calculate "global" dt calculateDeltaTime(); if (_nextScene) { setNextScene(); } } 每一帧都会检查,看是不是有 _nextScene, 也就是 是不是需要进行场景切换了. 一般场景切换的过程: 当添加一个场景时,正在运行的场景会调用 _runningScene->onEx

Cocos2d-X研究之3.0 场景切换特效汇总

Cocos2d-X研究之3.0 场景切换特效汇总 2014-08-05      0个评论    来源:游戏编程    收藏    我要投稿 cocos2d-x 3.0中场景切换特效比较多,而且游戏开发中也经常需要用到这些特效,来使场景切换时不至于那么干巴,遂这里汇总一下,开发中使用. 场景切换用到导演类Directory,大多数用的都是替换场景,当然也可以用出栈进栈的方式来进行场景的替换,这里以replaceScene来举例.3.0事件分发机制—触摸事件监听不明白的可以看下. 场景切换特效的应

Cocos2d-X3.0 刨根问底(九)----- 场景切换(TransitionScene)源代码分析

上一章我们分析了Scene与Layer相关类的源代码,对Cocos2d-x的场景有了初步了解,这章我们来分析一下场景变换TransitionScene源代码. 直接看TransitionScene的定义 class CC_DLL TransitionScene : public Scene { public: /** Orientation Type used by some transitions */ enum class Orientation { /// An horizontal or