文章目录
- 一、个人任务
- 1.场景建模
- 2.FPS游戏
- 3.太空陨石
- 4.跑酷
- 5.GUI界面
- 二、完成过程
- 总结
一、个人任务
1.场景建模
森林游戏的场景以及FPS游戏的场景
2.FPS游戏
主要实现对人物的角色控制,移动下蹲跑动等以及同步,脚步声通过各种方法实现鼠标以及键盘对人物的控制,人物动画以及同步,分数,生命数问题pun异端控制及同步,对游戏管理
1.CameraSpringUtility4 CameraRecoil4 CameraSpring4:实现对人物的视角的跟踪以及控制,在游戏中呈现第一人称视角。
FPMouseLook 根据鼠标的位置获取相应的坐标,从而实现视角跟随鼠标位置进行变化,同时使得角色根据相应的鼠标位置完成方向的转动。
2.SimpleCameraController4 控制在unity中设置的camera的角度和位置,根据玩家的操作获取键盘和鼠标的输入,对camera的position,rotation等进行转换和计算,实现游戏中角色视角和位置的控制。
3. BattleRoomManager 主要对FPS游戏的多人化以及房间的相应功能进行管理,封装方法,声明和管理游戏变量。 实现随机出生点的功能,使得玩家们在最初进入游戏以及每次复活时,随机选取已经设定好的多个出生点中的其中一个进入游戏。 获取键盘esc按键的输入,当检测到该输入时打开设置面板并且取消鼠标控制。使用携程完善随即复活,延时生成玩家。设定积分规则和逻辑,在游戏结束后显示战绩,计算综合分数决定冠军。
4.LocalManager设置当前玩家为第一人称界面,同时界面显示为枪和外部场景
5.FPCharacterControllerMovement
FPCharacterControllerMovement4用于获取玩家的输入行为,根据相应的按键输入等对角色的移动进行控制。
6.Player:在血量变为0时,玩家死亡,生命数-1,并在生命数不为0的情况下三秒后复活,而生命数为0时玩家不再复活直接结束游戏;实现玩家在射击到其他玩家时,自己的分数增加
7.PlayerOverviewPanel:通过颜色区分人物,在unity场景中显示多个玩家的分数以及生命数
3.太空陨石
主要实现了对人物的区分,生命数以及界面分数问题,对飞船的管理
1.PlayerOverviewPanel:通过颜色区分人物,在unity场景中显示多个玩家的分数以及生命数
2.Asteroid: 调用PhotonNetwork.Instantiate()实例化时通过photonView.InstantiationData获取需要同步的信息,根据陨石的位置摧毁,玩家发出子弹射击到陨石(通过碰撞完成)则会给自身加分。
3.Spaceship 对飞船进行控制的脚本,飞船的移动,开火以及重生
4.跑酷
主要包括游戏的开始与结束,以及地面的移动问题
1.Ground:通过设置地面移动的起始位置和结束位置以及地面的移动速度来实现游戏界面中玩家角色不跑,地面跑动,同时在不断回到起始点时,设置在地面上方随机生成金币
2.GameMgr:管理游戏的Panel界面显示,包括金币数量的显示、游戏结束后的重新游戏界面,同时管理游戏的准备、进行中、结束的三个状态
3.EvenDispatcher:事件管理器,包括订阅事件与事件的触发。在该游戏中,订阅和触发玩家的跳跃事件以及吃金币事件,并进行注销
5.GUI界面
主要实现了后期对GUI界面的美化
二、完成过程
完成时间为从3月份确定题目开始一直到6月份
每周会开一次小组会议,把这一周一来小组整体情况以及每个人的情况进行汇总,并按照每个人的进度适时调整,不断解决问题。
总结
通过这一学期的项目实训,在实践中学习到了很多专业知识。例如从完全不会开发到对unity差不多熟练地使用以及对游戏的了解加深,代码能力的提升。同时也学到了小组一起协作做一个项目的能力,每个人在其中都扮演着必不可少的角色,有问题会一起探讨,会一起改bug。总之,不仅仅学到的是知识领域,也有的是团队协作。