コード例 #1
0
    // 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);
    }
コード例 #2
0
    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);
    }
コード例 #3
0
    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);
    }
コード例 #4
0
 // Start is called before the first frame update
 void Start()
 {
     mNet = new ClientNet();
     mNet.SetCallBack(mCallBack);
 }