项目实训
文章平均质量分 79
Xyxxi
这个作者很懒,什么都没留下…
展开
-
项目实训- 基于unity的2D多人乱斗闯关游戏设计与开发(十3、FPS多人化——击伤同步)
上一篇已经实现了射击同步,这一篇实现射击时伤害也可以进行同步新建脚本,使用接口方式实现新建脚本,继承IDamager:受到伤害后,健康值会减少注意:这里需要使用RPC(从客户端A发送一条数据给服务器,也就是rpc调用这个方法,发送给服务器之后,服务器会给所有的客户端均显现这个方法)通过bool的IsDeath判断如果生命值小于0时,则死亡,同时三秒钟后复活Remote Procedure Calls (RPC)使可以调用"networked GameObjects"上的方法,对由用户输入等触发的不常用原创 2022-06-10 23:45:00 · 385 阅读 · 0 评论 -
项目实训- 基于unity的2D多人乱斗闯关游戏设计与开发(十2、FPS多人化——射击同步)
按照单机时的第一人称简单配置EventCode指的是发送的事件是什么类型,例如开枪击中地面,则定义EventCode为HitGround,此时会把HitGround这个tag发送给服务器,服务器知道这个消息后,直接转发给服务端,服务端有个方法可以解析HitGround这个事件逻辑并执行,实现同步效果新建脚本HitManager用方法写监听方法,依次将EventCode的HitObject中用Dictionary存放的数据转换出来方法进行PhotonServer的Event的接收当不射击时等原创 2022-06-09 23:01:29 · 524 阅读 · 0 评论 -
项目实训- 基于unity的2D多人乱斗闯关游戏设计与开发(十1、FPS多人化——IK)
需要制作枪口的同步,即枪口朝向的同步和枪械的绑定,这里使用IKIK,IK与FK对应,正向运动学就是根骨骼带动节点骨骼运动,IK就是反向运动学,也就是根据子节点的位置,推算出父节点的关节的变化。window-Package Manager,打开Advanced,勾选show dependencies、show preview package,输入Animation Rigging,install打开玩家角色预制体,添加weaponHolder,并加入之前制作的枪设置旋转点,令枪围绕枪托在脚上旋转添加Pho原创 2022-06-09 21:04:15 · 694 阅读 · 0 评论 -
项目实训- 基于unity的2D多人乱斗闯关游戏设计与开发(九——pun)
Photon Unity Networking(首字母缩写PUN)是一个Unity多人游戏插件包。它提供了身份验证选项、匹配,以及快速、可靠的通过我们的Photon后端实现的游戏内通信。 PUN作用:搭建多人 在线 / 局域网 网络游戏 Photon逻辑顺序:连接到服务器——加入某房间——主客户端加载场景。类似LOL自定义模式注:PUN会根据统一的版本号、Appid,加入主客户端的房间,使所有客户端加载同一个场景作用:PUN会根据Appid和版本号,确认你们属于同一个应用。填入邮箱,点Set原创 2022-06-09 19:31:24 · 1066 阅读 · 0 评论 -
项目实训- 基于unity的2D多人乱斗闯关游戏设计与开发(八6、FPS——武器系统4)
没有继承MonoBehaviour的话是没有办法直接赋值到组件当中去的,所以创建一个脚本继承MonoBehavior,设置输入里的最大最小范围,并引入注意:这里需要回到构造函数初始化:回到脚本,新增施加力的方法然后到FPMouseLook脚本,在start函数中声明,找到,在其中引用。并设置好frequence和damp的值,使晃动明显开始游戏,进行射击,就会发现实现了一定的屏幕晃动效果。frequence频率越大,抖动就越快,damp数值越大,回到中心的速度就越快。制作一个白色的矩形图片原创 2022-06-09 18:48:05 · 452 阅读 · 0 评论 -
项目实训- 基于unity的2D多人乱斗闯关游戏设计与开发(八5、FPS——武器系统3)
AnimationCurve是Unity3D里一个非常实用的功能。作用是编辑一条任意变化的曲线用在任何你想用在的地方。 如曲线地形,曲线轨迹等。也被用在了模型动画播放时的碰撞盒缩放及重力调节。AnimationCurve 曲线的绘制方法和Ragespline中的物体轮廓勾勒的方法类似。通过方法来计算后坐力的偏移绘制曲线双击任意区域内地方,创建关键点。对关键点点鼠标右键,则出如下界面.方法来控制后坐力的范围,令刚开始的后坐力为0,当开枪的时候才会有后坐力并逐渐累加此时发现后坐力很大,原创 2022-06-09 18:22:53 · 564 阅读 · 0 评论 -
项目实训- 基于unity的2D多人乱斗闯关游戏设计与开发(八4、FPS——武器系统2)
建立射击时的动画(拖入开枪、收枪、拿枪姿势等动画),并设置好连线过渡,将每一个动画的settings均设置为90%新增瞄准方法改变相机的方法尺寸(当瞄准时,需要将相机往前拉大,改变镜头大小),用OriginFov来缓存原来的Fov大小设置长按鼠标右键时瞄准,松开时退出瞄准设置瞄准时开枪射击的动画:新增瞄准射击时的相机缩放,这里需要协程首先需要一个公开的全局的协程变量来引用协程方法,并进行初始化此时可以实现瞄准时镜头呈现26的放大和之前的博客一样,给子弹设置rigidbody并获取,同时需要原创 2022-06-09 11:21:00 · 482 阅读 · 0 评论 -
项目实训- 基于unity的2D多人乱斗闯关游戏设计与开发(四、客户端及C#socket通信解决粘包机制)
测试原创 2022-06-09 10:18:34 · 606 阅读 · 0 评论 -
项目实训- 基于unity的2D多人乱斗闯关游戏设计与开发(八3、FPS——武器系统1)
由于武器有不同种,枪、刀,所以用weapon武器作为接口1、创建IWeapon脚本作为武器接口,脚本是用来攻击敌人2、创建枪械类Firearms,是一种挂件,挂在object上,还要接口IWeapon,且含有攻击方法4、新增方法来控制开枪时间间隔换弹Reload1、换弹可以理解为将CurrentAmmo直接累积到弹夹,使弹夹变满,同时增加子弹需要令自身携带的子弹数量减少2、设置好按R键填充满子弹在animator中添加好开枪动画在方法中添加动画播放的方法:子弹1、制作子弹的预制体2、创原创 2022-06-08 23:39:15 · 1088 阅读 · 0 评论 -
项目实训- 基于unity的2D多人乱斗闯关游戏设计与开发(八2、FPS——实现手臂资源的行走和奔跑)
从window进入asset store,搜索low poly fps free,获取资源并导入(不导入script脚本),找到arms,获得Assault_Rifle_01_FPSController,并移除掉多余的脚本添加上一篇博客所写的CharacterController,并设置好对应的变量并挂上上一篇含有行走奔跑等操作的脚本在Arms上挂上FPMouseLook脚本(上篇博客所完成)此时,手臂资源可以移动、奔跑、站立,实现资源替换1、 打开arms_assault_rifle_01,删原创 2022-06-08 21:41:21 · 312 阅读 · 0 评论 -
项目实训- 基于unity的2D多人乱斗闯关游戏设计与开发(八1、FPS——FPS角色控制)
项目实训- 基于unity的2D多人乱斗闯关游戏设计与开发(八1、FPS——FPS角色控制)原创 2022-06-08 20:03:09 · 711 阅读 · 0 评论 -
项目实训- 基于unity的2D多人乱斗闯关游戏设计与开发(七5、酷跑——UI制作与完善)
(1) 人物角色制作(2) 地面制作(3) 游戏结束和重新开始(4) 金币创建与吃金币(5) UI制作与完善制作主界面预设为了方面逻辑与UI之间的控制,制作一个事件管理器,通过事件来降低逻辑与UI之间的耦合度包括订阅事件与时间的触发,在该游戏中,订阅和触发玩家的跳跃事件以及吃金币事件,并进行注销注销事件:和订阅事件一样,仍需要考虑反注册的问题,同时当 时,已经没有监听者了,需要进行移除,即,代码如下:触发事件:其他代码:并定义好游戏所需要的跳跃事件和吃金币事件:四、主界面原创 2022-06-07 22:34:33 · 414 阅读 · 0 评论 -
项目实训- 基于unity的2D多人乱斗闯关游戏设计与开发(七4、酷跑——金币创建与吃金币)
(1) 人物角色制作(2) 地面制作(3) 游戏结束和重新开始(4) 金币创建与吃金币1、将金币图片导入到工程中,并设置好精灵图2、制作金币预设三、制作多个金币阵列CoinList0CoinList1CoinList2CoinList3创建一个脚本用来创建金币:将以上四种金币阵列预设存放在数组中,通过随机生成金币阵列,在该方法中,随机金币范围,在加载金币预设后实例化,同时设置金币的初始坐标是之前制作的游戏起始位置中的脚本是用来控制金币移动的设置金币的移动速度,并设置金币在超过原创 2022-06-07 22:14:40 · 963 阅读 · 0 评论 -
项目实训- 基于unity的2D多人乱斗闯关游戏设计与开发(二、序列化工具protobuffer)
测试原创 2022-06-07 17:34:51 · 311 阅读 · 0 评论 -
项目实训- 基于unity的2D多人乱斗闯关游戏设计与开发(七3、酷跑——游戏结束与重新开始)
(1) 人物角色制作(2) 地面制作(3) 游戏结束和重新开始创建两个空物体分别为BottomBorder、LeftBorder,并添加碰撞体组件,调节合适的大小和位置,并将这两个物体的Tag设置为Border1、制作一个游戏结束的界面,并将其设为预制体2、创建脚本,在其中设置“重新开始”按钮监听,当按下按钮后,令界面重新回到游戏开始的界面,游戏重新开始四、游戏管理创建一个GameManager管理游戏准备、进行中、结束的三个状态。创建一个空物体,并挂上脚本,用枚举列举状态五、边缘碰撞检测原创 2022-06-07 09:34:53 · 1353 阅读 · 0 评论 -
项目实训- 基于unity的2D多人乱斗闯关游戏设计与开发(七2、酷跑——地面)
目录一、前言二、制作步骤一、前言跑酷是一个较长的场景,采取制作地面预制体的方式进行随机生成二、制作步骤导入地面的照片将每个地面图片使用SpriteRender组件来渲染对每一个地面添加碰撞体使用脚本控制地面移动游戏中看起来是角色在跑,实际上角色没有跑,是地面在跑,所以需要写一个脚本来控制地面的移动地面从起始位置移动到结束为止,到结束位置后又立刻回到起始位置public class Ground5 : MonoBehaviour{ private Transform gro原创 2022-06-07 09:34:24 · 1045 阅读 · 0 评论 -
项目实训- 基于unity的2D多人乱斗闯关游戏设计与开发(七1、酷跑——人物角色制作)
0024242原创 2022-06-07 09:34:05 · 1213 阅读 · 0 评论 -
项目实训- 基于unity的2D多人乱斗闯关游戏设计与开发(五、利用AudioMixer控制音量大小)
目录一、前言二、步骤1、创建音量调节面板UI2、AudioSource播放方法3、创建Audio Mixer4、暴露参数5、进行音量调节三、问题一、前言游戏开发过程中,计划设置一个全局控制音量的gui界面,同时可以单独控制背景音乐和其他游戏特效,所以采用了Audio Mixer解决二、步骤1、创建音量调节面板UI创建了两个滑动条,分别控制游戏的背景音乐和音效,并将滑动条的默认值value设为12、AudioSource播放方法可以看到,AudioSource有三个播放方法Play()成员方原创 2022-04-20 21:48:02 · 382 阅读 · 0 评论 -
项目实训- 基于unity的2D多人乱斗闯关游戏设计与开发(小地图修改完善)
目录一、前言二、小地图的制作1.小地图制作2.小地图美化三、小地图展示主角移动和主角方向四、小地图放大、缩小五、大小地图六、大地图显示主角移动和主角方向一、前言由于游戏设计,场景较大,且最终玩家在进行相关游戏之后,仍需回到中心点处进行其他活动,单纯的采用只展示部分场景的小地图,可能使玩家在场景中难以找到中心点,影响游戏效率。二、小地图的制作1.小地图制作小地图制作2.小地图美化添加相关遮罩和按钮,同时增加一个image,拖入小箭头的照片,代表小地图上的人物指示三、小地图展示主角移动和主角方向原创 2022-04-20 17:20:36 · 2795 阅读 · 0 评论 -
项目实训- 基于unity的2D多人乱斗闯关游戏设计与开发(小地图工作前期知识:摄像机)
目录一、前言二、透视(Perspective)三、正交(Orthographic)四、实际操作时遇到的问题一、前言使用相机制作小地图时,发现Unity的Camera的投影(Projection)设置有如下两种,正交(Orthographic)和透视(Perspective)。二、透视(Perspective)透视模式下的话,摄像机是以一个角度(Field of View),扩散观察。被观察的物体会因离摄像机的远近,而导致最终显示在屏幕的大小位置不同。物体旋转会有离摄像机近的部位显示的偏大,远的部位原创 2022-04-20 17:17:00 · 2549 阅读 · 0 评论 -
项目实训- 基于unity的2D多人乱斗闯关游戏设计与开发(三、Unity PlasticSCM多人协同)
目录一、概述二、简介三、操作1.创建PlasitcSCM项目2、进行pull、push、merge操作2.1如何pull(拉取团队成员的修改)?2.2如何push(提交一个checkin到我的branch)?2.3如何merge(给更新修改的分支做合并)?一、概述项目实训团队采用高度整合的Unity PlasticSCM控制系统进行多人协同操作。二、简介类似github的团队协作与控制系统,PlasticSCM是一款性能卓越的版本控制工具,其对巨大项目存储(高达4TB级)以及成千上万个分支频繁创建与原创 2022-04-20 15:54:24 · 2869 阅读 · 0 评论 -
项目实训- 基于unity的2D多人乱斗闯关游戏设计与开发(六、实现两类小地图)
目录一、前言二、针对问题一三、针对问题二一、前言1、游戏二地图较大,场景复杂,于是建立一个小地图,在角色上方,显示部分地图内容2、游戏四地图较小,摄像机可以显示全部地图,同时由于为pvp游戏,同时显示敌方位置二、针对问题一首先在canvas下创建一个空对象,并在其下方创建一个RawImage,是ui显示模块,将相机所渲染的显示在canvas上,并将其移动到对应的位置(这里运用了一个圆形的遮盖,令小地图是圆形)在角色下创建一个相机,用来渲染地图,并调整大致位置,令其在角色的正上方接下来创建原创 2022-04-17 18:31:55 · 1069 阅读 · 0 评论 -
项目实训- 基于unity的2D多人乱斗闯关游戏设计与开发(一、环境搭建)
文章目录前言一、unity下载二、使用步骤1.引入库2.读入数据总结前言该文章主要包括下载unity和protobuf环境搭建一、unity下载按照教程进行相关下载二、使用步骤1.引入库代码如下(示例):import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as snsimport warningswarnings.filterwarnings('ignore')i原创 2022-03-26 22:30:10 · 506 阅读 · 0 评论 -
项目实训- 基于unity的2D多人乱斗闯关游戏设计与开发(综述)
目录前言项目目标项目目标:游戏类型:网络要求:技术要点项目介绍项目架构项目技术项目特色大致功能需求游戏模式/项目内容其他实施计划预期成果前期:中期:后期:分工前言实现一个基于unity的2D多人乱斗闯关游戏的开发。项目目标项目目标:以工程化方式使用Unity引擎开发一款电脑版多人游戏。游戏类型:2D多人乱斗闯关。不同小游戏轮换,玩家之间进行比拼。网络要求:联网。需要游戏大厅、玩家匹配功能。分析目前市场比较火热的游戏,融合特色优点。通过开发掌握软件工程开发各阶段流程。学习Unity原创 2022-03-24 22:49:30 · 4876 阅读 · 0 评论