簡體   English   中英

Unity:從不同場景訪問UI InputField

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM