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

做网咖的网站wordpress提高浏览量

做网咖的网站,wordpress提高浏览量,开发游戏平台,wordpress 主页不显示图片一、简介 Mirror 是一个用于 Unity 的开源多人游戏网络框架#xff0c;它提供了一套简单高效的网络同步机制#xff0c;特别适用于中小型多人游戏的开发。以下是 Mirror 插件的一些关键特点和组件介绍#xff1a; 简单高效#xff1a;Mirror 以其简洁的 API 和高效的网络…一、简介 Mirror 是一个用于 Unity 的开源多人游戏网络框架它提供了一套简单高效的网络同步机制特别适用于中小型多人游戏的开发。以下是 Mirror 插件的一些关键特点和组件介绍 简单高效Mirror 以其简洁的 API 和高效的网络代码而受到开发者的欢迎。基于 UnityEngine 生命周期Mirror 利用 Unity 的生命周期回调进行数值同步简化了网络开发流程。RPC 调用Mirror 提供了三种远程过程调用RPC的方式[Command]、[ClientRpc] 和[TargetRpc]允许开发者在不同客户端或服务器上执行特定的函数。网络组件 NetworkManager用于管理网络会话包括开始服务器、客户端和处理玩家连接。NetworkIdentity为游戏对象添加网络身份使其能够在网络上被识别和同步。NetworkStartPosition用于设置玩家的初始生成位置。 网络发现Mirror 支持局域网内的网络发现功能方便玩家发现并加入游戏。 运输层兼容性Mirror 兼容多种低级运输层包括但不限于 TCP、UDP 和 KCP 协议。 开箱即用Mirror 在 Unity Asset Store 中免费提供并且具有丰富的文档和社区支持。 适用于小体量游戏Mirror 更适合小型到中型的游戏项目对于大型游戏项目可能需要更复杂的网络解决方案。 Mirror官网方文档https://mirror-networking.gitbook.io/docs。 二、 使用示例 2.1 效果预览 实现简单多人联机小游戏 2.2 步骤1 添加网络管理 新建一个空对象并为其添加Network Manager、Kcp Transport、Network Manager HUD组件。 其中在Network Manager中添加在线场景和离线场景以及玩家预制体玩家预制体可以从网上寻找模型或者使用内置模型代替,注意玩家预制体要添加 Network Identity组件。 最大玩家设为4对应4个玩家生成点玩家生成方法可以设为随机或轮循。 在Kcp Transport中的配置可以不用动也可以根据需要配置。 2.3 环境设置 地形可以简单用一个Plane来代替如果对质量要求高可以后期替换为别的素材添加天气系统使用HDRP等可以看往期内容。为玩家添加生成位置这里放置四个位置生成玩家前面已经设置了最大玩家数为4则可以有四个不同玩家进入游戏并在预设位置生成。可以先设置好一个在复制加下来几个并设置好想要生成的位置。使用一个空对象添加Network Start Position即可。 2.3 代码部分 为玩家添加代码来操作玩家移动 playerScript参考代码 using System.Collections; using System.Collections.Generic; using System.Drawing; using System.Numerics; using Mirror; using UnityEngine; using static System.Runtime.CompilerServices.RuntimeHelpers; using Color UnityEngine.Color; using Random UnityEngine.Random; using Vector3 UnityEngine.Vector3;public class PlayerScrpt : NetworkBehaviour {public GameObject floatingInfo;public TextMesh nameText;//武器public GameObject[] weaponArray;private int currentWeapon;private Weapon activeWeapon;private float coolDownTime;private Material playMaterialClone;//private UIScript UI;[SyncVar(hook nameof(OnPlayerNameChanged))]private string playerName;[SyncVar(hook nameof(OnPlayerColorChanged))]private Color playerColor;[SyncVar(hook nameof(OnWeaponChanged))]private int currentWeaponSynced;//name改变触发private void OnPlayerNameChanged(string oldName, string newName){nameText.text newName;}//颜色改变触发private void OnPlayerColorChanged(Color oldColor, Color newColor){//同步名称颜色nameText.color newColor;//同步材质颜色playMaterialClone new Material(GetComponentRenderer().material);playMaterialClone.SetColor(_Color, newColor);}//切换武器private void OnWeaponChanged(int oldIndex, int newIndex){//判断旧武器是否存在若存在则隐藏if (0 oldIndex oldIndex weaponArray.Length weaponArray[oldIndex] ! null){weaponArray[oldIndex].SetActive(false);}if (0 newIndex newIndex weaponArray.Length weaponArray[newIndex] ! null){weaponArray[newIndex].SetActive(true);activeWeapon weaponArray[newIndex].GetComponentWeapon();//显示当前武器子弹数量//UI.canvasBulletText.text activeWeapon.bulletCount.ToString();}else{activeWeapon null; //若武器不存在则激活武器为空//UI.canvasBulletText.text No Weapon;}}[Command]public void CmdSetupPlayer(string newName, Color colorValue){playerName newName;playerColor colorValue;}[Command]public void CmdActiveWeapon(int index){currentWeaponSynced index;}[Command]public void CmdFire(){/*if (activeWeapon null)return;*/RpcFire();}[ClientRpc]public void RpcFire(){var bullet Instantiate(activeWeapon.bullet, activeWeapon.firePos.position, activeWeapon.firePos.rotation);bullet.GetComponentRigidbody().velocity bullet.transform.forward * activeWeapon.bulletSpeed;Destroy(bullet, activeWeapon.bulletLifetime);}private void Awake(){foreach (var weapon in weaponArray){if (weapon ! null){weapon.SetActive(false);}}}public override void OnStartLocalPlayer(){//摄像机与Player绑定Camera.main.transform.SetParent(transform);Camera.main.transform.localPosition Vector3.zero;floatingInfo.transform.localPosition new Vector3(0f, -2.7f, 6f);floatingInfo.transform.localScale new Vector3(1f, 1f, 1f);changePlayerNameAndColor();}// Update is called once per framevoid Update(){if (!isLocalPlayer){floatingInfo.transform.LookAt(Camera.main.transform);return;}var moveX Input.GetAxis(Horizontal) * Time.deltaTime * 110f;var moveZ Input.GetAxis(Vertical) * Time.deltaTime * 4.0f;transform.Rotate(0, moveX, 0);transform.Translate(0, 0, moveZ);if (Input.GetKeyDown(KeyCode.C)) //按下c改变颜色{changePlayerNameAndColor();}if (Input.GetButtonDown(Fire2)){currentWeapon 1;if (currentWeapon weaponArray.Length)currentWeapon 1;CmdActiveWeapon(currentWeapon);}if (Input.GetButtonDown(Fire1)){if (activeWeapon ! null Time.time coolDownTime activeWeapon.bulletCount 0){coolDownTime Time.time activeWeapon.coolDown;//更新子弹数量activeWeapon.bulletCount--;//UI.canvasBulletText.text activeWeapon.bulletCount.ToString();CmdFire();}}}//改变玩家名称和颜色private void changePlayerNameAndColor(){var tempName $Player {Random.Range(1, 999)};var tempColor new Color(Random.Range(0, 1f), Random.Range(0, 1f), Random.Range(0, 1f));CmdSetupPlayer(tempName, tempColor);} }Weapon参考代码 using System.Collections; using System.Collections.Generic; using UnityEngine;public class Weapon : MonoBehaviour {public Transform firePos; //子弹位置public GameObject bullet; // 子弹对象public float bulletSpeed 5f; //子弹速度public float bulletLifetime 3f;//子弹生命周期public int bulletCount 15; //子弹数量public float coolDown 0.5f;} 三、项目生成 接下来就可以点击文件-构建和运行把游戏文件发给小伙伴一起玩耍。 将localhost改成自己当前ip即可让小伙伴加入房间远程游玩了。如果链接失败记得关闭防火墙
http://www.dnsts.com.cn/news/100112.html

相关文章:

  • 户外网站设计自适应网站内容区做多大合适
  • 购买虚拟机建网站wordpress修改字体插件
  • 做营销型网站公司网站如何在百度做排名
  • 免费程序网站做商城网站需要的功能
  • 单页面网站入侵杭州专业网站营销
  • 杭州专业网站设计制作wordpress加百度商桥变慢
  • 怎么在58上做公司网站深圳 网站托管
  • 济南网站定制制作北京seo案例
  • 什么网站需要备案移动网站建设商
  • wordpress评论人电脑优化软件
  • 移动宽带 国外网站中国四大saas公司
  • 有经验的佛山网站建设做骗子网站
  • 摄影网站的实验设计方案做网站的书知乎
  • 企业网站建设哪家好厦门人才网招聘官网
  • php网站开发软件语言工程公司简介范文
  • 网站开发亿玛酷给力5网络建设方案的调研照片
  • 枣庄网站建设制作网站建设服务中心
  • 国外网站排名 top100汕头网站建设推广
  • 科技未来网站建设百度短网址
  • 惠州做网站哪家公司好wordpress分类加html
  • python 网站开发神器简单漂亮的博客php网站源码
  • 盛成广告传媒做网站的渝发建设官方网站
  • 建设商务网站pptWordpress建站的
  • 杭州市江干建设局网站wordpress社交链接设置
  • 大连网站开发 简维科技中国建设银行在网站怎么签约
  • php 企业网站管理系统青岛爱城市网app官方网站
  • 网站开发公司 重庆门户资源分享网站模板
  • 企业做网站的凭证怎么做芜湖有哪些招聘网站
  • 现实有有哪里学做网站的国外便宜的云服务器
  • 校园 网站建设 知乎网站建设百度资源