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

做网咖的网站wordpress显示目录结构

做网咖的网站,wordpress显示目录结构,简述企业网站建设的流程,wordpress term_id一、简介 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/23659.html

相关文章:

  • 营销网站建设的步骤过程宁波自助建站网站
  • 哈尔滨专业网站营销网站开发培训哪个好
  • 导航网站教程东莞seo网站建设公司
  • html5自适应手机网站模板免费公司宣传视频制作软件
  • 做效果图网站霸县网站建设
  • 青岛市住房和城乡建设局官方网站陇南建设网站
  • 蓝彩网络科技_齐齐哈尔微信营销_齐齐哈尔网站建设赣县人才网招聘信息网
  • 外包加工网收费网站优化前景
  • 大同网站建设哪里好宽带网络哪家好
  • WordPress创建的网站南开做网站的公司
  • 网站的建设与维护工资重庆市工程建设招标投标交易信息网
  • 免费的个人网站平台莆田网站建设维护
  • 建网站啦怎么制作平台网站
  • 做视频网站需要哪些技术指标昌吉州建设局网站
  • 威海建设公司网站房产销售网站设计
  • 打开无忧管理后台网站医疗器械网站建设
  • 用ps个人网站怎么做赤峰网站开发red
  • 网站的页面大小推广手段和渠道有哪些
  • 给网站做优化怎么做广州哪里做公司网站号
  • 贵州企业网站建设价格网页设计素材模版
  • 用花生棒做网站快吗服务器网站目录
  • 网站开发什么技术网站如何做导航条下拉菜单
  • 免费单页网站wordpress功能小工具
  • 做最优秀的自己演讲视频网站手机pc微信三合一网站
  • wordpress 大站关于宠物的网页设计
  • 晋江网站建设qzdzi深圳手机商城网站设计费用
  • 网站建设 开发人一丶一一人一一正在建设中的网站可算违规
  • 大厂做网站淘宝店铺怎么运营起来
  • 做外贸卖小商品是哪个网站邢台 建网站
  • 济南做网站的中企集团微网站建设