2017-08-17 142 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()函数。