Unity切换场景保存上一个场景的数据,Unity切换场景的案例,Unity切换场景再返回数据丢失的解决方案

这篇具有很好参考价值的文章主要介绍了Unity切换场景保存上一个场景的数据,Unity切换场景的案例,Unity切换场景再返回数据丢失的解决方案。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

问题:

Unity在切换场景之后在再次返回上不会保存上一个场景的数据的。
但是大多数时候我们是需要这些数据的,这应该如何解决呢?

解决方案:

  1. 文件链接:我将解决方案打包了,点我下载,免费,或者私信我发你
  2. 首先将需要存储到一个class中,这里以学生为例子
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;

namespace ScenceChange
{
    [Serializable]
    public class StudentEnity
    {
        public string Name;
        public string Description;
        public float _Time;
    }
}


  1. 然后我们再创建一个脚本,并这个脚本挂到Unity场景中的游戏物体上.
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;

namespace ScenceChange
{
    public class tudentGaemObject : MonoBehaviour
    {
        public StudentEnity StudentEnity;
        public int No;

        private void Start()
        {
            var stu = GameManger._Instance.students.FirstOrDefault(p => p.Name == StudentEnity.Name);
            if (stu != null)
            {
                StudentEnity = stu;
            }
            else
            {
                GameManger._Instance.AddStudent(StudentEnity);
            }
            // UI 显示对应的student属性内容
        }

        private void Update()
        {
            StudentEnity._Time = StudentEnity._Time + Time.deltaTime;
        }
    }
}

GameManager中的代码

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

namespace ScenceChange
{
    public class GameManger : SingletonBase<GameManger>
    {
        public List<StudentEnity> students;
        private void Awake()
        {
            DontDestroyOnLoad(this);
            students = new List<StudentEnity>();
        }

        public void AddStudent(StudentEnity student)
        {
            if (!students.Contains(student))
            {
                students.Add(student);
            }
        }
    }
}

SingletonBase中的代码

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

namespace ScenceChange
{
    public class GameManger : SingletonBase<GameManger>
    {
        public List<StudentEnity> students;
        private void Awake()
        {
            DontDestroyOnLoad(this);
            students = new List<StudentEnity>();
        }

        public void AddStudent(StudentEnity student)
        {
            if (!students.Contains(student))
            {
                students.Add(student);
            }
        }
    }
}
  1. 在上面我们完成了数据载体的创建(StudentEnity,tudentGaemObject ),以及场景切换的时候用于保存数据的载体(GameManger ,StudentEnity)。
  2. 接下来我们做一些场景切换的工作,创建两个场景,一个名字为"ScenceA",另外一个为“ScenceB“,分别在场景中创建一个Button,场景A的按钮挂在这个脚本
 private void Awake()
        {
            Button but=gameObject.GetComponent<Button>();
            but.onClick.AddListener(delegate
            {
                SceneManager.LoadScene("ScenceB");
            });
        }

场景B挂载这个脚本

        private void Awake()
        {
            Button but = gameObject.GetComponent<Button>();
            but.onClick.AddListener(delegate
            {
                SceneManager.LoadScene("ScenceA");
            });
        }

然后点击按钮就会跳转场景。文章来源地址https://www.toymoban.com/news/detail-433586.html

  1. 然后测试一下就会发现场景跳转 StudentEnity中的_Time还是会按照跳转之前的继续增加。

Enjoy ,不懂私信,我会看。

到了这里,关于Unity切换场景保存上一个场景的数据,Unity切换场景的案例,Unity切换场景再返回数据丢失的解决方案的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • unity场景转换(实现开始游戏和返回游戏)

    1、新建两个场景,一个命名为start,另一个命名为game,如下图 2、打开start,创建一个平面和一个按钮(右键,UI,Button),平面绕X轴旋转-90度,按钮的text设置为开始游戏,把按钮拖到场景中合适的位置,如下图 3、编写代码start,把它赋给Canvas,注意是赋给Canvas,不是给按钮,代

    2024年02月11日
    浏览(43)
  • unity——通过点击按钮进行场景切换

    前记 通过 点击鼠标 进行场景切换请参考: Unity——通过点击鼠标进行场景切换_行秋的博客-CSDN博客 通过点击按钮进行场景切换请参考:unity——通过点击按钮进行场景切换_行秋的博客-CSDN博客1.准备两个示例场景 2.点击File—Build Settings...,将场景添加到视图中,点击Build。选

    2024年01月25日
    浏览(60)
  • Unity框架学习--场景切换管理器

    用脚本实例化的游戏对象都会生成在活动场景中。 哪个场景是活动场景,则当前的天空盒就会使用该场景的天空盒。 只能有一个场景是活动场景。 在Hierarchy右击一个场景,点击“Set Active Scene”可以手动把这个场景设置为活动场景。也可以使用SceneManager.SetActiveScene方法把一个

    2024年02月11日
    浏览(40)
  • Unity游戏开发:场景切换的实现

    在unity中可以将不同场景的背景和道具放置在不同的Scene当中,通过对Scene的加载和卸载来实现场景之间的切换。同时创建一个基础场景(Control Scene)来对整个游戏系统进行管理,在基础场景(Control Scene)中不放置背景图片或者游戏道具而只添加各种控制单元和Canvas。 在场景

    2024年02月15日
    浏览(49)
  • Unity——通过点击鼠标进行场景切换

    前记 通过 点击按钮 进行场景切换请参考: unity——通过点击按钮进行场景切换_行秋的博客-CSDN博客 1.准备两个示例场景 2.点击File—Build Settings...,将场景添加到视图中,点击Build。选择文件夹进行保存。(建议将文件打包到空的文件夹)3.为场景添加Button(UI)在Hierarchy视图中

    2023年04月23日
    浏览(46)
  • 如何ping一个网段下的所有IP地址,并保存返回结果

    循环的ping一个网段的所有IP地址 -n :表示一次ping几次 -w :表示一次ping60毫秒 其中的 in (1,1,255) 和 192.168.1.%i 表示ping的IP地址是从 192.168.1.1~192.168.1.255所有的IP地址都ping一遍 为管道命令,将输出的内容添加到d:pingall.txt的文件中 例如返回结果为:来自 192.168.1.4 的回复: 字节=

    2024年02月16日
    浏览(44)
  • Unity使用进度条加载实现场景切换(简单方法)

     我们实现场景切换时一般使用方法:  这种方法可以实现场景页面的直接切换,但在切换场景前想加这种进度条的方式该如何实现呢? 接下来小编为大家讲解一种非常简单的方法供参考。 1.找一张实现页面切换的背景图片(任何图片都可),记得将其改为“精灵模式”。

    2024年02月13日
    浏览(56)
  • 关于Unity在游戏运行过程中切换场景导致场景变暗的问题

    相信很多新手都会遇到这个问题,那就是你正常打开的时候没有任何问题,但当你在游戏运行过程中切换场景的时候,目标场景会莫名其妙的变暗。这个问题在网上有很多教程,但是可能是对于老手们太简单的原因,所以很多人都是一句话带过,但是对于新手来说可能会让他

    2024年02月04日
    浏览(60)
  • unity主场景设置、场景切换、全屏设置、背景音乐设置(场景一加载就开始播放)

    一般情况下我们的场景会有挺多的,这时候我们进入游戏就会有问题了,unity应该先加载哪一个呢? unity给了我们几种方案,其中一种是在 文件——生成设置 里面更改游戏场景的优先级,其中0是最高优先级(当然,必须得先把场景全都加进build中,要不如果你在外部跳转没有

    2024年02月10日
    浏览(54)
  • 手把手教会你Unity场景切换进度条制作

    大家好,我是橙子,今天为大家带来的是Unity场景切换进度条的教程。 ★,♫◦★,♫◦★,♫◦★,--------------------华丽的分割线--------------------♫◦★,♫◦★,♫◦★,♫◦★,♫◦ 答:有一些场景,里面包含非常多的资源,比如一个很大的游戏场景,往往加载很慢。这个时候,如

    2023年04月09日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包