首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Unity C#字符级系统多场景

Unity C#字符级系统多场景
EN

Stack Overflow用户
提问于 2019-03-31 03:19:37
回答 3查看 161关注 0票数 0

我目前正在尝试在我的游戏中添加一个关卡系统,关卡系统在游戏场景中工作。然而,我有多个场景。我如何才能添加一个升级场景,让玩家选择升级什么技能,这将贯穿整个场景。我需要将关卡系统设为静态的吗?

EN

回答 3

Stack Overflow用户

发布于 2019-03-31 08:37:12

您可以使用DontDestroyOnLoad方法在场景之间携带对象,这样可以确保播放器对象或包含您的播放器数据的对象转到另一个填充了先前信息的场景。

Unity API Documentation上的Se更多信息

票数 2
EN

Stack Overflow用户

发布于 2019-03-31 04:35:03

可以使用PlayerPrefs在多个场景中保存关卡。您只需在关卡场景中指定一个值,并在加载新值时访问该值。

PlayerPrefs.GetInt(string key)获取'key‘中变量的值。

PlayerPrefs.SetInt(string key, int value)将“value”存储在“key”的变量中

Level Up

代码语言:javascript
复制
// Access the previous value
int speed = PlayerPrefs.GetInt("Speed");

// Increment the value
speed++;

/// Store the value
PlayerPrefs.SetInt("Speed", speed);

负载级别

代码语言:javascript
复制
void Start
{
    // Load stats
    int speed = PlayerPrefs.GetInt("Speed");
    int strength = PlayerPrefs.GetInt("Strength");
    int health = PlayerPrefs.GetInt("Health");
    int stamina = PlayerPrefs.GetInt("Stamina");
}
票数 1
EN

Stack Overflow用户

发布于 2019-03-31 13:03:44

您可以将level变量设置为static变量,从而使其成为所有脚本/场景的通用值。我认为这对你来说是最好的。PlayerPrefs不坏,但是,您可能需要PlayerPrefs.DeleteKey,并重新应用新的和更新旧的。太复杂了,使用静态变量。

查看Unity链接- https://unity3d.com/learn/tutorials/topics/scripting/statics

澄清了我想要说的,但更详细地阐述了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55434903

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档