我想按名稱列出所有可用的遊戲對象在我的場景中,實際上它幾乎完成,但出現問題,' s爲什麼我需要你的幫助傢伙!如何從foreach中分配值到GUI.Label或Box
這裏是在C#剪斷代碼:
using UnityEngine;
using System.Collections;
public class testLIST : MonoBehaviour {
public string objects;
void Start() {
object[] obj = GameObject.FindSceneObjectsOfType(typeof (GameObject));
foreach (object o in obj)
{
GameObject g = (GameObject) o;
objects = g.name;
print(g.name);
}
}
void OnGUI() {
int i =0;
GUIStyle style = new GUIStyle();
i = i+1;
Rect sizeBox = new Rect(Screen.width/2-1, Screen.height/2-150, 300, 100);
GUI.Box(sizeBox,"Available Objects : \n" + i +". " +objects.ToString(),style);
}
當剪斷代碼運行,GUI.Box只是代表了現場,而不是所有的人的最後一個對象。 我在做什麼錯?
我編輯了你的標題。請參閱:「[應該在其標題中包含」標籤「](http://meta.stackexchange.com/questions/19190/)」,其中的共識是「不,他們不應該」。 –
是的,一旦foreach循環完成運行,您的「對象」變量將始終具有最後一次迭代的值。這是完全正常的,在問題中沒有暗示你期望的其他行爲。如果你想看到「所有遊戲對象」,那麼需要一個列表,而不是一個標籤。 –
你能給一些正確的文章閱讀嗎? – Termin