我是Unity3D和C#的新手,所以我不完全確定我在做什麼錯在下面的場景。Unity3d - GetComponentInChild在C#中傳遞數據#
在Unity3D中,我試圖獲得一個變量(目標)的值,當玩家足夠接近敵人時,該值會更新,腳本將目標從null更改爲'enemy'並獲取位置等等等等。
在其上有一個用於自動定位的腳本的炮塔是主玩家gameobject的孩子。
每當我使用以下命令:
targettingScript target;
target = gameObject.GetComponent<targettingScript>();
// or---
target = gameObject.GetComponentInChildren<targettingScript>();
...然後我就可以用那個的debug.log它不拉「空」,因爲它應該在啓動測試,但它似乎沒有不當炮塔發現一個目標並且從零改變目標時更新。
我已經在各個領域讀過幾篇論壇帖子,有人說你不能這麼做(將數據從一個子組件腳本傳遞給另一個實例化的遊戲對象(IE),目標完成後導彈發射,然後做一種尋的導彈式的跟蹤)和其他人說,他們通過檢查遊戲對象的所有級別,直到他們找到他們想要的東西,但我不明白這是什麼意思。
我的問題是,1 - 是否有可能將一個兒童遊戲物體組件的變量傳遞給另一個實例化的遊戲對象2 - 如果是這樣,怎麼辦?
我很抱歉,如果這是一個簡單的概念,但我不知道如何排除故障。 我要建立一個新的場景,並嘗試各種gameObject和子對象,看看我能鼓起什麼,如果我找到有用的東西,我會在這裏發佈它。
與此同時,非常感謝大家花時間回顧我的問題。
Unity編輯器中的層次結構窗格中的遊戲層次結構如何? – Roberto
現在它有點混亂,因爲我只是試圖建立一些基本的機制,一次學習統一。 我的玩家是一個空的遊戲物體,有一個基座'船體'。炮塔在小時候,炮塔上的瞄準片和射擊點都是小孩,並且在炮塔遊戲物體下方有不同的分支。 我結束了使用findgameobjectwithtag,我似乎有正確的變量,剛纔讓導彈跟蹤它是下一個有趣的部分。 –