// Use this for initialization void Awake() { singleton = this; netManager = PhaNetworkManager.Singleton; PhantomSpawnLocation[] tempSpawnLocations = GetComponentsInChildren <PhantomSpawnLocation>(); size = tempSpawnLocations.Length; ListOfPhantomSpawners = new List <PhantomSpawnLocation>(size); phantoms = new GameObject[size]; PreviousPositions = new Vector3[size]; for (int i = 0; i < size; i++) { ListOfPhantomSpawners.Add(tempSpawnLocations[i]); } size = 0; }
/// This function is called when the object becomes enabled and active. void OnEnable() { if (!NetworkInitialized && singleton == null) { singleton = this; PhaNetworkingAPI.mainSocket = PhaNetworkingAPI.InitializeNetworking(); PhaNetworkManager.singleton.SendConnectionMessage(new StringBuilder("0.0.0.1")); Debug.Log("Networking initialized"); SceneManager.activeSceneChanged += SpawnPlayer; NetworkInitialized = true; DontDestroyOnLoad(this); } else { Destroy(gameObject); } }
//TODO: add in the calls to send the score updates. //Handle various changes for each state //Try to manage all menu changes from here. public void SetMenuState(MainMenuState state) { mainMenuState = state; switch (state) { case MainMenuState.Menu: SelectionUI.SetActive(false); selectAgentButton.interactable = false; selectHackerButton.interactable = false; break; case MainMenuState.HostWaiting: SelectionUI.SetActive(true); selectAgentButton.interactable = false; selectHackerButton.interactable = false; UIText.text = "Waiting for connection...\nYour ip: " + PhaNetworkManager .GetLocalHost() .ToString(); PhaNetworkManager.Ishost = true; break; case MainMenuState.ClientWaiting: if (VerifyIP(ipInput.text)) { //If the ip is a valid ip, set the api's target ip and send the connection message to it. PhaNetworkingAPI.targetIP = new StringBuilder(ipInput.text); PhaNetworkManager.Singleton.SendConnectionMessage(PhaNetworkingAPI.targetIP); PhaNetworkManager.Singleton.SendConnectionMessage(PhaNetworkingAPI.targetIP); PhaNetworkManager.Singleton.SendConnectionMessage(PhaNetworkingAPI.targetIP); //Settings for splash screen. SelectionUI.SetActive(true); selectAgentButton.interactable = false; selectHackerButton.interactable = false; UIText.text = "Waiting for reply...\n"; PhaNetworkManager.Ishost = false; } else { ipInput.text = "INVALID IP"; SetMenuState(MainMenuState.Menu); } break; case MainMenuState.CharacterSelect: SelectionUI.SetActive(true); selectAgentButton.interactable = true; selectHackerButton.interactable = true; UIText.text = "Connection confirmed, Select your character."; break; case MainMenuState.InGame: //Load the scene if both players have decided on their choice. SceneManager.LoadSceneAsync(PhaNetworkManager.Singleton.OnlineSceneName); break; default: break; } }