当前位置: 首页 > news >正文

wordpress怎么使用江门网站快速排名优化

wordpress怎么使用,江门网站快速排名优化,wordpress网站在哪,章丘做网站文章目录 Unity进阶–通过PhotonServer实现人物移动和攻击–PhotonServer(五)DLc#xff1a; 消息类和通信类服务器客户端 Unity进阶–通过PhotonServer实现人物移动和攻击–PhotonServer(五) DLc#xff1a; 消息类和通信类 Message namespace Net {public class Message{p… 文章目录 Unity进阶–通过PhotonServer实现人物移动和攻击–PhotonServer(五)DLc 消息类和通信类服务器客户端 Unity进阶–通过PhotonServer实现人物移动和攻击–PhotonServer(五) DLc 消息类和通信类 Message namespace Net {public class Message{public byte Type;public int Command;public object Content;public Message() { }public Message(byte type, int command, object content){Type type;Command command;Content content;}}//消息类型public class MessageType{//unity//类型public static byte Type_UI 0;//账号登录注册public const byte Type_Account 1;//用户public const byte Type_User 2;//攻击public const byte Type_Battle 3;//注册账号public const int Account_Register 100;public const int Account_Register_Res 101;//登陆public const int Account_Login 102;public const int Account_Login_res 103;//角色部分//选择角色public const int User_Select 204; public const int User_Select_res 205; public const int User_Create_Event 206;//删除角色public const int User_Remove_Event 207;//攻击和移动//移动point[]public const int Battle_Move 301;//移动响应id point[]public const int Battle_Move_Event 302;//攻击 targetidpublic const int Battle_Attack 303;//攻击响应id targetid 剩余血量public const int Battle_Attack_Event 304;} } peer类 using System; using System.Collections.Generic; using Net; using Photon.SocketServer; using PhotonHostRuntimeInterfaces; using PhotonServerFirst.Bll;namespace PhotonServerFirst {public class PSPeer : ClientPeer{public PSPeer(InitRequest initRequest) : base(initRequest){}//处理客户端断开的后续工作protected override void OnDisconnect(DisconnectReason reasonCode, string reasonDetail){//关闭管理器BLLManager.Instance.accountBLL.OnDisconnect(this);BLLManager.Instance.userBLL.OnDisconnect(this);}//处理客户端的请求protected override void OnOperationRequest(OperationRequest operationRequest, SendParameters sendParameters){PSTest.log.Info(收到客户端的消息);var dic operationRequest.Parameters;//打包转为PhotonMessageMessage message new Message();message.Type (byte)dic[0];message.Command (int)dic[1];Listobject objs new Listobject();for (byte i 2; i dic.Count; i){objs.Add(dic[i]);}message.Content objs.ToArray();//消息分发switch (message.Type){case MessageType.Type_Account://PSTest.log.Info(收到客户端的登陆消息);BLLManager.Instance.accountBLL.OnOperationRequest(this, message); break;case MessageType.Type_User:BLLManager.Instance.userBLL.OnOperationRequest(this, message);break;case MessageType.Type_Battle:PSTest.log.Info(收到攻击移动命令);BLLManager.Instance.battleMoveBLL.OnOperationRequest(this, message);break;}}} } 客户端对接类 using System.Collections; using System.Collections.Generic; using UnityEngine; using ExitGames.Client.Photon; using Net;public class PhotonManager : MyrSingletonBasePhotonManager, IPhotonPeerListener {private PhotonPeer peer;void Awake() {base.Awake();DontDestroyOnLoad(this);}// Start is called before the first frame updatevoid Start(){peer new PhotonPeer(this, ConnectionProtocol.Tcp);peer.Connect(127.0.0.1:4530, PhotonServerFirst);}void Update(){peer.Service();}private void OnDestroy() {base.OnDestroy();//断开连接peer.Disconnect(); }public void DebugReturn(DebugLevel level, string message){}/// summary/// 接收服务器事件/// /summary/// param nameeventData/parampublic void OnEvent(EventData eventData){//拆包Message msg new Message();msg.Type (byte)eventData.Parameters[0];msg.Command (int)eventData. Parameters[1];Listobject list new Listobject();for (byte i 2; i eventData.Parameters.Count; i){list.Add(eventData.Parameters[i]);}msg.Content list.ToArray();MessageCenter.SendMessage(msg);}/// summary/// 接收服务器响应/// /summary/// param nameoperationResponse/parampublic void OnOperationResponse(OperationResponse operationResponse){if (operationResponse.OperationCode 1){Debug.Log(operationResponse.Parameters[1]);}}/// summary/// 状态改变/// /summary/// param namestatusCode/parampublic void OnStatusChanged(StatusCode statusCode){Debug.Log(statusCode);}/// summary/// 发送消息/// /summarypublic void Send(byte type, int command, params object[] objs){Dictionarybyte, object dic new Dictionarybyte,object();dic.Add(0,type);dic.Add(1,command);byte i 2;foreach (object o in objs){dic.Add(i, o);}peer.OpCustom(0, dic, true);}} 服务器 BLL管理 using PhotonServerFirst.Bll.BattleMove; using PhotonServerFirst.Bll.User; using System; using System.Collections.Generic; using System.Linq; using System.Text;namespace PhotonServerFirst.Bll {public class BLLManager{private static BLLManager bLLManager;public static BLLManager Instance{get{if(bLLManager null){bLLManager new BLLManager();}return bLLManager;}}//登录注册管理public IMessageHandler accountBLL;//角色管理public IMessageHandler userBLL;//移动和攻击管理public IMessageHandler battleMoveBLL;private BLLManager(){accountBLL new PhsotonServerFirst.Bll.Account.AccountBLL();userBLL new UserBLL();battleMoveBLL new BattleMoveBLL();}}} 移动BLL using Net; using PhotonServerFirst.Dal; using PhotonServerFirst.Model.User; using System; using System.Collections.Generic; using System.Linq; using System.Text;namespace PhotonServerFirst.Bll.BattleMove {class BattleMoveBLL : IMessageHandler{public void OnDisconnect(PSPeer peer){}public void OnOperationRequest(PSPeer peer, Message message){object[] objs (object[])message.Content; switch (message.Command){case MessageType.Battle_Move:PSTest.log.Info(BattleMove收到移动命令);Move(peer, objs);break;case MessageType.Battle_Attack:Attack(peer, objs);break;}}private void Attack(PSPeer peer, object[] objs){//targetid//id targetid 剩余血量int targetid (int)objs[0];//攻击者UserModel user DALManager.Instance.userDAL.GetUserModel(peer);//被攻击者UserModel targetUser DALManager.Instance.userDAL.GetUserModel(targetid);//计算伤害targetUser.Hp - user.userInfo.Attack;foreach (PSPeer otherpeer in DALManager.Instance.userDAL.GetuserPeers()){SendMessage.Send(otherpeer, MessageType.Type_Battle, MessageType.Battle_Attack_Event, user.ID, targetUser.ID, targetUser.Hp);}}private void Move(PSPeer peer, object[] objs){//位置float[] points (float[])objs[0];//将要移动的客户端UserModel user DALManager.Instance.userDAL.GetUserModel(peer); user.Points points;//通知所有客户端移动foreach (PSPeer otherpeer in DALManager.Instance.userDAL.GetuserPeers()){PSTest.log.Info(通知所有客户端移动);SendMessage.Send(otherpeer, MessageType.Type_Battle, MessageType.Battle_Move_Event, user.ID, points);}}} } 客户端 逻辑类 using System.Collections; using System.Collections.Generic; using Net; using UnityEngine;public class BattleManager : ManagerBase {void Start() {MessageCenter.Instance.Register(this);}private UserControll user;public UserControll User{get{if (user null){user UserControll.idUserDic[UserControll.ID];}return user;}}void Update(){if (Input.GetMouseButtonDown(0)){Ray ray Camera.main.ScreenPointToRay(Input.mousePosition);RaycastHit hit;bool res Physics.Raycast(ray, out hit);if (res){if (hit.collider.tag Ground){//Debug.Log(点击到地面);//移动到hit.pointPhotonManager.Instance.Send(MessageType.Type_Battle, MessageType.Battle_Move, new float[] { hit.point.x,hit.point.y, hit.point.z });//Debug.Log(hit.point);}if (hit.collider.tag User){//Debug.Log(点击到玩家);//获取距离float dis Vector3.Distance(hit.collider.transform.position, User.transform.position);if (dis 0 dis 3f){UserControll targetUser hit.collider.GetComponentUserControll();PhotonManager.Instance.Send(MessageType.Type_Battle, MessageType.Battle_Attack, targetUser.id);}}}}}public override void ReceiveMessage(Message message){base.ReceiveMessage(message);object[] objs (object[])message.Content;switch (message. Command){case MessageType.Battle_Move_Event:Debug.Log(移动);Move(objs);break;case MessageType.Battle_Attack_Event:Attack(objs);break;}}//移动void Move(object[] objs){//移动的用户idint userid (int)objs[0];//移动的位置float[] points (float[])objs[1];UserControll.idUserDic[ userid].Move(new Vector3(points[0],points[1],points[2]));}public override byte GetMessageType(){return MessageType.Type_Battle;}public void Attack(object[] objs){//攻击者id被攻击者id 当前剩余血量int userid (int)objs[0];int targetid (int)objs[1];int hp (int)objs[2];//攻击UserControll.idUserDic[userid].Attack(targetid);if (hp 0){UserControll.idUserDic[targetid].Die();}}} 角色绑定的类 using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.AI;public class UserControll : MonoBehaviour {//保存了所有角色的集合public static Dictionaryint, UserControll idUserDic new Dictionaryint, UserControll();//当前客户端角色的idpublic static int ID;private Animator ani;//private NavMeshAgent agent;//目标位置private Vector3 targetPos;private bool isRun;//角色idpublic int id;private bool isDie;// Start is called before the first frame updatevoid Start(){ani GetComponentAnimator();//agent GetComponentNavMeshAgent();}// Update is called once per framevoid Update(){if(isDie){return;}if (isRun){//计算距离float dis Vector3.Distance(transform. position,targetPos);if (dis 0.5f){//移动//agent.isStopped false;// ani.SetBoo1( IsRun, true);//agent.SetDestination(targetPos);transform.position targetPos;}else{//停止//agent.isStopped true;// ani.setBoo1(IsRun, false);isRun false;}}}public void Move(Vector3 target){targetPos target;isRun true;}public void Attack( int targetId){//获得要攻击的角色UserControll targetUser idUserDic[targetId];transform.LookAt(targetUser.transform);//ani.SetTrigger( Attack);}public void Die(){//ani. setTrigger(Die);isDie true;}} using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.AI;public class UserControll : MonoBehaviour {//保存了所有角色的集合public static Dictionaryint, UserControll idUserDic new Dictionaryint, UserControll();//当前客户端角色的idpublic static int ID;private Animator ani;//private NavMeshAgent agent;//目标位置private Vector3 targetPos;private bool isRun;//角色idpublic int id;private bool isDie;// Start is called before the first frame updatevoid Start(){ani GetComponentAnimator();//agent GetComponentNavMeshAgent();}// Update is called once per framevoid Update(){if(isDie){return;}if (isRun){//计算距离float dis Vector3.Distance(transform. position,targetPos);if (dis 0.5f){//移动//agent.isStopped false;// ani.SetBoo1( IsRun, true);//agent.SetDestination(targetPos);transform.position targetPos;}else{//停止//agent.isStopped true;// ani.setBoo1(IsRun, false);isRun false;}}}public void Move(Vector3 target){targetPos target;isRun true;}public void Attack( int targetId){//获得要攻击的角色UserControll targetUser idUserDic[targetId];transform.LookAt(targetUser.transform);//ani.SetTrigger( Attack);}public void Die(){//ani. setTrigger(Die);isDie true;}}
http://www.hkea.cn/news/14440039/

相关文章:

  • 在哪注册网站能上传文件的网站
  • 做设计用到的网站北京营销型网站开发
  • 商标网站建设展览展示设计有限公司
  • 网站后台更换首页图片wordpress导购插件
  • 山东鲁为建设集团网站菏泽网站建设推广价格
  • discuz修改网站底部深圳市中医院
  • 网站建设需要注意那些点建设银行网站怎么登录密码忘了怎么办
  • 马鞍山网站建设价格网站导航提交入口大全
  • 福州网站推广优化航空港建设局网站
  • 图标设计网站做网站运用的技术
  • 济源网站建设公司摄影作品网站推荐
  • 门户首页网站建设方案小票在线生成小程序
  • 冠县做网站专业官方网站建设
  • 工信部查询网站备案吉林省建设安全厅官方网站
  • 企业网站推广17手机如何创建公众号
  • 网站后台管理系统很慢女的男的做那个视频网站
  • 社区问答网站开发东莞 网站建设
  • 西安网站建设熊掌浏览器怎么连接网站的
  • 带做网站更改网站的布局
  • 宁波建设信息网站对网站外部的搜索引擎优化
  • 博客自助建站厂里拿货开小加工厂
  • 今天的国内新闻seo专业培训需要多久
  • 网站弹出文字网站推广基本预算
  • php mysql开发网站开发长沙网络营销公司排名
  • 免费微信网站模板下载工具视频网站文案
  • 东城网站建设哪家好网站设计论文提纲
  • 做网站 创业 流程wordpress 金融 模板
  • 深圳企业网站定做网站建设网站建设平台
  • 服装辅料东莞网站建设推广方法与经验总结怎么写
  • 网站开发 搜索福州建设人才网站