private void SetupAllEvents() { On("open", (E) => { Debug.Log("Connection made to the server"); }); On("registerGame", (E) => { Debug.Log("Registered to the server"); NetworkIdentity ni = GetComponent <NetworkIdentity>(); ni.SetSocketReference(this); }); On("start", (E) => { Debug.Log("Start"); //NetworkIdentity ni = GetComponent<NetworkIdentity>(); //ni.GetSocket().Emit("hello"); //socket.Emit("hello"); //socket.Emit("hello2", new JSONObject(JsonUtility.ToJson("Hello from VR"))); }); On("event", (E) => { Debug.Log("Received greeting from app; answering now..."); //socket.Emit("register", new JSONObject(JsonUtility.ToJson("Hello from VR"))); }); }
private void SetupEvents() { On("open", (E) => { Debug.Log("Connection mate to the server"); }); On("register", (E) => { ClientID = E.data["id"].ToString().RemoveQuotes(); Debug.LogFormat("Our Client's ID ({0})", ClientID); }); On("spawn", (E) => { string id = E.data["id"].ToString().Replace("\"", string.Empty).Trim(); GameObject go = Instantiate(playerPrefab, networkContainer); go.name = string.Format("Payer({0})", id); NetworkIdentity networkIdentity = go.GetComponent <NetworkIdentity>(); networkIdentity.SetControllerID(id); networkIdentity.SetSocketReference(this); serverObjects.Add(id, networkIdentity); }); On("disconected", (E) => { string id = E.data["id"].ToString(); GameObject go = serverObjects[id].gameObject; Destroy(go); serverObjects.Remove(id); }); On("updatePosition", (E) => { string id = E.data["id"].ToString().RemoveQuotes(); float x = E.data["position"]["x"].f; float y = E.data["position"]["y"].f; //actualizo posicion del juador correspondiente NetworkIdentity networkIdentity = serverObjects[id]; networkIdentity.transform.position = new Vector3(x, y, 0); }); On("updateRotation", (E) => { string id = E.data["id"].ToString().RemoveQuotes(); float tankRotation = E.data["tankRotation"].f; float barrelRotation = E.data["barrelRotation"].f; //actualizo la rotacion del jugador correspondiente NetworkIdentity networkIdentity = serverObjects[id]; networkIdentity.transform.localEulerAngles = new Vector3(0, 0, tankRotation); networkIdentity.GetComponent <PlayerManager>().SetBarrelRotation(barrelRotation); }); }
public void SetupEvents() { On("open", (E) => { Debug.Log("Connection made to the server"); }); On("register", (E) => { ClientID = E.data["id"].ToString().Replace('"', ' '); playerCount = playerCount + 1; Debug.LogFormat("Our client id = ({0})", ClientID); }); On("spawn", (E) => { // Handling spawn and passing data string id = E.data["id"].ToString().Replace('"', ' '); Transform tempTransform = spawns[int.Parse(E.data["playerCount"].ToString()) - 1]; //tempTransform.position = new Vector3(x, y, z); //tempTransform.rotation = Quaternion.Euler(new Vector3(0, 180)); GameObject go = Instantiate(int.Parse(E.data["playerCount"].ToString()) > 2 ? audiencePrefab : playerPrefab, tempTransform); go.name = String.Format("Player ({0})", id); NetworkIdentity ni = go.GetComponent <NetworkIdentity>(); ni.SetControllerID(id); ni.SetSocketReference(this); serverObjects.Add(id, ni); }); Disconnect(); On("disconnected", (E) => { // Handling disconnect string id = E.data["id"].ToString().Replace('"', ' '); GameObject go = serverObjects[id].gameObject; Destroy(go); // remove from scene serverObjects.Remove(id); // remove from memory }); On("updatePosition", (E) => { string id = E.data["id"].ToString().Replace('"', ' '); float x = E.data["position"]["x"].f; float y = E.data["position"]["y"].f; float z = E.data["position"]["z"].f; NetworkIdentity ni = serverObjects[id]; ni.transform.position = new Vector3(x, y, z); }); }
private void SetupEvents() { On("open", (Event) => { Debug.Log("Connection made to the server"); }); On("register", (Event) => { ClientID = Event.data["id"].ToString(); Debug.LogFormat("Our Client's ID ({0})", ClientID); }); On("spawn", (Event) => { Debug.Log("Player spawned"); string id = Event.data["id"].ToString(); Debug.Log(id); GameObject go = Instantiate(playerPrefab, networkContainer); go.name = string.Format("Player ({0})", id); NetworkIdentity ni = go.GetComponent <NetworkIdentity>(); ni.SetControllerID(id); ni.SetSocketReference(this); Debug.Log(ni); serverObjects.Add(id, ni); }); On("disconnected", (Event) => { Debug.Log("Player disconnected"); string id = Event.data["id"].ToString(); Debug.Log(id); GameObject go = serverObjects[id].gameObject; Debug.Log(go); Destroy(go); //Remove from game serverObjects.Remove(id); //Remove from memory }); On("updatePosition", (Event) => { Debug.Log("Position updated"); string id = Event.data["id"].ToString(); float x = Event.data["position"]["x"].f; float y = Event.data["position"]["y"].f; float z = Event.data["position"]["z"].f; NetworkIdentity ni = serverObjects[id]; ni.transform.position = new Vector3(x, y, z); }); }
private void SocketIOEventPawn(SocketIOEvent obj) { Debug.Log(obj); string id = obj.data["id"].ToString().RemoveQuotes(); GameObject go = Instantiate(playerPrefab, networkContainer); go.name = playerPrefab.name; NetworkIdentity ni = go.GetComponent <NetworkIdentity>(); ni.SetControllerID(id); ni.SetSocketReference(this); serverObject.Add(id, ni); if (id == ClientID) { _Camera._myClient = ni.transform; PanelManager._instance.BuidPanel <JoyStickControl>(PanelName.Joystick); } }
private void SetupEvents() { On("open", e => { Debug.Log("Connection made to the server"); }); On("register", e => { ClientID = e.data["id"].ToString(); Debug.LogFormat($"Our Client's ID {ClientID}"); }); On("spawn", e => { string id = e.data["id"].ToString(); GameObject go = Instantiate(playerPrefab, networkContainer); go.name = $"Player ({id})"; NetworkIdentity ni = go.GetComponent <NetworkIdentity>(); ni.SetControllerID(id); ni.SetSocketReference(this); serverObjects.Add(id, ni); }); On("disconnected", e => { string id = e.data["id"].ToString(); GameObject go = serverObjects[id].gameObject; Destroy(go); serverObjects.Remove(id); }); On("updatePosition", e => { string id = e.data["id"].ToString(); float x = e.data["position"]["x"].f; float y = e.data["position"]["y"].f; NetworkIdentity ni = serverObjects[id]; ni.transform.position = new Vector3(x, y, 0); }); }
private void setupEvents() { On("open", (E) => { Debug.Log("Connection made to the server"); }); On("register", (E) => { ClientID = E.data["id"].ToString().RemoveQuotes(); Debug.LogFormat("Our Clent's ID ({0})", ClientID); }); On("spawn", (E) => { string id = E.data["id"].ToString().RemoveQuotes(); GameObject go = Instantiate(playerPrefab, networkContainer); go.name = string.Format("Player ({0})", id); NetworkIdentity n1 = go.GetComponent <NetworkIdentity>(); n1.SetControllerID(id); n1.SetSocketReference(this); serverObjects.Add(id, n1); }); On("disconnected", (E) => { string id = E.data["id"].ToString().RemoveQuotes(); GameObject go = serverObjects[id].gameObject; Destroy(go); serverObjects.Remove(id); }); On("updatePosition", (E) => { string id = E.data["id"].ToString().RemoveQuotes(); float x = E.data["position"]["x"].f; float y = E.data["position"]["y"].f; float z = E.data["position"]["z"].f; NetworkIdentity n1 = serverObjects[id]; n1.transform.position = new Vector3(x, y, z); }); On("serverSpawn", (E) => { string name = E.data["name"].str; string id = E.data["id"].ToString().RemoveQuotes(); float x = E.data["position"]["x"].f; float y = E.data["position"]["y"].f; float z = E.data["position"]["z"].f; Debug.LogFormat("Server wants us to spawn a (0)", name); // Vector3 aux = new Vector3(x, y, z); // var actualPosition = new GameObject(); // actualPosition.transform.position = aux; if (!serverObjects.ContainsKey(id)) { ServerObjectData sod = serverSpawnables.GetObjectByName(name); var spawnedObject = Instantiate(sod.prefab, networkContainer); spawnedObject.transform.position = new Vector3(x, y, z); var ni = spawnedObject.GetComponent <NetworkIdentity>(); ni.SetControllerID(id); ni.SetSocketReference(this); if (name == "Shell") { float directionX = E.data["direction"]["x"].f; float directionY = E.data["direction"]["y"].f; float directionZ = E.data["direction"]["z"].f; float inclinacion = (directionY - y) / (directionX - x); //something with atan2 float rot = Mathf.Atan2(directionX, directionY) * Mathf.Rad2Deg; Vector3 currentRotation = new Vector3(0, 0, rot - 90); spawnedObject.transform.rotation = Quaternion.Euler(currentRotation); } serverObjects.Add(id, ni); } }); On("serverUnspawn", (E) => { string id = E.data["id"].ToString().RemoveQuotes(); NetworkIdentity n1 = serverObjects[id]; serverObjects.Remove(id); DestroyImmediate(n1.gameObject); }); }
private void setupEvents() { On("open", (E) => { Debug.Log("Connection made to the server"); }); On("register", (E) => { menu = GameObject.FindGameObjectWithTag("MainMenu"); ClientID = E.data["id"].ToString().RemoveQuotes(); Debug.LogFormat("Our Client's ID ({0})", ClientID); // local storage 에 유저 기록이 있는지 확인 후 없다면 menu.GetComponent <MenuManager>().setInputPanel("Enter your name"); }); On("setBlockChain", (E) => { Debug.Log("setBlockChain"); SetGenesis(E); Debug.Log("done setBlockChain"); }); On("initializeGameSetting", (E) => { //initialize game field LevelCanvas = GameObject.FindGameObjectWithTag("LevelCanvas"); UserInfo = LevelCanvas.transform.Find("UserInfo").gameObject; RollButton = LevelCanvas.transform.Find("RollButton").gameObject; gameManager = GameObject.FindGameObjectWithTag("GameManager"); landManager = GameObject.FindGameObjectWithTag("LandManager"); landManager.GetComponent <LandManager>().initializeLandSettings(); }); On("spawn", (E) => { //Handling all spawning all players //Passed Data string id = E.data["id"].ToString().RemoveQuotes(); int order = Int32.Parse(E.data["order"].ToString().RemoveQuotes()); string username = E.data["username"].ToString().RemoveQuotes(); GameObject go = Instantiate(playerPrefab, networkContainer); go.name = string.Format("Player ({0})", username); GameObject playerCharacter = go.transform.GetChild(order).gameObject; playerCharacter.SetActive(true); NetworkIdentity ni = go.GetComponent <NetworkIdentity>(); ni.GetPlayerManager().setAnimator(playerCharacter.GetComponent <Animator>()); Debug.Log("succesfully set animation"); ni.GetPlayerManager().setColor(playerCharacter.transform.Find("Color").gameObject.GetComponent <Renderer>().material.color); ni.GetPlayerManager().setUserInfo(UserInfo.transform.GetChild(order).gameObject, username); ni.GetPlayerManager().setAssets(Int32.Parse(E.data["assets"].ToString().RemoveQuotes())); ni.GetPlayerManager().setBalance(Int32.Parse(E.data["balance"].ToString().RemoveQuotes())); ni.SetControllerID(id); ni.SetSocketReference(this); serverObjects.Add(id, ni); Debug.Log("spawn complete"); }); On("disconnected", (E) => { string id = E.data["id"].ToString().RemoveQuotes(); GameObject go = serverObjects[id].gameObject; Destroy(go); //Remove from game serverObjects.Remove(id); //Remove from memory Debug.Log("distroy gameobject"); }); On("updatePosition", (E) => { Data D = SetNextBlock(E); string id = D.eventData["id"].ToString().RemoveQuotes(); float DIR = D.eventData["DIR"].f; // 방향주사위 눈 {0 :북 1 :동 2 : 남 3 :서 } float DIST = D.eventData["DIST"].f; // 거리주사위 눈 float x = D.eventData["x"].f; // 당장 가야할 dx (항상 양수) float y = D.eventData["y"].f; // 당장 가야할 dy (항상 양수) float dist = D.eventData["dist"].f; // 남은 이동 거리 횟수 Debug.Log("updatePosition"); NetworkIdentity ni = serverObjects[id]; gameManager.GetComponent <GameManager>().UpdatePosition(ni, DIR, x, y, dist, DIST); }); On("updateBalance", (E) => { Debug.Log("updateBalanece"); Data D = SetNextBlock(E); string sender = D.eventData["senderID"].ToString().RemoveQuotes(); string receiver = D.eventData["receiverID"].ToString().RemoveQuotes(); if (receiver != "") { NetworkIdentity receiver_ni = serverObjects[receiver]; receiver_ni.GetPlayerManager().Deposit(Int32.Parse(D.eventData["cost"].ToString().RemoveQuotes())); receiver_ni.GetPlayerManager().setAssets(Int32.Parse(D.eventData["receiverAssets"].ToString().RemoveQuotes())); } if (sender != "") { NetworkIdentity sender_ni = serverObjects[sender]; sender_ni.GetPlayerManager().Withdraw(Int32.Parse(D.eventData["cost"].ToString().RemoveQuotes())); sender_ni.GetPlayerManager().setAssets(Int32.Parse(D.eventData["senderAssets"].ToString().RemoveQuotes())); } }); On("updateLandData", (E) => { Debug.Log("call updateLandData"); Data D = SetNextBlock(E); Debug.Log("after SetNextBlock"); Debug.Log(D); landManager.GetComponent <LandManager>().updateLandData(D); }); // 1 Turn Start On("updateTurn", (E) => { Data D = SetNextBlock(E); string id = D.eventData["id"].ToString().RemoveQuotes(); int lapsToGo = Int32.Parse(D.eventData["lapsToGo"].ToString().RemoveQuotes()); gameManager.GetComponent <GameManager>().UpdateTurn(lapsToGo); NetworkIdentity ni = serverObjects[id]; ni.checkIsMyTurn(id); Debug.Log("updateTurn"); if (ni.IsMyTurn()) { Debug.Log("ISmYTURN"); RollButton.GetComponent <RollDices>().StartRoll(); } }); On("gameOver", (E) => { Debug.Log("On GAME OVER"); Data D = SetNextBlock(E); gameManager.GetComponent <GameManager>().UpdateTurn(0); gameManager.GetComponent <GameManager>().GameOver(D); }); On("GoBankrupt", (E) => { Data D = SetNextBlock(E); string id = D.eventData["id"].ToString().RemoveQuotes(); NetworkIdentity ni = serverObjects[id]; if (id == ClientID) { CallTurnOver(ni); } ni.GetPlayerManager().setAssets(0); ni.GetPlayerManager().setBalance(0); landManager.GetComponent <LandManager>().resetLandSettings(id); ni.GetPlayerManager().SetUserState("BANKRUPT"); }); On("loadGame", (E) => { Debug.Log("Switching to game"); StartCoroutine(SceneManagementManager.Instance.LoadLevel(SceneList.LEVEL, (levelName) => { SceneManagementManager.Instance.UnLoadLevel(SceneList.MAIN_MENU); }, this)); }); On("OnEnterGameLobby", (E) => { int index = Int32.Parse(E.data["index"].ToString().RemoveQuotes()); string id = E.data["id"].ToString().RemoveQuotes(); string name = E.data["name"].ToString().RemoveQuotes(); gameLobby.GetComponent <GameLobby>().OnEnterPlayer(index, id, name); }); On("lobbyUpdate", (E) => { OnGameStateChange.Invoke(E); }); On("changedReadyState", (E) => { int index = Int32.Parse(E.data["index"].ToString().RemoveQuotes()); //string id = E.data["id"].ToString().RemoveQuotes(); bool state = Boolean.Parse(E.data["state"].ToString().RemoveQuotes()); gameLobby.GetComponent <GameLobby>().setPlayerState(index, state); }); On("signupResult", (E) => { string result = E.data["result"].ToString().RemoveQuotes(); switch (result) { case "success": menu.GetComponent <MenuManager>().setLobbyPanel(); break; case "exist": menu.GetComponent <MenuManager>().setInputPanel("exist name!"); break; } }); }
// Update is called once per frame // public override void Update() // { // base.Update(); // } private void SetupEvents() { // Initial connection will connect just once, even if console displays TWO logs. io.On("open", (e) => { Debug.Log("connection made to server"); }); io.On("register", (e) => { ClientID = new JSONObject(e.data)["id"].str; Debug.LogFormat("Our Client's Id is ({0})", ClientID); }); io.On("spawn", (e) => { // handling all spawned players string id = new JSONObject(e.data)["id"].str; GameObject go = Instantiate(playerGO, networkContainer); go.name = string.Format("Player ({0})", id); NetworkIdentity ni = go.GetComponent <NetworkIdentity>(); ni.SetControllerID(id); ni.SetSocketReference(io.socketIO); serverObjects.Add(id, ni); }); io.On("disconnected", (e) => { string id = new JSONObject(e.data)["id"].str; Debug.Log("player disconnected"); GameObject go = serverObjects[id].gameObject; Destroy(go); // remove GO from game serverObjects.Remove(id); }); io.On("updateRotation", (e) => { JSONObject data = new JSONObject(e.data); string id = data["id"].ToString().RemoveQuotes(); float weaponRot = data["weaponRotation"].f; bool flipped = data["playerFlipped"].b; NetworkIdentity ni = serverObjects[id]; // Debug.Log("updating other rotations"); ni.GetComponent <PlayerManager>().SetWeaponRotation(weaponRot); }); io.On("updatePosition", (e) => { JSONObject data = new JSONObject(e.data); string id = data["id"].ToString().RemoveQuotes(); float x = data["position"]["x"].f; float y = data["position"]["y"].f; NetworkIdentity ni = serverObjects[id]; ni.transform.position = new Vector3(x, y, 0); }); io.On("serverSpawn", (e) => { JSONObject data = new JSONObject(e.data); string name = data["name"].str; string id = data["id"].ToString().RemoveQuotes(); float x = data["position"]["x"].f; float y = data["position"]["y"].f; if (!serverObjects.ContainsKey(id)) { // Debug.LogFormat("Server wants to spawn '{0}'", name); ServerObjectData sod = serverSpawnables.GetObjectByName(name); var spawnObject = Instantiate(sod.Prefab, networkContainer); spawnObject.transform.position = new Vector3(x, y, 0); NetworkIdentity ni = spawnObject.GetComponent <NetworkIdentity>(); ni.SetControllerID(id); ni.SetSocketReference(io.socketIO); // if projectile apply direction as well if (name == "Arrow_Regular") { float directionX = data["direction"]["x"].f; float directionY = data["direction"]["y"].f; string activator = data["activator"].ToString().RemoveQuotes(); float speed = data["speed"].f; float rot = Mathf.Atan2(directionY, directionX) * Mathf.Rad2Deg; Vector3 currentRotation = new Vector3(0, 0, rot + 180); spawnObject.transform.rotation = Quaternion.Euler(currentRotation); WhoActivatedMe whoActivatedMe = spawnObject.GetComponent <WhoActivatedMe>(); whoActivatedMe.SetActivator(activator); Projectile projectile = spawnObject.GetComponent <Projectile>(); projectile.Direction = new Vector2(directionX, directionY); projectile.Speed = speed; } serverObjects.Add(id, ni); } }); io.On("serverDespawn", (e) => { string id = new JSONObject(e.data)["id"].str; NetworkIdentity ni = serverObjects[id]; serverObjects.Remove(id); Destroy(ni.gameObject); }); io.On("playerDied", (e) => { string id = new JSONObject(e.data)["id"].str; NetworkIdentity ni = serverObjects[id]; ni.gameObject.SetActive(false); }); io.On("playerRespawn", (e) => { JSONObject data = new JSONObject(e.data); string id = data["id"].ToString().RemoveQuotes(); float x = data["position"]["x"].f; float y = data["position"]["y"].f; NetworkIdentity ni = serverObjects[id]; ni.transform.position = new Vector3(x, y, 0); ni.gameObject.SetActive(true); }); io.On("loadGame", (e) => { SceneManagementManager.Instance.LoadLevel(levelName: SceneList.LEVEL, onLevelLoaded: (levelName) => { SceneManagementManager.Instance.UnLoadLevel(SceneList.MAIN_MENU); }); }); }
private void setupEvents() { On("open", (E) => { Debug.Log("Connection made to the server"); }); On("register", (E) => { ClientID = E.data["id"].ToString().RemoveQuotes(); Debug.LogFormat("Our Client's ID ({0})", ClientID); }); On("spawn", (E) => { //Handling all spawning all players //Passed Data string id = E.data["id"].ToString().RemoveQuotes(); GameObject go = Instantiate(playerPrefab, networkContainer); go.name = string.Format("Player ({0})", id); NetworkIdentity ni = go.GetComponent <NetworkIdentity>(); ni.SetControllerID(id); ni.SetSocketReference(this); serverObjects.Add(id, ni); }); On("disconnected", (E) => { string id = E.data["id"].ToString().RemoveQuotes(); GameObject go = serverObjects[id].gameObject; Destroy(go); //Remove from game serverObjects.Remove(id); //Remove from memory }); On("updatePosition", (E) => { string id = E.data["id"].ToString().RemoveQuotes(); float x = E.data["position"]["x"].f; float y = E.data["position"]["y"].f; NetworkIdentity ni = serverObjects[id]; ni.transform.position = new Vector3(x, y, 0); }); On("updateRotation", (E) => { string id = E.data["id"].ToString().RemoveQuotes(); float tankRotation = E.data["tankRotation"].f; float barrelRotation = E.data["barrelRotation"].f; NetworkIdentity ni = serverObjects[id]; ni.transform.localEulerAngles = new Vector3(0, 0, tankRotation); ni.GetComponent <PlayerManager>().SetRotation(barrelRotation); }); On("updateAI", (E) => { string id = E.data["id"].ToString().RemoveQuotes(); float x = E.data["position"]["x"].f; float y = E.data["position"]["y"].f; float tankRotation = E.data["tankRotation"].f; float barrelRotation = E.data["barrelRotation"].f; NetworkIdentity ni = serverObjects[id]; if (ni.gameObject.activeInHierarchy) { StartCoroutine(AIPositionSmoothing(ni.transform, new Vector3(x, y, 0))); ni.GetComponent <AIManager>().SetTankRotation(tankRotation); ni.GetComponent <AIManager>().SetBarrelRotation(barrelRotation); } }); On("serverSpawn", (E) => { string name = E.data["name"].str; string id = E.data["id"].ToString().RemoveQuotes(); float x = E.data["position"]["x"].f; float y = E.data["position"]["y"].f; Debug.LogFormat("Server wants us to spawn a '{0}'", name); if (!serverObjects.ContainsKey(id)) { ServerObjectData sod = serverSpawnables.GetObjectByName(name); var spawnedObject = Instantiate(sod.Prefab, networkContainer); spawnedObject.transform.position = new Vector3(x, y, 0); var ni = spawnedObject.GetComponent <NetworkIdentity>(); ni.SetControllerID(id); ni.SetSocketReference(this); //If bullet apply direction as well if (name == "Bullet") { float directionX = E.data["direction"]["x"].f; float directionY = E.data["direction"]["y"].f; string activator = E.data["activator"].ToString().RemoveQuotes(); float speed = E.data["speed"].f; float rot = Mathf.Atan2(directionY, directionX) * Mathf.Rad2Deg; Vector3 currentRotation = new Vector3(0, 0, rot - 90); spawnedObject.transform.rotation = Quaternion.Euler(currentRotation); WhoActivatedMe whoActivatedMe = spawnedObject.GetComponent <WhoActivatedMe>(); whoActivatedMe.SetActivator(activator); Projectile projectile = spawnedObject.GetComponent <Projectile>(); projectile.Direction = new Vector2(directionX, directionY); projectile.Speed = speed; } serverObjects.Add(id, ni); } }); On("serverUnspawn", (E) => { string id = E.data["id"].ToString().RemoveQuotes(); NetworkIdentity ni = serverObjects[id]; serverObjects.Remove(id); DestroyImmediate(ni.gameObject); }); On("playerDied", (E) => { string id = E.data["id"].ToString().RemoveQuotes(); NetworkIdentity ni = serverObjects[id]; if (ni.GetComponent <AIManager>()) { ni.GetComponent <AIManager>().StopCoroutines(); } ni.gameObject.SetActive(false); }); On("playerRespawn", (E) => { string id = E.data["id"].ToString().RemoveQuotes(); float x = E.data["position"]["x"].f; float y = E.data["position"]["y"].f; NetworkIdentity ni = serverObjects[id]; ni.transform.position = new Vector3(x, y, 0); ni.gameObject.SetActive(true); }); On("loadGame", (E) => { Debug.Log("Switching to game"); SceneManagementManager.Instance.LoadLevel(SceneList.LEVEL, (levelName) => { SceneManagementManager.Instance.UnLoadLevel(SceneList.MAIN_MENU); }); }); On("lobbyUpdate", (E) => { OnGameStateChange.Invoke(E); }); }
private void setupEvents() { On("open", (E) => { Debug.Log("Connection Made To The Server"); }); On("register", (E) => { ClientID = E.data["id"].ToString().Trim('"'); Debug.LogFormat("Our client's ID ({0})", ClientID); }); On("spawn", (E) => { //Handling all spawning all players //Passed Data string id = E.data["id"].ToString().Trim('"'); GameObject go = Instantiate(playerPrefab, networkContainer); go.name = string.Format("Player ({0})", id); NetworkIdentity ni = go.GetComponent <NetworkIdentity>(); ni.SetControllerID(id); ni.SetSocketReference(this); serverObjects.Add(id, ni); }); On("disconected", (E) => { string id = E.data["id"].ToString().Trim('"'); GameObject go = serverObjects[id].gameObject; Destroy(go); //Remove from game serverObjects.Remove(id); //Remove from memory Debug.Log("disconected"); }); On("updatePosition", (E) => { string id = E.data["id"].ToString().Trim('"'); float x = E.data["position"]["x"].f; float y = E.data["position"]["y"].f; NetworkIdentity ni = serverObjects[id]; ni.transform.position = new Vector3(x, y, 0); }); On("updateRotation", (E) => { string id = E.data["id"].ToString().Trim('"'); float tankRotation = E.data["tankRotation"].f; float barrelRotation = E.data["barrelRotation"].f; NetworkIdentity ni = serverObjects[id]; ni.transform.localEulerAngles = new Vector3(0, 0, tankRotation); ni.GetComponent <PlayerManager>().SetRotation(barrelRotation); }); On("serverSpawn", (E) => { string name = E.data["name"].str; string id = E.data["id"].ToString().Trim('"'); float x = E.data["position"]["x"].f; float y = E.data["position"]["y"].f; Debug.LogFormat("Server wants us to spawn a '{0}", name); if (!serverObjects.ContainsKey(id)) { ServerObjectData sod = serverSpawnables.GetObjectByName(name); var spwanedObject = Instantiate(sod.Prefab, networkContainer); spwanedObject.transform.position = new Vector3(x, y, 0); var ni = spwanedObject.GetComponent <NetworkIdentity>(); ni.SetControllerID(id); ni.SetSocketReference(this); //If bullet applay direction as well if (name == "Bullet") { float directionX = E.data["direction"]["x"].f; float directionY = E.data["direction"]["y"].f; float rot = Mathf.Atan2(directionY, directionX) * Mathf.Rad2Deg; Vector3 currentRotation = new Vector3(0, 0, rot - 90); spwanedObject.transform.rotation = Quaternion.Euler(currentRotation); } serverObjects.Add(id, ni); } }); On("serverUnspawn", (E) => { string id = E.data["id"].ToString().Trim('"'); NetworkIdentity ni = serverObjects[id]; serverObjects.Remove(id); DestroyImmediate(ni.gameObject); }); }
private void SetupEvents() { On("open", (e) => { Debug.Log("Connected to server"); }); On("register", (e) => { ClientID = e.data["id"].ToString().RemoveQuotes(); Debug.LogFormat("My client ID ({0})", ClientID); }); On("spawn", (e) => { string id = e.data["id"].ToString().RemoveQuotes(); GameObject go = Instantiate(playerPrefab, networkContainer); go.name = string.Format("Player ({0})", id); NetworkIdentity ni = go.GetComponent <NetworkIdentity>(); ni.SetCotrollerID(id); ni.SetSocketReference(this); serverObjects.Add(id, ni); //Enabling Camera if (ni.IsControlling()) { go.transform.Find("Third Person Camera").gameObject.SetActive(true); } Debug.LogFormat("I have spawned"); }); On("disconnected", (e) => { string id = e.data["id"].ToString().RemoveQuotes(); GameObject go = serverObjects[id].gameObject; Destroy(go); serverObjects.Remove(id); Debug.LogFormat("Disconnected"); }); On("updatePosition", (e) => { string id = e.data["id"].ToString().RemoveQuotes(); float x = float.Parse(e.data["position"]["x"].str, CultureInfo.InvariantCulture.NumberFormat); float y = float.Parse(e.data["position"]["y"].str, CultureInfo.InvariantCulture.NumberFormat); float z = float.Parse(e.data["position"]["z"].str, CultureInfo.InvariantCulture.NumberFormat); NetworkIdentity ni = serverObjects[id]; ni.transform.position = new Vector3(x, y, z); }); On("updateRotation", (e) => { string id = e.data["id"].ToString().RemoveQuotes(); float rotation = float.Parse(e.data["rotation"].str, CultureInfo.InvariantCulture.NumberFormat); NetworkIdentity ni = serverObjects[id]; ni.transform.localEulerAngles = new Vector3(0, rotation, 0); }); On("updateAI", (e) => { string id = e.data["id"].ToString().RemoveQuotes(); float x = float.Parse(e.data["position"]["x"].str, CultureInfo.InvariantCulture.NumberFormat); float y = float.Parse(e.data["position"]["y"].str, CultureInfo.InvariantCulture.NumberFormat); float z = float.Parse(e.data["position"]["z"].str, CultureInfo.InvariantCulture.NumberFormat); float rotation = float.Parse(e.data["rotation"].str, CultureInfo.InvariantCulture.NumberFormat); NetworkIdentity ni = serverObjects[id]; if (ni.gameObject.activeInHierarchy) { StartCoroutine(AIPositionSmoothing(ni.transform, new Vector3(x, y, z))); ni.GetComponent <EnemyManager>().SetRotation(rotation); } }); On("serverSpawn", (e) => { string name = e.data["name"].str; string id = e.data["id"].ToString().RemoveQuotes(); float x = float.Parse(e.data["position"]["x"].ToString(), CultureInfo.InvariantCulture.NumberFormat); float y = float.Parse(e.data["position"]["y"].ToString(), CultureInfo.InvariantCulture.NumberFormat); float z = float.Parse(e.data["position"]["z"].ToString(), CultureInfo.InvariantCulture.NumberFormat); Debug.LogFormat("Server wants us to spawn a '{0}'", name); if (!serverObjects.ContainsKey(id)) { ServerObjectData sod = serverSpawnables.GetObjectByName(name); GameObject spawnedObject = Instantiate(sod.prefab, networkContainer); spawnedObject.transform.position = new Vector3(x, y, z); NetworkIdentity ni = spawnedObject.GetComponent <NetworkIdentity>(); ni.SetCotrollerID(id); ni.SetSocketReference(this); Debug.Log(spawnedObject.transform.position); //if bullet apply direction as well // if(name == "Bullet") // { // float directionX = float.Parse(e.data["direction"]["x"].str, CultureInfo.InvariantCulture.NumberFormat); // float directionY = float.Parse(e.data["direction"]["y"].str, CultureInfo.InvariantCulture.NumberFormat); // string activator = e.data["activator"].ToString().RemoveQuotes(); // float speed = float.Parse(e.data["speed"].str, CultureInfo.InvariantCulture.NumberFormat); // float rot = Mathf.Atan2(directionY, directionX) * Mathf.Rad2Deg; // Vector3 currentRotation = new Vector3(0, 0, rot - 90); // spawnedObject.transform.rotation = Quaternion.Euler(currentRotation); // WhoActivateMe whoActivateMe = spawnedObject.GetComponent<WhoActivateMe>(); // whoActivateMe.SetActivator(activator); // Projectile projectile = spawnedObject.GetComponent<Projectile>(); // projectile.Direction = new Vector2(directionX, directionY); // projectile.Speed = speed; // } serverObjects.Add(id, ni); } }); On("serverUnspawn", (e) => { string id = e.data["id"].ToString().RemoveQuotes(); NetworkIdentity ni = serverObjects[id]; serverObjects.Remove(id); DestroyImmediate(ni.gameObject); }); On("playerDied", (e) => { string id = e.data["id"].ToString().RemoveQuotes(); NetworkIdentity ni = serverObjects[id]; ni.gameObject.SetActive(false); }); On("loadGame", (e) => { Debug.Log("Switching to game"); SceneManagementManager.Instance.LoadLevel(SceneList.LEVEL, (levelName) => { SceneManagementManager.Instance.UnloadLevel(SceneList.MAIN_MENU); }); }); On("lobbyUpdate", (e) => { OnGameStateChange.Invoke(e); //I prefer use Invoke to make difference between Action and function }); }
private void SetUpEvents() { //open prints two times, but this is bug with the socket.io asset //the connection does not get duplicated so it does not matter much. On("open", (e) => { Debug.Log("Connection Made with Server"); }); On("register", (e) => { ClientID = e.data["id"].ToString().RemoveQuotes();//.RemoveQuotes(); Debug.LogFormat("Our Client's ID is ({0})", ClientID); }); On("spawn", (e) => { string id = e.data["id"].ToString().RemoveQuotes(); GameObject go = Instantiate(playerPrefab, networkContainer); go.name = string.Format("Player ({0})", id); //Network Identity: NI : ni NetworkIdentity ni = go.GetComponent <NetworkIdentity>(); ni.SetControllerID(id); ni.SetSocketReference(this); serverObjects.Add(id, ni); }); On("disconnected", (e) => { string id = e.data["id"].ToString().RemoveQuotes(); GameObject go = serverObjects[id].gameObject; Destroy(go); serverObjects.Remove(id); }); On("updatePosition", (e) => { string id = e.data["id"].ToString().RemoveQuotes(); float x = e.data["position"]["x"].f; float y = e.data["position"]["y"].f; NetworkIdentity ni = serverObjects[id]; ni.transform.position = new Vector3(x, y, 0); }); On("updateRotation", (e) => { string id = e.data["id"].ToString().RemoveQuotes(); float tankRotation = e.data["tankRotation"].f; float barrelRotation = e.data["barrelRotation"].f; NetworkIdentity ni = serverObjects[id]; ni.transform.localEulerAngles = new Vector3(0, 0, tankRotation); ni.GetComponent <PlayerManager>().SetRotation(barrelRotation); }); On("serverSpawn", (e) => { string name = e.data["name"].str; string id = e.data["id"].ToString().RemoveQuotes(); float x = e.data["position"]["x"].f; float y = e.data["position"]["y"].f; Debug.LogFormat("Server wants us to spawn a '{0}'", name); if (!serverObjects.ContainsKey(id)) { ServerObjectData sod = serverSpawnables.GetObjectByName(name); var spawnedObject = Instantiate(sod.Prefab, networkContainer); spawnedObject.transform.position = new Vector3(x, y, 0); var ni = spawnedObject.GetComponent <NetworkIdentity>(); ni.SetControllerID(id); ni.SetSocketReference(this); //If bullet, apply direction as well if (name == "Bullet") { float directionX = e.data["direction"]["x"].f; float directionY = e.data["direction"]["y"].f; float rot = Mathf.Atan2(directionY, directionX) * Mathf.Rad2Deg; Vector3 currentRotation = new Vector3(0, 0, rot - 90); spawnedObject.transform.rotation = Quaternion.Euler(currentRotation); } serverObjects.Add(id, ni); } }); On("serverUnspawn", (e) => { string id = e.data["id"].ToString().RemoveQuotes(); NetworkIdentity ni = serverObjects[id]; serverObjects.Remove(id); DestroyImmediate(ni.gameObject); }); }