/// <summary> /// ゲーム開始前のMessage処理 /// </summary> /// <param name="msg"></param> void updateMessage(Message msg) { switch (msg.Type) { case Message.Join: // 接続成功 client_.SendMessage(Message.GameStart, "Niwako"); break; case Message.GameStart: // ゲーム開始 { var data = JsonUtility.FromJson <GameStartMessage>(msg.Data); users_ = data.Users; foreach (var user in users_) { var obj = createNiwatori(user); niwatoriList_.Add(obj); // プレイヤーの操作するオブジェクトの初期化 if (user.Id == data.Player.Id) { TrackingCamera.transform.SetParent(obj.transform, false); Player.Init(obj); } } GameStarted = true; } break; } }
public void Send(string type, object data) { client.SendMessage(type, data); }
void updateMessageForGameStarted(Message msg) { switch (msg.Type) { case Message.NPCAction: { var data = JsonUtility.FromJson <NPCAction>(msg.Data); _npcs = data.npc; for (int i = 0; i < _npcs.Count; i++) { var npcID = FindNPC(_npcs[i].NPC_ID); if (npcID != null) { npcID.Action = _npcs[i].Action; npcID.GetAction(npcID.Action); Send(Message.UpdateNPCDate, new UpdateNPCDate { NPC_ID = npcID.NPC_ID, NPC_pos = npcID.setPos() }); } } } break; case Message.UpdateNPCDate: { var data = JsonUtility.FromJson <UpdateNPCDate>(msg.Data); var npc = FindNPC(data.NPC_ID); //Debug.Log(data.NPC_pos); //print(data.NPC_pos.x); //print(data.NPC_pos.y); //print(data.NPC_pos.z); npc.X = data.NPC_pos.x; npc.Y = data.NPC_pos.y; npc.Z = data.NPC_pos.z; } break; case Message.Join: _client.SendMessage(Message.GameStart, "Human_NJ"); break; case Message.GameStart: { var data = JsonUtility.FromJson <GameStartMessage>(msg.Data); if (GameStarted) { //誰もいます var human_nj = FindHumanNJ(data.Player.ID); if (human_nj == null) { _users.Add(data.Player); human_nj_List.Add(createPlayer(data.Player)); } } else { //誰もいません _users = data.Users; foreach (var user in _users) { var obj = createPlayer(user); human_nj_List.Add(obj); if (user.ID == data.Player.ID) { MainCamera.transform.SetParent(obj.transform, false); MainCamera.transform.localPosition = new Vector3(0, (float)0.0163, (float)-0.004899); GameEngineID = obj.UserID; Player.Init(obj); } } _npcs = data.npc; foreach (var npc in _npcs) { var n = createNPC(npc); npc_List.Add(n); } } GameStarted = true; } break; case Message.ExitUser: { var data = JsonUtility.FromJson <ExitUserMessage>(msg.Data); var user = _users.First(u => u.WsName == data.WsName); var human_nj = human_nj_List.First(v => v.UserID == user.ID); human_nj_List.Remove(human_nj); Destroy(human_nj.gameObject); } break; case Message.UpdatePlayerStatic: { var data = JsonUtility.FromJson <UpdatePlayerStatic__Massage>(msg.Data); var human_nj = FindHumanNJ(data.UserID); if (data.UserID != Player.Human_NJ.UserID) { human_nj.X = data.UserPos.x; //Global human_nj.Y = data.UserPos.y; //Global human_nj.Z = data.UserPos.z; //Global human_nj.MoveV = data.MoveV; human_nj.MoveH = data.MoveH; human_nj.IsWalkStop = data.IsWalkStop; human_nj.Rotation = data.UserRotation; //Global human_nj.IsSneak = data.IsSneak; human_nj.SneakName = data.SneakName; human_nj.UserViewRotation = data.UserViewRotation; human_nj.UpdateOtherPlayerStatic(human_nj.MoveV, human_nj.MoveH, human_nj.IsWalkStop); //Local human_nj.tokuten = data.tokuten; } string tokutenbannText = "得点板\n"; for (int i = 0; i < human_nj_List.Count; i++) { tokutenbannText += human_nj_List[i].UserID + " : " + human_nj_List[i].tokuten + "点\n"; } human_nj.UpdateTokutenbann(tokutenbannText); } break; case Message.ActionShot: { var data = JsonUtility.FromJson <ActionShotMessage>(msg.Data); var human_nj = FindHumanNJ(data.UserID); human_nj.Shot(); } break; case Message.ActionSword: { var data = JsonUtility.FromJson <ActionSwordMessage>(msg.Data); var human_nj = FindHumanNJ(data.UserID); human_nj.Giri(); } break; case Message.ActionSkill: { var data = JsonUtility.FromJson <ActionSkillMessage>(msg.Data); var human_nj = FindHumanNJ(data.UserID); human_nj.ActionSkill(); } break; case Message.ActionSkill2: { var data = JsonUtility.FromJson <ActionSkill2Message>(msg.Data); var human_nj = FindHumanNJ(data.UserID); human_nj.ActionSkill2(); } break; case Message.ActionDamge: { var data = JsonUtility.FromJson <ActionDmgMessage>(msg.Data); var human_nj = FindHumanNJ(data.UserID); if (human_nj.Hp > 0) { human_nj.Damage(data.Dmg); } human_nj.tokuten = human_nj.GetTokuten(); var killer = FindHumanNJ(data.killID); if (human_nj.IsDead) { killer.tokuten = killer.tokuten + human_nj.tokuten + 1; killer.SetTokuten(killer.tokuten); if (killer.tokuten >= 100) { Send(Message.GameEnd, new GameEndMessage { UserID = killer.UserID }); } StartCoroutine(human_nj.Dead()); if (human_nj.UserID == Player.Human_NJ.UserID) { _client.Dispose(); GameStarted = false; MainCamera.transform.SetParent(null, false); foreach (var n in human_nj_List) { Destroy(n.gameObject); } human_nj_List.Clear(); } human_nj_List.Remove(human_nj); } killer.MainUserAction(); //killer.UpdateOtherPlayerStatic(killer.MoveV, killer.MoveH, killer.IsWalkStop);//Local } break; case Message.GameEnd: { var data = JsonUtility.FromJson <GameEndMessage>(msg.Data); var human_nj = FindHumanNJ(data.UserID); _client.Dispose(); GameStarted = false; MainCamera.transform.SetParent(null, false); foreach (var n in human_nj_List) { Destroy(n.gameObject); } human_nj_List.Clear(); ExitBtn.SetActive(true); Retry.SetActive(false); Cursor.lockState = CursorLockMode.None; } break; } }