可能不容易,只需將它們分配給不同的變量
public GameObject johnCharacterOnLeft;
public GameObject johnCharacterWhoJoinsLater;
void Start()
{
johnCharacterOnLeft.SetActive(true);
johnCharacterOnLeft.Whatever(true);
johnCharacterOnLeft.Whatever(true);
johnCharacterOnLeft.Whatever(true);
johnCharacterWhoJoinsLater.SetActive(false);
johnCharacterWhoJoinsLater.Whatever(false);
johnCharacterWhoJoinsLater.Whatever(false);
...
}
注意,作爲一項規則,當你正在學習,不使用查找。就這麼簡單。使用公共變量並拖動以在檢查器中連接。
(如果有人讀還不知道如何拖動到檢查連接,檢查任何基本tutorial)
如果你想找到所有對象與某種標籤:
GameObject[] allCats;
allCats = GameObject.FindGameObjectsWithTag("cat");
foreach (GameObject g in allCats)
Debug.Log("I found one, name is: " +g.name);
如果你想找到那些具有特定名稱的一個你必須通過所有這些搜索..
GameObject[] allCats;
allCats = GameObject.FindGameObjectsWithTag("cat");
foreach (GameObject g in allCats)
{
Debug.Log("I found one, name is: " +g.name);
if (g.name == "Felix")
{
Debug.Log("I did find Felix the cat");
g.Whatever ...
}
如果你想找到所有對象具有一定名 ...它只是沒有任何意義 -
明白
......你不能這樣做,在團結是非常重要的。
生活的生活 - Find
是一個黑客,你永遠不應該真正使用反正,除非在罕見的情況下。如果你(出於某種原因?)需要「找到」具有特定名稱的所有遊戲對象,你要簡單地去翻每一件事情場景(這是特別不容易做到)。你可以輕鬆地谷歌這一點。但是,絕對沒有理由你會這樣做。
請注意,只是一個例子 ..說你有一些「貓」的東西在你的場景。 很簡單 - 沒有什麼比這更復雜 - 你讓他們都在同一個「文件夾」。 (也就是說,所有人都在同一持有者的遊戲對象下)。這只是一種非常簡單的方法,可以徹底避免您遇到的問題。
同樣有字面上沒有辦法找到「具有相同名稱的所有遊戲對象」 - 的Find
調用是本來就不應該在Unity黑客攻擊;他們明確沒有
而最重要的是不要忘記...找不工作,如果不活動!
Find
調用是一個絕對不應該在Unity中的黑客:永遠記住它甚至不會在非活動對象上工作。因爲他們投入了「查找名稱」的概念,所以最好不要用於非活動對象:但整個事情是一團糟 - 只是不要使用「查找」。
特別是初學者只需將在檢查 - 這是老老實實容易。 (再次,在幾乎所有情況下你的東西將啓動不活動,所以當然你必須這樣做,因爲你不能「找到」不活躍的東西。)
(和記 - 不要忘記,如果你只是找到一個「老闆」類型的腳本,說你的Scores
或SoundEffects
,從來沒有使用查找,只是做this easy idiom。)
***注意*** - 你的代碼的一行非常混亂,因爲它是指到「這個」遊戲對象。我編輯它以避免混淆。 – Fattie