Example #1
0
        //WSAD移动
        public void RequireMove(NFGUID objectID, int nType, UnityEngine.Vector3 vPos, UnityEngine.Vector3 vTar)
        {
            NFMsg.ReqAckPlayerMove xData = new NFMsg.ReqAckPlayerMove();
            xData.mover    = mHelpModule.NFToPB(objectID);
            xData.moveType = nType;
            xData.moveType = 0;
            xData.speed    = 4f;
            xData.time     = 0;

            NFMsg.Vector3 xNowPos = new NFMsg.Vector3();
            xNowPos.x = vPos.x;
            xNowPos.y = vPos.y;
            xNowPos.z = vPos.z;
            xData.source_pos.Add(xNowPos);

            NFMsg.Vector3 xTargetPos = new NFMsg.Vector3();
            xTargetPos.x = vTar.x;
            xTargetPos.y = vTar.y;
            xTargetPos.z = vTar.z;
            xData.target_pos.Add(xTargetPos);

            mxBody.SetLength(0);
            xData.WriteTo(mxBody);

            SendMsg(NFMsg.EGameMsgID.EGMI_REQ_MOVE, mxBody);

            //为了表现,客户端先走,后续同步
        }
Example #2
0
        public void OnPlayerMove(UInt16 id, MemoryStream stream)
        {
            NFMsg.MsgBase xMsg = NFMsg.MsgBase.Parser.ParseFrom(stream);

            NFMsg.ReqAckPlayerMove xData = NFMsg.ReqAckPlayerMove.Parser.ParseFrom(xMsg.msg_data);

            if (xData.target_pos.Count <= 0)
            {
                return;
            }

            NFGUID tar = mHelpModule.PBToNF(xData.mover);

            if (tar == mLoginModule.mRoleID)
            {
                return;
            }

            GameObject  player      = GetObject(tar);
            OtherPlayer otherPlayer = player.GetComponent <OtherPlayer>();

            float fSpeed = xData.speed;

            long      nType = xData.moveType;
            NFVector3 pos   = mHelpModule.PBToNF(xData.target_pos[0]);
            Vector3   vPos  = new Vector3(pos.X(), pos.Y(), pos.Z());

            if (nType > 0)
            {
                otherPlayer.JumpTo(vPos);
            }
            else
            {
                otherPlayer.MoveTo((float)fSpeed, vPos);
            }

            Debug.Log("Player Move:" + vPos.ToString());
        }