public void LoadGameData() //Загрузка игровых данных из файловой системы устройства { if (File.Exists(save_path + "data.json")) { gameData = JsonUtility.FromJson <game_data>(File.ReadAllText(save_path + "data.json")); Debug.Log("Game data was successfuly loaded!"); } }
// Use this for initialization void Start() { // // TODO: UNCOMMENT WHEN GOING TO PROD... // //GameObject go = GameObject.Find("SocketIO_AWS"); GameObject go = GameObject.Find("SocketIO"); _gameball = GetComponent <gameBall>(); user_inst = Camera.main.GetComponent <player>(); socket = go.GetComponent <SocketIOComponent>(); balldata = new Dictionary <string, string>(); theyWin = GameObject.Find("THEY_WIN"); socket.On("client_connect", (SocketIOEvent e) => { //send down information they need for multiplayer.. perferably how many players are playing.. highscore data.. any news? json_user_data DANK = JsonUtility.FromJson <json_user_data>(e.data.ToString()); high_score_data realDank = JsonUtility.FromJson <high_score_data>(DANK.dank); Dictionary <string, string> data = new Dictionary <string, string>(); data["user_joined"] = user_inst.askForASpot(); socket.Emit("cookieCheck", new JSONObject(data)); }); socket.On("confirm_player", (SocketIOEvent hb) => { current_game current = JsonUtility.FromJson <current_game>(hb.data.ToString()); user_inst.loadAPlayer(current.spot); socket.On(current.gameID + "gameball", (SocketIOEvent gb) => { if (!_gameball.isGameStarted) { //Start the game with gb information iv_class iv = JsonUtility.FromJson <iv_class>(gb.data.ToString()); isHost = iv.server_host; if (!isHost) { socket.On(current.gameID + "end_game", (SocketIOEvent endGame) => { end_game_msg eg = JsonUtility.FromJson <end_game_msg>(endGame.data.ToString()); _gameball.displayMessageFromServer(eg.msg); }); } else { socket.On(current.gameID + "start_the_game", (SocketIOEvent startGame) => { //TODO: COULD SEND MORE DATA BACK BUT FOR NOW WE JUST TELL THE HOST TO START GAME _gameball.startKeepingScore(); }); } _gameball.startTheGame(iv.IV_0, iv.IV_1, iv.IV_2, isHost); if (isHost) { InvokeRepeating("updateBall", 0f, 0.05f); } } }); socket.On(current.gameID + "gameball_ball", (SocketIOEvent gb) => { if (!isHost) { ball_position ball = JsonUtility.FromJson <ball_position>(gb.data.ToString()); _gameball.updateBallPos(ball.x, ball.y, ball.z, ball.vx, ball.vy, ball.vz); } }); socket.On(current.gameID + "update_score", (SocketIOEvent sc) => { score_msg _score = JsonUtility.FromJson <score_msg>(sc.data.ToString()); StartCoroutine(_gameball.displayScore(_score.score)); }); socket.On(current.gameID + "restart_Game", (SocketIOEvent gb) => { _gameball.restartTheGame(); }); socket.On(current.gameID, (SocketIOEvent data) => { game_data game = JsonUtility.FromJson <game_data>(data.data.ToString()); for (int i = 1; i <= 32; i++) { GameObject item = GameObject.Find(i.ToString()); item.GetComponent <MeshRenderer>().enabled = true; item.GetComponent <MeshCollider>().isTrigger = false; item.GetComponent <MeshCollider>().convex = false; item.GetComponent <MeshCollider>().enabled = true; foreach (Transform _childO in item.transform) { _childO.GetComponent <MeshRenderer>().material = outSide; } } for (int i = 0, len = game.players.Length; i < len; i++) { if (game.players[i] != user_inst.target.transform.name) { GameObject otherplayer = GameObject.Find(game.players[i]); otherplayer.GetComponent <MeshRenderer>().enabled = false; otherplayer.GetComponent <MeshCollider>().convex = false; otherplayer.GetComponent <MeshCollider>().isTrigger = false; otherplayer.GetComponent <MeshCollider>().enabled = false; //TODO: NEED TO PUT A WIN OBJECT BEHIND THE PLAYER SO MAKE A PREFAB foreach (Transform _childO in otherplayer.transform) { _childO.GetComponent <MeshRenderer>().material = greenColor; } if (isHost) { theyWin.transform.position = otherplayer.transform.position * 1.48f; theyWin.transform.LookAt(otherplayer.transform); } } else { GameObject otherplayer = GameObject.Find(game.players[i]); otherplayer.GetComponent <MeshRenderer>().enabled = false; otherplayer.GetComponent <MeshCollider>().convex = true; otherplayer.GetComponent <MeshCollider>().isTrigger = true; foreach (Transform _childO in otherplayer.transform) { _childO.GetComponent <MeshRenderer>().material = playerColor; } } } }); }); }