Unity 静态变量跨场景操作

作者:Yan_Sl 时间:2023-10-16 14:32:41 

创建两个场景同时赋值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视窗中也会自动生成这样的游戏物体

Unity 静态变量跨场景操作

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

2. 使用PlayerPrefs进行永久存储

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


设值


PlayerPrefs.SetInt("CurrentLevel", 10);

读值


PlayerPrefs.GetInt("CurrentLevel")

3.使用static变量

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

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

来源:https://blog.csdn.net/u014761712/article/details/79252961

标签:Unity,静态,变量,场景
0
投稿

猜你喜欢

  • C#中静态方法和实例化方法的区别、使用

    2023-08-25 20:49:33
  • Unity实现滑动更换界面效果

    2021-10-06 19:56:40
  • 详解LINQ入门(下篇)

    2021-10-09 16:41:29
  • java实现把对象数组通过excel方式导出的功能

    2022-07-01 13:20:09
  • c#消息提示框messagebox的详解及使用

    2022-06-25 14:57:44
  • 新手入门Jvm-- JVM对象创建与内存分配机制

    2021-11-04 19:28:10
  • Java执行JS脚本工具

    2022-04-07 08:00:16
  • SpringBoot中读取application.properties配置文件的方法

    2023-10-20 17:29:05
  • 解决Spring在Thread中注入Bean无效的问题

    2022-06-26 13:03:59
  • java实现FTP文件上传与文件下载

    2023-08-16 08:28:38
  • Android编辑框EditText与焦点变更监视器及文本变化监视器实现流程详解

    2021-06-21 04:48:14
  • SpringBoot2.3新特性优雅停机详解

    2023-11-28 07:59:43
  • 使用fileupload组件实现文件上传功能

    2023-05-04 02:48:06
  • Java开发中可以防止界面假死的刷新代码

    2023-11-23 22:23:41
  • 深入分析C#异步编程详解

    2023-01-12 10:10:56
  • 利用flutter实现炫酷的list

    2022-08-02 01:15:01
  • Android实现网络多线程断点续传下载功能

    2021-05-29 18:22:24
  • 详解Java中ThreadLocal类型及简单用法

    2022-03-09 11:51:51
  • Java实现简单邮件发送功能

    2023-08-15 00:53:23
  • Android中CountDownTimer 实现倒计时功能

    2022-01-03 00:00:24
  • asp之家 软件编程 m.aspxhome.com