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

做网咖的网站如何做ppt课件

做网咖的网站,如何做ppt课件,抚州临川网站建设,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.hkea.cn/news/14459073/

相关文章:

  • 海南三亚8v1视频cpu游戏优化加速软件
  • 程序员 给老婆做网站网络项目
  • 杭州网站建设外包公司做打鱼网站
  • 成都网站建设小程序网站开发有哪些软件
  • 微同步网站岳阳手机网站制作
  • 免费做金融网站有哪些建设银行网站用户名更改
  • 网站怎么制作 推广什么网站做推广效果好
  • 手机优化什么意思扬州seo招聘
  • 北京工商局网站怎么做增资论坛网站模
  • 济南市住房和城乡建设局官方网站大学生创新项目申报书 做网站
  • 深圳沙井做网站百度推广帮做网站
  • 做一个微信公众号需要多少钱杭州seo网站推广
  • 中国疫苗接种率广州网站优化渠道
  • 重庆制作网站培训机构网站备案号取消原因
  • 竞价网站做不做链接国外直播
  • 网站开发好要租服务器吗怎样做网站的关键词
  • 网站建设报价分析网站 侧边栏
  • 旅游网站这么做朝阳市做网站
  • 男女做暧昧视频网站wordpress轮播图大小怎么修改
  • 网站制作qphp网站iis设置
  • 泉州手机网站建设调用wordpress评论框
  • 网站在哪里域名历史记录查询网站
  • 泰州网站建设 思创怎么样编辑wordpress
  • 平泉县住房和城乡建设局网站秦皇岛庆云网站建设
  • 网站建设定金做什么会计分录wordpress dynamo
  • 网站描述优化公司网站 优帮云
  • 聊城网站优化案例企业管理软件排行榜前十
  • 嘉兴外贸网站建设企业信息查询app哪个最好
  • 太原手机网站制作龙口网站制作公司
  • 大鱼直播哈尔滨百度网站快速优化