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视窗中也会自动生成这样的游戏物体
跳转到场景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