Unity多个场景叠加或大场景处理方法小结

本文章由cartzhang编写,转载请注明出处。 所有权利保留。 

文章链接: http://blog.csdn.net/cartzhang/article/details/47614153

作者:cartzhang

本想写个总结,奈何刚刚接触!

对于Unity中对象,多个场景或大的场景多人分割处理,有不能同时修改一下场景来提交。

这怎么办呢?

方法一,建立Prefab

把某个对象或需要多场景下使用的对象建立一个prefab对象,这样就可以在多场景下使用。

方法二,有高人自有办法

就是自己写了个场景管理和场景加载的XML和json啊,牛逼啊!!

网址:http://www.gopedu.com/article/1424  ,快捷:Unity3d项目合作 场景的合并和还原

我觉得这个已经很厉害了!

方法三,

unity有个打包的功能还是蛮强大的。你可以分割玩地图,各个干各自的事情,然后在统一放到一个场景中啊!

怎么放呢?

首先,需要把场景都加入到build setting中,如下图:

然后呢,需要代码:

这个超级简单:名字为AddNewScene.cs

using UnityEngine;
using System.Collections;

public class AddNewScene : MonoBehaviour
{
    public string LevelName;

	// Use this for initialization
	void Start ()
    {
        if (LevelName.Length > 0)
        {
            Application.LoadLevelAdditive(LevelName);
            Debug.Log("level  add successfully!");
        }
        else
        {
            Debug.Log("level  is not added!");
        }
	}

}

然后把代码挂到相机或其他对象上即可。

比如我就把它挂在相机上了:

运行试试:看到那个圆柱子了没有,就是了。

最后,国外哥们一方法

不一定能打开网页:http://luminesca.blogspot.com/2013/05/sublevels.html

意思是当你觉得Prefab不能满足你的需要的时候,你可以把你的场景对象按类型分开。

关键在于一张图:

简单说明下:就是把场景中公共的资源或对象放在一个关卡中,把属于某一个独一无二的对象放在某一个关卡中!!

就这样,也就是个分类。然后在使用上面的 Application.LoadLevelAdditive 。

这个就是做了个类型细分。

------------------

若有问题,请随时联系!

非常感谢!

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-09 08:40:29

Unity多个场景叠加或大场景处理方法小结的相关文章

Unity进度条场景载入的制作思路

有两种做法,如果全部都是AssetsBundle动态载入,可以自己管控加载和释放.还有一种是借助Unity的Level(场景). 如果直接A-B场景切换,我比较担心加载峰值过高,所以采取这种做法:A-L-B.L是进度条专用场景 第一个问题是如何检测,OnLevelWasLoaded可以判断是否新场景加载完了,并调用Application.LoadLevelAsync(...)进行加载,可以通过返回对象获取到加载进度 使用时发现一个比较奇怪的事情,当场景很小秒载的时候,加载进度条执行OnDestr

mariadb 10 多源复制(Multi-source replication) 业务使用场景分析,及使用方法

mariadb 10 多源复制(Multi-source replication) 业务使用场景分析,及使用方法 官方mysql一个slave只能对应一个master,mariadb 10开始支持多源复制,一个slave可以有多个master,分别从各自的master复制不同的DB. 这个特性可以用在OLAP环境中,传统电商DB都是拆了再拆,分库分表,sharding,而OLAP环境或者大数据平台环境,通常需要各种数据的聚合,多个平台多个DB数据的复合查询,而这些数据分散在各个库中,怎么办了,当

多线程场景设计利器:分离方法的调用和执行——命令模式总结

前言 个人感觉,该模式主要还是在多线程程序的设计中比较常用,尤其是一些异步任务执行的过程.但是本文还是打算先在单线程程序里总结它的用法,至于多线程环境中命令模式的用法,还是想在多线程的设计模式里重点总结. 实现思路 其实思路很简单,就是把方法的请求调用和具体执行过程分开,让客户端不知道该请求是如何.何时执行的.那么如何分开呢? 其实没什么复杂的,就是使用 OO 思想,把对方法的请求封装为对象即可,然后在设计一个请求的接受者对象,当然还要有一个请求的发送者对象,请求本身也是一个对象.最后,请求要如

【Unity入门】场景、游戏物体和组件的概念

版权声明:本文为博主原创文章,转载请注明出处. 游戏和电影一样,是通过每一个镜头的串联来实现的,而这样的镜头我们称之为“场景”.一个游戏一般包含一个到多个场景,这些场景里面实现了不同的功能,把它们组合起来就变成一个完整的游戏了.  在电影里面,每个镜头会包含布景,然后还会有演员在表演,摄像机将表演的画面记录下来,然后就变成了电影.同样的,在Unity游戏里面也同样存在相机,它的作用也是将游戏的画面展示在游戏设备的显示屏上面.所不同的是,Unity游戏里面,不论是布景还是人物,所有的东西我们都称之

unity 3D游戏场景转换

//////////////////2015/07/07//////// /////////////////by xbw/////////////// ///////////////环境 unity 4.6.1// 当需要多个场景时,就用到了场景转换, 这里呢,我有两个场景,一个move(开场镜头),另一个second(游戏场景): 要想运行完开长镜头后接着运行游戏场景,需要用到一个函数::: Application.LoadLevel("second");引号里变是需要运行的场景,即

Unity跳转场景

Unity中如何加载场景 1.首先需要将场景添加到 Build Settings中,如下图: 2.引用using UnityEngine.SceneManagement; 同步加载:如果场景很大,有可能会卡顿. 1 using UnityEngine; 2 using UnityEngine.SceneManagement; 3 4 public class TestA : MonoBehaviour 5 { 6 private void Start() 7 { 8 SceneManager.L

unity, 鼠标与场景交点

在鼠标与场景交点上放一个mark,并于1s后消失: 新建一个空GameObject,命名为moushHitTest,添加下面脚本: using UnityEngine;using System.Collections; public class mouseHit : MonoBehaviour {    public GameObject m_moushHitMarkPrefab;    // Use this for initialization    void Start () {     

HoloLens开发手记 - Unity之Persistence 场景保持

Persistence 场景保持是HoloLens全息体验的一个关键特性,当用户离开原场景中时,原场景中全息对象会保持在特定位置,当用户回到原场景时,能够准确还原原场景的全息内容.WorldAnchorStore类是实现此特性的关键API,这保证了用户能够将任何全息对象贴到任何他们想要放置的位置. How to persist holograms across sessions 如何在整个会话中保持全息对象 WorldAnchorStore能够允许你保持场景中空间锚的位置,为了能够真正保持全息对

unity 背景 按钮 场景跳转

public Texture2D pic; private bool Cl = false; void OnGUI() { GUI.DrawTexture(new Rect(0, 0, Screen.width, Screen.height), pic); GUIStyle style = new GUIStyle(); //实例化一个新的GUIStyle,名称为style ,后期使用 style.fontSize = 50; //字体的大小设置数值越大,字越大,默认颜色为黑色 style.no