无名商城论坛

搜索
查看: 338|回复: 0

[技术教程] 【技术教程】全屏秒杀是如何炼成的?

[复制链接]

1万

主题

1万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
32464
发表于 2022-5-8 14:07:51 | 显示全部楼层 |阅读模式

今天给你们带个调皮的修改教程,本来打算给你们开个直播教你们搞搞游戏的,一直来都没有时间。

给大家来个 来个。全屏攻击的修改教程和思路。
全屏攻击?这么秀的吗。
例如:
一枪过去,所有人都中枪。大概就是这么个意思~

ok,进入正题。首先选了个射击的游戏,之前搞过的一个游戏

老规矩dll拖进来准备开干了哦

打人嘛,打人会干嘛,肯定是这样啊

喷血嘛,常规HP

发现有两个比较敏感的类,翻译一下是玩家控制器和敌人数据。

首先自己要理解,(开启无脑递归循环模式)
1. 枪打在怪物身上,怪物会扣血
2. 怪物扣血游戏界面会刷新
3. 游戏界面刷新要拿到怪物现在的血量
4. 拿怪物血量要GETHP

妈呀我真是个小天才

言归正传,进到 敌人数据 的GETHP看看代码

一顿分析猛如虎,一看战绩0杠5。好吧 又是return大法,分析一下好像这个东西不是我们要找的东西。


等等,等等

敌人数据上面,藏了个敌人控制器,好东西好东西。

容我进去观摩观摩~
看到了一个大大大大的SetDamage。这不是设置伤害的函数吗,这在怪物控制器里设置伤害。很明显就是给怪物扣血啊

看看执行了什么东西,一进来传进一个伤害,先对怪物血量进行一个扣血
过后判断血量是不是还大于0。大于就正常显示被攻击动画,然后刷新界面中的血条。
若死亡< 0 则走Dead死亡函数


上面就可以无视了,我们去看看死亡函数
这里的函数就有点杂,简单给大家分析分析好了
首先进来 先拿到死亡僵尸的id
给僵尸一个死亡动画的速度为1秒(啊啊~我要倒地了)
然后开始播放,321开始倒地~

最后销毁角色地上的模型。

大概执行的流程就这个东西。
其中RemoveFromNavi这个函数,是用来遍历僵尸id是不是死亡的僵尸。
简单来说就是从僵尸堆里面找到你是不是死了,不是就下一个。

其实重点还是这段代码,僵尸对象是用一个数组存起来的,for可以将每一个对象拿出来做操作。
这里先放一放,我们看看哪里给僵尸扣血了

这里居然有个shoot的关键词,这不是射击的单词吗,偶好吧,看到这里我就知道我们这一期快结束了

首先进行一系列的判断,判断是不是能开枪吧之类的,如果条件成立的话就开始给僵尸扣血了。

首先一些基本的知识大家可以去学习一下,Unity3D的游戏对象是一个叫GameObject的东西。
比如看到的一把枪啊 一个人啊。都是一个GameObject对象。

这里首先拿到一个
被攻击的对象,然后绑定一个脚本,脚本叫做EnemyContorller,也就是敌人控制器
对象要执行EnemyContorller中的SetDamage给怪物进行一个伤害

我们前面可以看到一个代码就是,for便利出每一个僵尸的GameObject对象,我们就可以在这里用上了
这里就非常讲究了,首先你先给你打的对象打一枪不变。
然后,我们循环每一个僵尸,给在场所有的僵尸来一枪,兄弟,来快活啊~来造作啊~

嗯?开不开心?紧不紧张?刺不刺激?
赶紧保存进入游戏看下效果


看见没有,我就打一个僵尸,后面的跟着突突突~偶爽~

ok,简单的小试手 思路和实操送给大家。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表