2017-08-17 149 views
0

我試圖在Android上執行Awake()函數,但出現了問題。void Awake()在Android中不執行,Unity 3D

這是完美的網絡應用程序,一切wroks但我想要做的是,當應用程序在Android設備上啓動時,它與服務器連接自動爲不帶屏幕觸摸客戶:

public class Automatic_Client : NetworkBehaviour { 

    public NetworkManager manager; 

    public void Awake() 
    { 
     if(Application.platform == RuntimePlatform.Android) 
      manager.StartClient(); 

如果我改變條件對於WindowsEditor並在PC上試用它可以正常工作,但它不適用於Android。當我在Android上進行調試時,通過觸摸屏從HUD中選擇「LAN Client」後,void Awake()似乎會執行...它在void Start()中也不起作用。幫助請!

Unity 5.4, Android 6.0.1

+0

喚醒不能用作協程,如果你的manager.Startclient是一個新的線程或協程,這將導致錯誤。 – joreldraw

+0

@joreldraw你爲什麼在談論協程和線程?我不認爲這是相關的,因爲OP沒有提及他們正在使用。 – Programmer

+0

啓動時是否啓用行爲及其父GameObject? Awake()只會在啓用後運行。 –

回答

0

只是一個猜測,但它可能是你已經設置Awake()公衆。我會把它宣佈爲私有/沒有限定符,看看是否有幫助。

否則,您可以嘗試使用Start()而不是Awake(),或者從您的起始腳本調用公開的Initialize()函數。