public static void Process(PlayerPosition packet) { Main clientInst = InstanceKeeper.GetMainClient(); foreach (GameObject gameobject in clientInst.playerShips) { ZeroGPlayer playerName = gameobject.GetComponent <ZeroGPlayer>(); try { if (playerName.PlayerName == packet.PlayerName) { gameobject.GetComponentInChildren <PlayerObjectConfiguration>().GetShip().transform.position = ConvertCustomTypes.ConvertVectorOriginal(packet.Position); gameobject.GetComponentInChildren <PlayerObjectConfiguration>().GetShip().transform.rotation = ConvertCustomTypes.ConvertQuaternionOriginal(packet.Rotation); } } catch (Exception ex) { WriteLog.Error("Error while processing remote player movement: " + ex.Message + ex.StackTrace); } } }
public static void Postfix(PlayerCanvas __instance) { if (Main.IsConnected) { try { WriteLog.General("Da parent GameObject is " + __instance.gameObject.gameObject.transform.parent.gameObject.name + " in scene " + __instance.gameObject.scene.name); foreach (GameObject gameObject in SceneManager.GetActiveScene().GetRootGameObjects()) { WriteLog.General("Current GameObject is " + gameObject.name + " in scene " + gameObject.scene.name); if (gameObject.name == "AITargets") { UnityEngine.Object.Destroy(gameObject); } if (gameObject.name == "Players") { WriteLog.General("Found players gameobject"); List <string> playersList = new List <string>(); Main clientInst = InstanceKeeper.GetMainClient(); playersList = clientInst.opponentsNames; List <string> addedNames = new List <string>(); int count = gameObject.transform.GetChildCount(); WriteLog.General("Found " + count + " children"); for (int counter = 0; counter < count; counter++) { WriteLog.General("Current player : " + counter); foreach (Component component in gameObject.transform.GetChild(counter).gameObject.GetComponentsInChildren <Component>()) { WriteLog.General("TEMP, for testing: found sub-component called " + component.name + " of type " + component.GetType().Name + " and pos " + component.transform.position); } OnShipUI playerUI = gameObject.transform.GetChild(counter).gameObject.GetComponentInChildren <OnShipUI>(); if (playerUI == null /* && gameObject.transform.GetChild(counter).gameObject.name=="Player (Clone)"*/) { WriteLog.General("Found an AI player"); gameObject.transform.GetChild(counter).gameObject.GetComponentInChildren <VehicleBehaviour>().SetAI(false); foreach (string name in playersList) { if (!addedNames.Contains(name) && (File.ReadAllText("username.txt") != name)) { WriteLog.General("Adding player: " + name); gameObject.transform.GetChild(counter).gameObject.AddComponent <ZeroGPlayer>(); ZeroGPlayer playerLocalName = gameObject.transform.GetChild(counter).gameObject.GetComponent <ZeroGPlayer>(); playerLocalName.PlayerName = name; addedNames.Add(name); goto Endforeach; } } Endforeach :; clientInst.playerShips.Add(gameObject.transform.GetChild(counter).gameObject); } } InstanceKeeper.SetMainClient(clientInst); } } } catch (Exception ex) { WriteLog.Error("Error while trying to get GameObject, : " + ex.Message + ex.StackTrace); } } else { } }