我無法弄清楚這一點,並且在谷歌上找不到幫助我的東西。如何從另一個遊戲對象實例化monobehaviour腳本
統一起來,如果一個腳本派生自MonoBehaviour,它不能使用「new」關鍵字實例化。精細。所以我一直在研究如何做到這一點,看起來獲得遊戲對象,然後得到它的遊戲組件是要走的路......但它並不會走得太遠......所以我有一個叫做GameObject的遊戲對象NetworkManager的。連接到它是一個名爲NetworkManager的腳本。我有另一個名爲Main的GameObject,附加到它是一個名爲Main(驚喜!)的腳本。基本上我想要做的是在主腳本中「實例化」網絡管理器,以便我可以執行諸如networkManager.hostServer()或networkManager.kickPlayer()等等。
這是我main.cs腳本:
public class Main : MonoBehaviour {
Player player;
GameObject networkManager;
UiManager uiManager;
// Use this for initialization
void Start()
{
player = new Player(Network.player, Environment.UserName, 0, 0);
networkManager = GameObject.FindGameObjectWithTag("NetworkManager").GetComponent<NetworkManager>();
uiManager = new UiManager();
}
我得到的錯誤是: 「無法隱式轉換類型 'Assets.scripts.NetworkManager' 到 'UnityEngine.GameObject'」
問題出現在我添加「.GetComponent();」部分。現在看起來很明顯,如果函數正在尋找一個Component類型,而是得到一個NetworkManager類型,它將無法工作......而這就是我卡住的地方。我不知道如何讓這個工作,我已經超過了我在谷歌搜索15分鐘的限制。
我不明白爲什麼這個問題是downvoted。這是一個很好的問題 - 請在投票時留下一些反饋意見。 – luqui 2014-10-19 22:10:21