Unity官方案例噩梦射手开发总结<一> 角色的攻击功能实现

愉悦的寒假生活总是会猝不及防地迎来尾声,这也意味着我大一生活的进度条已经过半了。幸运的是,在我某位优秀的学长的带领下,我完整地开发出来了unity的官方案例噩梦射手并基本实现所有功能,也是让我这个大一的苟蒻积攒了不少的新知识。话不多说进入正题。

整个开发总结大体上我会分为这几几部分来写,分别是:游戏角色,怪物,gameManager,音效以及UI,可能会有所改动。

本篇就来讲解一下游戏中主角的功能实现以及脚本书写。

我们将下载好的资源包导入到unity工程中,由于案例太老,官方已经取消了该资源包的下载。下载途径是我在网上随便找i的。

https://pan.baidu.com/s/1bBUyYZArcL7HKnf1Hj2V0A 提取码: dk9y

所有的模型都是已经准备好了的,我们只需要利用组件以及脚本实现功能即可。对于主角,我们首先需要实现的功能有这几个:行走,攻击,受伤害时表现,死亡时表现.这些是最基本的东西,接下来我们来处理这些事。

对于角色的行走,老生常谈的事情了,再控制好相机的跟随,分别创建两个脚本playermovementcameraFollow来实现,这里的话我也就不再多讲,直接会在后面贴代码了。毕竟这些博客我的想法是重在整理新知识。值得一提的是,我在输入时利用的都是我学长自己开发的组件,所以有些地方可能会造成困惑。

而攻击功能呢,我们需要检测鼠标i的点击来控制角色是否开枪,同时还需要让我们的枪口,也就是我们的开枪的方向,要始终朝向我们鼠标所在的方向,这是功能需求。

这里我们首先需要预制一个游戏物体,作为我们开枪时发生出去的子弹,单独为其创建一个脚本叫做Bullet,来配置子弹的参数。具体代码如下:

public class Bullet : MonoBehaviour
{public int damage = 10;  //子弹伤害public float flySpeed = 100f; //飞行速度public float duration = 5f;  //子弹存在时间private Vector3 dir = Vector3.zero;  //飞行方向private bool isFire = false;public void Fire(Vector3 dir){this.dir = dir;  //确认方向isFire = true;Destroy(gameObject, duration);  //到时自动销毁}private void Update(){if (!isFire)return;transform.Translate(flySpeed * dir * Time.deltaTime);  //子弹的飞行} private void OnTriggerEnter(Collider other) //触发检测{EnemyBase enemy = null;if( other.TryGetComponent<EnemyBase>(out enemy)){enemy.GetDamage(damage);  //对怪物造成伤害}Destroy(gameObject);  //碰到怪物销毁子弹}
}

子弹预制体的inspector页面如下:

开枪功能的是实现,我们将其单独定义为一个脚本,叫做shoot,首先我们不应该将鼠标点击的检测设置为单次检测,很傻,体验感也很差,比较好的做法是在检测鼠标点击时采用连续检测,然后手动设置一个子弹生成速率,来控制我们在按下鼠标时子弹的发射频率。具体代码如下:

ublic class Shoot : MonoBehaviour
{public float rate = .2f;  //子弹生成速率public GameObject bulletPrefab;  //子弹预制体public Transform gunport;  //获取枪口的位置public AudioClip shootFx;  //音效(后面再说)private float timer = 0;  //计时器void Start(){timer = rate;  //在开始时先让计时器等于我们的速率,第一次按下直接发射子弹。}void Update(){if(PlayerInput .Instance .Shoot &&  timer >=rate)  //条件:判断到鼠标连续到鼠标连续点击并且计时器小于生成速率{GameObject bullet = Instantiate(bulletPrefab, gunport.position, Quaternion.identity);  //实例化子弹bullet.GetComponent<Bullet>().Fire(gunport.forward);  //调用子弹发射函数timer = 0;  //计时器归0AudioManager.Instance.PlayFx(shootFx, gunport.position);  //音效}timer += Time.deltaTime; //计时}
}

值得注意的是在上面两个脚本中,有用到的unity几个自带的函数方法。

1.   Destroy()函数:static void Destroy(Object obj, float t = 0.0F);

第一个参数是传入销毁物体,第二个参数是传入执行时间,没有该参数就是立刻销毁。

2.Transform.Translate()函数:

可传入两个参数,第一个是移动速度,这个速度既包含大小,也包含方向,是一个矢量,第二个参数是相对坐标系。详情可以移步这篇博客:http://t.csdn.cn/mipiC

3.Instantiate()函数:

实例化函数,也叫做克隆函数,具体可参考:http://t.csdn.cn/b5bAm

至此,我们角色的攻击的功能也就实现啦。脚本中包含的其他功能会在后面的博客再详细记录,大家如果有问题,也可以在评论区留言或者私信我,俺也是很热心的一个博主啦,那今天就先写到这吧,886~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/28359.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GAMES202-Shadow总结概括

截图均来自于闫令琪老师的GMAES202-Shadow&#xff0c;本文在于对课程内容进行总结以及加上自己的理解&#xff0c;希望帮助同学们加深对课程内容的理解&#xff0c;如有谬误请各位指正 复习本节需要的基本知识 1. Shadow Mapping 为了获得一张Shadow Mapping&#xff0c;需要…

暗黑破坏神:不朽 unity mmo arpg资源分包精讲

unity大型游戏资源管理——分包 视频讲解&#xff1a;点击观看 unity mmo arpg 暗黑破坏神&#xff1a;不朽 是一个大型的重度游戏&#xff0c;该游戏资源已经超过10G 所以它用了资源分包技术减少下载时间。 首包只包含基础资源&#xff0c;在玩家玩第一关的时候&#xff0c;后…

股票卖出技巧及原则,你了解哪些

股票卖出技巧及原则&#xff0c;你了解哪些&#xff1f;有句股谚说&#xff0c;“会买的是徒弟&#xff0c;会卖的是师傅&#xff0c;会空仓的是祖师爷”。以前都是把大部分精力放在了选股和如何买股上面&#xff0c;而对如何卖股票太忽视了。难怪总是出不了师&#xff0c;小学…

通达信破底翻选股公式,用缠论底分型进行优化

上次在写《通达信破底翻形态选股公式&#xff0c;选出破底之后再翻回的股票》这篇文章时&#xff0c;编写破底翻选股公式就考虑使用缠论底分型&#xff0c;但是底分型的包含关系较为复杂&#xff0c;不容易处理&#xff0c;只能暂时搁置&#xff0c;采用了一种简单的方式&#…

股票大作手操盘术[图解]

目录 第一章&#xff1a;投机是一项挑战 第二章 何时入场才是好时机 第三章 追随领头羊 第四章 手里的钱财 第五章 关键点 第六章 百万美元的大错 第七章 三百万美元的盈利 第八章 利弗莫尔市场要决 杰西•利弗莫尔为什么能在投机事业中取得巨大成功&#xff0c;这…

【通达信指标公式】主力博弈分时指标,分时图抓日内弱转强牛股

GHYJKU:BETWEEN((CLOSE*1)/(SUM(AMOUNT,BARSCOUNT((CLOSE*1)))/SUM(VOL*100,BARSCOUNT((CLOSE*1)))),1.05,0.95); VBNH:IF(GHYJKU0,MA((CLOSE*1),BARSCOUNT((CLOSE*1))),(SUM(AMOUNT,BARSCOUNT((CLOSE*1)))/SUM(VOL*100,BARSCOUNT((CLOSE*1))))); 紫色跟风:EXPMA((CLOSE/VBNH),…

ChatGPT写代码之——CodeWhisperer在VS Code下如何安装

一、安装 1. 在VS Code扩展中搜索AWS 点安装就安装好了 #二、配置 1. 点击状态栏出现的AWS 选择add New Connection 选择Use a personal email to sign up and sign in with AWS Builder ID 选择Copy Code for AWS builder ID 跳转到浏览器 2. 在浏览器上一步步用自己的邮…

计算机程序设计类论文,计算机编程论文

计算机编程论文 介绍:本栏目是计算机和编程和论文相关的论文例文,免费教你怎么写关于计算机编程的论文提供相关文献资料。 【摘 要】本探究经过问卷调查、现场采访、走访调查、查阅文献资料等方法对河南省各大高校计算机专业大学生的学习情况(特别是编程能力)进行了调查和研。 …

爱丁堡计算机专业硕士世界排名,爱丁堡大学计算机世界排名

导读&#xff1a;,伴随着科技与经济的高速发展&#xff0c;计算机技术专业成为一门热门的专业&#xff0c;越来越受到人们的欢迎&#xff0c;学校的师资力量和教育水平&#xff0c;也直接成为影响我们选择高校的原因之一。 伴随着科技与经济的高速发展&#xff0c;计算机技术专…

爱丁堡大学计算机专业alevel,爱丁堡大学alevel要求?

原标题&#xff1a;爱丁堡大学alevel要求&#xff1f; 爱丁堡大学接受A-level和国际文凭课程的直接申请&#xff0c;每个学位课程都必须达到特定标准的要求才能入学。例如&#xff1a;申请爱丁堡大学商学院本科课程A-level要求AAA-ABB&#xff0c;兽医学(5年制)A-level要求为AA…

革微信的命,要靠“聊天即挖矿”?

广告诱惑我们追求名车服饰,从事自己憎恨的工作,为的就是买堆根本没用的狗屁东西。 ——Tyler Durden,《搏击俱乐部》 2019年1月15日,注定是一个不平凡的日子,这一天,3家公司揭秘了酝酿已久的社交产品——分别是罗永浩的聊天宝,王欣的马桶MT,张一鸣的多闪。目的只有一个…

用AI重构骨架,打造未来感IP体验经济

我国网文市场目前拥有近2000万位作家、4.9亿名读者。 如果将庞大的网文行业比作一个江湖&#xff0c;那么拥有2.4亿月活用户的阅文集团&#xff08;HK00772&#xff0c;股价33.2港元&#xff0c;市值338.06亿港元&#xff09;&#xff0c;称得上是“天下第一大派”。 “第一大…

NLP-预训练模型-GPT系列:GPT-1(2018-06)、GPT-2(2019-02)、GPT-3(2020-05)、InstuctGPT(2022-01)、chatGPT(2022-11)

GPT1:Imporoving Language Understanding By Generative Pre-training GPT2:Lanuage Models Are Unsupervised Multitask Learners GPT3:Language Models Are Few-shot Learners GitHub:https://github.com/openai/gpt-3 从GPT三个版本的论文名也能看出各版本模型的重点…

后端学习路线(包含博主买的课程)(持续更新中...)

快速了解Java体系(尚硅谷雷神主讲): Java技术栈 前端学习路线 博主已购买此网站的永久会员&#xff0c;含有大量付费资源&#xff0c;需要的私聊&#xff1a; 666资源站-666资源站 学习建议&#xff1a; 开发过程中&#xff0c;建议结合ChatGPT开发&#xff0c;减少重复工作…

GPT全家桶再添一员!看论文神器,ResearchGPT,可立即试用

文&#xff5c;Pine 发自 凹非寺源&#xff5c;量子位 科研人员福音&#xff01;专门和论文对话的“ChatGPT”来了。 懒得看论文&#xff1f;没关系&#xff0c;直接让这个工具帮你看&#xff0c;有什么问题直接问它就好了。 而你全程要做的就只有上传论文和问问题。 但又感觉心…

副业是刚需?分享几个程序员接外包私活的网站

经常看到某某程序员接了个项目开发&#xff0c;工作之余轻轻松松赚了钱还顺带提升了技术&#xff1b;或者看到某大佬又发表了一篇程序员技术提升稿件&#xff0c;阅读点赞收藏三连发&#xff0c;这个月的零花钱又不愁了...但自己只是一名普普通通的程序员&#xff0c;能找到这样…

PostgreSQL 不能数据备份及恢复失败,提示postgresql Please correct the Binary Path in the Preferences dialog

备份或恢复提示&#xff1a; Please correct the Binary Path in the Preferences dialog. 看了一下路径&#xff0c;原因是路径不一样 解决方案 File - Preferences -Paths - Binary paths 改成&#xff1a;&#xff08;根据自己安装的位置&#xff0c;复制bin路径过去就…

微信备份聊天记录,显示连接错误,终极解决办法

微信备份聊天记录到电脑时&#xff0c;提示连接错误&#xff0c;网上找了各种办法&#xff0c;关闭防火墙&#xff0c;链接同一wifi&#xff0c;没有解决&#xff0c;有可能和我的路由器有关&#xff0c;如果大家遇到连接同一个路由器WiFi还是无法备份&#xff0c;可以尝试以下…

学术科研专用ChatGPT来了!Github上已斩获2w+ Star

来源&#xff1a;新智元 自从ChatGPT发布之后&#xff0c;各路大神都开始研究如何把它加入到自己的「科研工作流」当中。 比如「数学天才」陶哲轩就表示&#xff0c;他已经将ChatGPT纳入了自己的工作流程。 最近&#xff0c;一位网友也分享了自己的「ChatGPT 学术优化」项目。 …

使用 ChatGPT(简单)+ GitHub 存储库创建 C# 聊天机器人

在本指南中&#xff0c;我们将深入探讨使用 ChatGPT 和 C# 构建聊天机器人的过程。我们将涵盖从设置 ChatGPT API 访问到部署聊天机器人的所有内容。让我们开始吧&#xff01; 最后你会发现 GitHub Repo 设置您的 ChatGPT API 访问权限 在我们开始构建我们的聊天机器人之前&…