【问题标题】: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 状态之一上声明它...

标签: unity3d gameobject


【解决方案1】:

如果您只需要在场景转换之间保留 GameObjects,您可以使用 DontDestroyOnLoad() 方法。

这样的事情应该很划算:

using UnityEngine;
using System.Collections;

public class MyPlayer : MonoBehaviour {
    void Awake() {
        DontDestroyOnLoad(this.gameObject);
    }

    // myPlayer behaviour....
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多