Unity 静态变量跨场景操作

 更新时间:2021年04月13日 15:04:38   作者:Yan_Sl  
这篇文章主要介绍了Unity 静态变量跨场景操作方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

创建两个场景同时赋值StaticVarious 脚本 然后按键好,H ,J 进行不断切换场景,会发现unity 控制台输出数字不断增加,然后把静态去掉,这样结果都是10。

using UnityEngine;
using System.Collections;
using UnityEngine.SceneManagement;
public class StaticVarious : MonoBehaviour {
    static int value = 10;
    void Start () {
        Debug.Log(value++);
    }
    public void Update()
    {
        if (Input.GetKeyDown(KeyCode.H))
        {
            SceneManager.LoadScene("test4");
        }
        if (Input.GetKeyDown(KeyCode.J))
        {
            SceneManager.LoadScene("test3");
        }
    }
}

补充:Unity场景间数据传递方法

在游戏开发中,会常用到场景间传递数据的方法(比如关卡选择,过关后自动回到关卡选择界面,以动画方式解锁下一关),

目前研究了三种:

1. 使用DontDestroyOnLoad方法:

(1)在场景A中做个GameObject,身上挂个脚本,在Start方法中写明

DontDestroyOnLoad(gameObject);

这个表示在场景跳转后,不需要Destory这个物体,在下个场景中这个物体依然保留,运行后,在Hierarchy视窗中也会自动生成这样的游戏物体

跳转到场景B中,再从这个游戏物体身上取脚本组件和值

2. 使用PlayerPrefs进行永久存储

这种方式应该会以文件的方式存储在存储器中,


设值

PlayerPrefs.SetInt("CurrentLevel", 10);

读值

PlayerPrefs.GetInt("CurrentLevel")

3.使用static变量

这种方式很不错,自己设计一个class,把要存储并传递的变量做成public static变量,也不需要实例化类,跳转后直接读取就行了

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。

相关文章

  • C#中static void Main(string[] args) 参数示例详解

    C#中static void Main(string[] args) 参数示例详解

    这篇文章主要介绍了C#中static void Main(string[] args) 参数详解,本文通过具体示例给大家介绍的非常详细,需要的朋友可以参考下
    2017-03-03
  • Unity基于ShaderLab实现光照系统(着色器代码实现小结)

    Unity基于ShaderLab实现光照系统(着色器代码实现小结)

    这篇文章主要介绍了Unity基于ShaderLab实现光照系统,主要总结unity中shaderlab的着色器代码实现,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-01-01
  • c# Bitmap转bitmapImage高效方法

    c# Bitmap转bitmapImage高效方法

    本文主要介绍了c# Bitmap转bitmapImage高效方法,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-11-11
  • C#使用csvhelper实现csv的基本操作

    C#使用csvhelper实现csv的基本操作

    CsvHelper 是一个用于读写 CSV 文件的.NET库,极其快速,灵活且易于使用,CsvHelper 建立在.NET Standard 2.0 之上,几乎可以在任何地方运行,本文给大家介绍了C#使用csvhelper实现csv的基本操作,需要的朋友可以参考下
    2024-07-07
  • C#匿名函数和匿名方法的使用

    C#匿名函数和匿名方法的使用

    本文主要介绍了C#匿名函数和匿名方法的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • C#提取PPT文本和图片的实现方法

    C#提取PPT文本和图片的实现方法

    这篇文章主要为大家详细介绍了C#提取PPT文本和图片的实现方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-11-11
  • ASP.NET C#中Application的用法教程

    ASP.NET C#中Application的用法教程

    这篇文章主要给大家介绍了关于ASP.NET C#中Application的用法,在介绍Application的用法之前,先给大家介绍了Session的用法供大家参考学习,文中介绍的非常详细,需要的朋友们下面跟着小编一起来学习学习吧。
    2017-05-05
  • C#异步编程之async/await详解

    C#异步编程之async/await详解

    异步这个概念在不同语境下有不同的解释,不同的编程语言有不同异步编程方法,在C#语言中,常常使用async/await等关键字,和Task等类来实现异步编程。本文就来和大家聊聊async与await吧
    2023-03-03
  • c# 反射用法及效率对比

    c# 反射用法及效率对比

    这篇文章主要介绍了c# 反射用法及效率对比,帮助大家更好的理解和学习使用c#,感兴趣的朋友可以了解下
    2021-02-02
  • c#.NET中日志信息写入Windows日志中解决方案

    c#.NET中日志信息写入Windows日志中解决方案

    c#.NET中日志信息写入Windows日志中解决方案...
    2007-03-03

最新评论