在场景之间共享游戏对象
Posted
技术标签:
【中文标题】在场景之间共享游戏对象【英文标题】:Share GameObjects between scenes 【发布时间】:2015-11-18 18:39:14 【问题描述】:假设我有一个 GameObject 'Player' 和两个场景 A 和 B。 如果我在两个场景中添加这个 GameObject 'Player' 然后进行一些更改(例如在场景 A 中添加脚本),我能否以某种方式实现 GameObject 'Player' 在 A 和 B 中保持相同? 还是我必须手动更新两个场景中的游戏对象?
我找不到方便的方法来实现这一点。
【问题讨论】:
听起来你在找prefabs。 当你改变场景时,为什么你要把这个 GameObjet 放到 A 和 B,而不是从 A 转移到 B?在播放器(您自己的示例)中考虑的最常见方法是在级别 0 或某个保存点创建它,并将其作为单例级别持续存在直到它死亡,所以问题是“为什么您需要避免这种常见方法并放置 2 个玩家每个级别都有相同的想法吗?” @rutter 我正在寻找一种的方法,而不是场景本身。预制件也能做到这一点吗? @Frohlich 你会怎么做? DontDestroyOnLoad() 方法告诉 Unity 在场景之间持久化 GameObject...您只需在行为的 Awake/Start 状态之一上声明它... 【参考方案1】:如果您只需要在场景转换之间保留 GameObjects,您可以使用 DontDestroyOnLoad() 方法。
这样的事情应该很划算:
using UnityEngine;
using System.Collections;
public class MyPlayer : MonoBehaviour
void Awake()
DontDestroyOnLoad(this.gameObject);
// myPlayer behaviour....
【讨论】:
以上是关于在场景之间共享游戏对象的主要内容,如果未能解决你的问题,请参考以下文章