加载场景不销毁的实现
生活随笔
收集整理的這篇文章主要介紹了
加载场景不销毁的实现
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?
GameObject a;?
?GameObject.DontDestroyOnLoad(a);
源碼,具體在案例中應用為:
第一段代碼中定義了UserName,而方法中又有許多操作,如果在Update里加入上面的代碼就會在影響下一個場景的操作,所以就必須封裝一下,來解決這個問題!!!
1 using System.Collections; 2 using System.Collections.Generic; 3 using UnityEngine; 4 using UnityEngine.SceneManagement; 5 6 public class S0Script : MonoBehaviour { 7 8 //按下鍵盤q鍵,向持久化里面寫入數據 張三,0 9 //如果這個時候有張三這個key就代表已經有分數就不設置了 或里面的value不是0 10 // Use this for initialization 11 12 public string UserName; 13 void Awake() 14 { 15 16 UserName = "zhangsan"; 17 } 18 19 // Update is called once per frame 20 void Update () { 21 if (Input.GetKeyDown(KeyCode.Q)) 22 { 23 if (PlayerPrefs.HasKey("zhangsan")) 24 { 25 Debug.LogWarning("已經注冊,該操作不會重置分數"); 26 } 27 else 28 { 29 PlayerPrefs.SetInt("zhangsan",0); 30 } 31 } 32 //這里應用到了playerprefs,跟字典類似,是鍵值對組成的(key,value)key唯一,value不唯一33 if (Input.GetKeyDown(KeyCode.Space)) 34 { 35 //加載場景 36 //index string 37 SceneManager.LoadScene("S1"); 38 } 39 40 } 41 }
?第二段代碼:
public class S0UserInfo : MonoBehaviour {// Use this for initializationprivate string _username; //此處封裝了一下,是可讀取的;public string Username{get { return _username; }}void Start (){_username = GameObject.Find("Manager").GetComponent<S0Script>().UserName;DontDestroyOnLoad(this);}// Update is called once per framevoid Update () {} }如果在用名字就在其他的腳本引用就好了!
轉載于:https://www.cnblogs.com/Future-Better/p/9829902.html
總結
以上是生活随笔為你收集整理的加载场景不销毁的实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [CodeForces1070C]Clo
- 下一篇: spring boot 项目打成war包