[英]Unity: Access UI InputField from different scene
當我問玩家名字時,我有第一個場景,我想在游戲場景中使用這個名字。 這是第一個場景的片段,包括我如何訪問元素(它的工作原理):
public InputField nameInput;
DontDestroyOnLoad (nameInput);
/2 ways of accessing the UI element
GameObject.Find("NameInput").GetComponent<InputField>().text;
nameInput;
現在我不知道為什么無法從另一個場景訪問此元素? 謝謝你的幫助!
我認為答案很明顯。 更改場景時,前一個場景的所有對象都將被銷毀 (除非您調用名為DontDestroyOnLoad的特定函數。請記住,必須在根對象上調用此函數)。
您將不得不將名稱保存在一個持久的位置 。
您正在尋找的是數據持久性。 Unity有一個有關此主題的教程: https : //unity3d.com/fr/learn/tutorials/topics/scripting/persistence-saving-and-loading-data
我認為這篇文章也很不錯: http : //naplandgames.com/blog/2016/11/27/saving-data-in-unity-3d-serialization-for-beginners/
在您的情況下,一個簡單的PlayerPrefs
就足夠了:
// First scene :
PlayerPrefs.SetString("Player Name", nameInput.text);
// ...
// Second scene :
string playerName = PlayerPrefs.GetString("Player Name");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.