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

惠州网站设计哪家好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.w-s-a.com/news/449474/

相关文章:

  • 企业网站要怎么建设重庆住房城乡建设部网站
  • html5网站特点seo教程培训班
  • 深圳网站建设哪个最好网站 多语
  • 互联网工具型网站创意网络广告
  • 影视公司网站建设网页界面设计分辨率是多少dpi
  • 免费的做微博的网站模板wordpress 页面 首页
  • 摄影图片网站网站辅导运营与托管公司
  • 做课件的网站长春免费建站模板
  • 响应式网站模板下载免费wordpress 小工具移动
  • 网站标签title在线app制作平台
  • 做电器推广的网站简洁大方的网站模板
  • 网站开发的平台100个详情页设计图
  • wordpress淘宝客建站教程视频知名的设计公司网站
  • 批量做单页网站怎么直接用代码做网站
  • 百度收录较好的网站办公室装修设计方案
  • 建设购物网站要求cnzz数据统计
  • 深圳自适应网站建设价格广东网站建设软件
  • 网页设计介绍北京网站自己做彩票网站
  • 最牛论坛网站app生成链接
  • 用jsp做的网站源代码网站优化说明
  • 网站建设公司名字甘肃省和住房建设厅网站
  • 做外贸网站需要什么卡网站建设公司怎样
  • 网站关键词密度怎么计算的中文版wordpress
  • asp网站建设教程如何在线上推广自己的产品
  • 电脑网站你懂我意思正能量济南网站建设公司熊掌号
  • 杂志社网站建设萧山区网站建设
  • 电商网站前端制作分工网站怎做百度代码统计
  • 免费的html大作业网站网站开发心得500字
  • 临时工找工作网站做美缝帮别人做非法网站
  • 深圳网站建设 设计创公司新昌网站开发