// PVP public void GotoPVPGame() { // @request 상대 UID 요청 StructRequest request = new StructRequest(); request.uid = mUserData.uid; request.request_url = URL.GetOpponentData.ToString(); void mCallBack(StructRequest response) { if (response.parameter != null) { if (response.parameter["opponentUid"] != null) { StructUserData user_data = mUserData; user_data.opponentUid = response.parameter["opponentUid"]; // 발급받은 UID는 로컬 데이터에 저장 JsonFactory.Write(Const.UserDataName, user_data); // 상대 클라이언트가 준비되었다면 게임 실행 SceneManager.LoadScene("GameScene"); } } } mNet.SetCallBack(mCallBack); mNet.RequestMsg(request); }
private void Update() { // @request 위치 전달/수신 Vector3 player1_pos = player1.transform.position; StructRequest request = new StructRequest(); request.uid = Const.UserData.uid; request.request_url = URL.SyncMovement.ToString(); request.parameter = new Dictionary <string, string>(); request.parameter["posX"] = player1.gameObject.transform.position.x.ToString(); request.parameter["posY"] = player1.gameObject.transform.position.y.ToString(); request.parameter["opponentUid"] = Const.UserData.opponentUid; void CallBack(StructRequest response) { if (!response.parameter.ContainsKey("opponentPosX")) { return; } // 받은 player2 위치 적용 float x = float.Parse(response.parameter["opponentPosX"]); float y = float.Parse(response.parameter["opponentPosY"]); Vector3 next_pos = new Vector3(x, y, player2.transform.position.z); EDirection dir = JUtils.GetDir(next_pos, player2.transform.position); player2.Move(dir); player2.transform.position = next_pos; } mNEt.SetCallBack(CallBack); mNEt.RequestMsg(request); }
void SetSocket() { // 소켓 설치 gameObject.AddComponent <ClientNet>(); mNet = GetComponent <ClientNet>(); // @request UID 발급 신청 StructRequest request = new StructRequest(); request.uid = ""; request.request_url = URL.InitUser.ToString(); void CallBack(StructRequest response) { if (response.uid != null) { mUserData = new StructUserData(); mUserData.uid = response.uid; mUserData.isPVPMode = true; string map_data = response.parameter["mapData"]; string item_data = response.parameter["itemData"]; // 맵 데이터에 저장 JsonFactory.WriteString(Const.MapDataName, map_data); mUserData.itemData = item_data; } } mNet.SetCallBack(CallBack); mNet.RequestMsg(request); }
// Start is called before the first frame update void Start() { mNet = new ClientNet(); mNet.SetCallBack(mCallBack); }