Unity 靜態(tài)變量跨場景操作
創(chuàng)建兩個場景同時賦值StaticVarious 腳本 然后按鍵好,H ,J 進(jìn)行不斷切換場景,會發(fā)現(xiàn)unity 控制臺輸出數(shù)字不斷增加,然后把靜態(tài)去掉,這樣結(jié)果都是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");
}
}
}
補(bǔ)充:Unity場景間數(shù)據(jù)傳遞方法
在游戲開發(fā)中,會常用到場景間傳遞數(shù)據(jù)的方法(比如關(guān)卡選擇,過關(guān)后自動回到關(guān)卡選擇界面,以動畫方式解鎖下一關(guān)),
目前研究了三種:
1. 使用DontDestroyOnLoad方法:
(1)在場景A中做個GameObject,身上掛個腳本,在Start方法中寫明
DontDestroyOnLoad(gameObject);
這個表示在場景跳轉(zhuǎn)后,不需要Destory這個物體,在下個場景中這個物體依然保留,運(yùn)行后,在Hierarchy視窗中也會自動生成這樣的游戲物體

跳轉(zhuǎn)到場景B中,再從這個游戲物體身上取腳本組件和值
2. 使用PlayerPrefs進(jìn)行永久存儲
這種方式應(yīng)該會以文件的方式存儲在存儲器中,
設(shè)值
PlayerPrefs.SetInt("CurrentLevel", 10);
讀值
PlayerPrefs.GetInt("CurrentLevel")
3.使用static變量
這種方式很不錯,自己設(shè)計一個class,把要存儲并傳遞的變量做成public static變量,也不需要實例化類,跳轉(zhuǎn)后直接讀取就行了
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。
- 在unity腳本中控制Inspector面板的參數(shù)操作
- C#中public變量不能被unity面板識別的解決方案
- Unity使用物理引擎實現(xiàn)多旋翼無人機(jī)的模擬飛行
- 在Unity中使用全局變量的操作
- unity 切換場景不銷毀物體問題的解決
- Unity3D 單例模式和靜態(tài)類的使用詳解
- Unity 讀取文件 TextAsset讀取配置文件方式
- 解決在Unity中使用FairyGUI遇到的坑
- Unity3d 如何更改Button的背景色
- Unity3d使用FairyGUI 自定義字體的操作
- Unity3D運(yùn)行報DllNotFoundException錯誤的解決方案
- Unity游戲之存儲數(shù)據(jù)
相關(guān)文章
C#中static void Main(string[] args) 參數(shù)示例詳解
這篇文章主要介紹了C#中static void Main(string[] args) 參數(shù)詳解,本文通過具體示例給大家介紹的非常詳細(xì),需要的朋友可以參考下2017-03-03
Unity基于ShaderLab實現(xiàn)光照系統(tǒng)(著色器代碼實現(xiàn)小結(jié))
這篇文章主要介紹了Unity基于ShaderLab實現(xiàn)光照系統(tǒng),主要總結(jié)unity中shaderlab的著色器代碼實現(xiàn),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-01-01
c# Bitmap轉(zhuǎn)bitmapImage高效方法
本文主要介紹了c# Bitmap轉(zhuǎn)bitmapImage高效方法,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-11-11

