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 AvoidOpponent(ref Dictionary <int, float> near_index_list) { Character charac = mCharacterManager.GetPlayer(); EDirection dir = JUtils.GetDir(this.transform.position, charac.transform.position); int next_index = 0; switch (dir) { case EDirection.UP: next_index = mCurIndex - Const.TileCntX; break; case EDirection.Down: next_index = mCurIndex + Const.TileCntX; break; case EDirection.Right: next_index = mCurIndex - 1; break; case EDirection.Left: next_index = mCurIndex + 1; break; } int[] keys = new int[near_index_list.Count]; near_index_list.Keys.CopyTo(keys, 0); int iCount = keys.Length; for (int i = 0; i < iCount; ++i) { near_index_list[keys[i]] += 1; } if (near_index_list.ContainsKey(next_index)) { near_index_list[next_index] += -1f; } }