【Unity2D 2022:NPC】制作任务系统

一、接受任务

1. 编辑NPC对话脚本:

        (1)创建静态布尔变量用来判断ruby是否接受到任务

public class NPCDialog : MonoBehaviour
{// 创建全局变量用来判断ruby是否接到任务public static bool receiveTask = false;
}

        (2)接受任务后可以射击

public class NPCDialog : MonoBehaviour
{// 创建全局变量用来判断ruby是否接到任务public static bool receiveTask = false;public void displayDialogBox(){// 接受任务后可以射击receiveTask = true;}
}

2. 编辑角色脚本:

        (1)在shoot()方法中增加判断,如果接受到任务才可以射击,否则不射击

public class Ruby : MonoBehaviour 
{// Ruby发射子弹private void shoot(){if(NPCDialog.receiveTask) {GameObject bulletObject = Instantiate(bulletPrefab, rb2d.position, Quaternion.identity);Bullet bullet = bulletObject.GetComponent<Bullet>();bullet.launch(lookDirection, 300);animator.SetTrigger("Shoot");playSound(rubyShootSound);}}}

 二、提交任务

1. 编辑NPC对话脚本:

        (1)创建静态布尔变量用来判断ruby是否接受到任务

public class NPCDialog : MonoBehaviour
{// 创建全局变量用来判断ruby是否完成任务public static bool missionComplete = false;
}

        (2)导入UnityEngine.UI命名空间

        (3)创建文本框对象

        (4)用文本框对象接收Text组件

using UnityEngine.UI;public class NPCDialog : MonoBehaviour
{// 创建全局变量用来判断ruby是否完成任务public static bool missionComplete = false;// 创建文本框对象private Text textBox;void Start(){// 用textBox接收Text组件textBox = GetComponent<Text>();}
}

        (5)任务完成时更换文本框内容

using UnityEngine.UI;public class NPCDialog : MonoBehaviour
{// 创建全局变量用来判断ruby是否完成任务public static bool missionComplete = false;// 创建文本框对象private Text textBox;void Start(){// 用textBox接收Text组件textBox = GetComponent<Text>();}public void displayDialogBox(){// 任务完成时更换文本框内容if(missionComplete) {textBox.text = "哦,伟大的Ruby。你居然真的把它们修好了,你人真好!";}}
}

三、任务完成的判定

1. 创建静态变量用来存储已经修好的机器人数量

public class Enemy : MonoBehaviour
{// 创建静态变量用来存储已经修好的机器人数量public static int fixedNum = 0;
{

2. 在机器人修复完成时将fixedNum自增1

public class Enemy : MonoBehaviour
{// 创建静态变量用来存储已经修好的机器人数量public static int fixedNum = 0;// 敌人修复完成public void enemyFixed(){fixedNum++;}
{

3. 每次机器人修复完成时进行判定,若全部修复完成则将missionComplete修改为true

public class Enemy : MonoBehaviour
{// 创建静态变量用来存储已经修好的机器人数量public static int fixedNum = 0;// 敌人修复完成public void enemyFixed(){fixedNum++;if(fixedNum == 36) {NPCDialog.missionComplete = true;}}
{

四、在任务完成时添加音效提醒

1. 创建机器人全部修复完成的音效

public class Enemy : MonoBehaviour
{// 创建机器人全部修复完成音效public AudioClip missionCompleteSound;
}

2. 在机器人修复完成时判断:若机器人全部修复完成,则播放任务完成的音效;否则播放机器人修复完成的音效

public class Enemy : MonoBehaviour
{// 创建机器人全部修复完成音效public AudioClip missionCompleteSound;// 播放敌人修复完成音效private void playFixSound(){if(NPCDialog.missionComplete) {audioSource.PlayOneShot(missionCompleteSound, 80);} else {audioSource.PlayOneShot(enemyFixSound, 80);}Invoke("stopAudioSourcePlay", 1.0f);}
}

3. 将任务完成音效赋值到missionComplete

 

        本章完。感谢阅读! 

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

类型“RouteRecordName”上不存在属性“includes”。 类型“symbol”上不存在属性“includes”

确定 route.name 运行时是 字符串&#xff0c;强制转换 为字符串。 removeRoute(id: string) { this.dynamRoute this.dynamRoute.filter(route > !(route.name as string).includes(id)) localStorage.setItem(dynamRoute, JSON.stringify(this.dynamRoute)) delete this.t…

4.3 设备管理

大纲 设备分类 输入输出 虚设备和SPOOLING技术

【C语言之高级编程】如何将指定变量或函数编译至固定的内存区域中?

如何将指定变量或函数编译至固定的内存区域&#xff1f; 1. 内存类型1.1 bss段&#xff08;Block Started by Symbol&#xff09;1.2 data段&#xff08;data segment&#xff09;1.3 text段&#xff08;code segment/text segment&#xff09;1.4 dec1.5 堆&#xff08;heap&a…

绝区玖--人工智能物料清单 (AI BOM)

前言 AI BOM 涵盖了从输入模型的数据到为模型提供支持的基础设施以及将 AI 从概念转化为生产的过程的一切。 但为什么我们需要人工智能物料清单&#xff1f;答案在于当今世界人工智能/Gen AI系统的复杂性和关键性&#xff1a; 透明度和可重复性&#xff1a;AI BOM 提供所有组件…

python怎么求因数

要想做到python语言求因数方法&#xff0c;首先要明白其中的原理&#xff1a; 1、对由123456789这九个数字组成的9位数进行分解质因数。 2、1234576982x3x3x7x13x23x29x113&#xff0c;所以他的值因数是113。 3、总共有362880种可能&#xff0c;从中找出值因数中最小的数字和…

动态规划算法专题二--路径问题

目录 专题二&#xff1a; 路径问题 题五 不同路径 1、算法解析 1、确定状态&#xff1a; 2、状态转移方程&#xff1a; 3、初始化&#xff1a; 4、填表顺序&#xff1a; 5、返回值&#xff1a; 2、代码 题六 不同路径II 1、算法解析 1、确定状态&#xff1a; 2、状态…

前端面试题(CSS篇六)

一、浏览器如何判断是否支持 webp 格式图片 &#xff08;1&#xff09;宽高判断法。通过创建image对象&#xff0c;将其src属性设置为webp格式的图片&#xff0c;然后在onload事件中获取图片的宽高&#xff0c;如果能够获取&#xff0c;则说明浏览器支持webp格式图片。如果不能…

Qt:13.多元素控件(QLinstWidget-用于显示项目列表的窗口部件、QTableWidget- 用于显示二维数据表)

目录 一、QLinstWidget-用于显示项目列表的窗口部件&#xff1a; 1.1QLinstWidget介绍&#xff1a; 1.2属性介绍&#xff1a; 1.3常用方法介绍&#xff1a; 1.4信号介绍&#xff1a; 1.5实例演示&#xff1a; 二、QTableWidget- 用于显示二维数据表&#xff1a; 2.1QTabl…

Vue学习笔记(小满zs)

本文章记录一下我的学习笔记&#xff0c;供复习参考。&#x1f3c6; 向大佬学习&#xff01;&#xff01;&#xff01; ⭐小满zs Nodejs Nodejs 三层组成 libuv&#xff08;处理事件循环、I/O操作&#xff09; 第三方库&#xff08;处理HTTP等&#xff09; V8引擎&#xff08…

Windows10系统下mysql5.6的安装步骤

1.下载mysql 下载地址&#xff1a;https://downloads.mysql.com/archives/community/ 在这里我们下载zip的包 2.解压mysql包到指定目录 3. 添加my.ini文件 # For advice on how to change settings please see # http://dev.mysql.com/doc/refman/5.6/en/server-configurat…

【欧美高端NFT链游--大嘴怪/小黄人】链游

#游戏#链游 呆萌的小黄人出现在大嘴怪的地盘上会发生什么有趣的事情呢?#动画#游戏#小黄人 大嘴怪与小黑人之间起了冲突&#xff0c;大嘴怪爆发了&#xff0c;他决定要给小黑人们一点颜色瞧瞧&#xff0c;用自己的拳头&#xff0c;以及&#xff1f;?嘴巴&#xff01;大嘴怪有…

视频号的视频,一键就下载了,方法全在这儿了!

居然还有人不知道&#xff1a;视频号里面的视频是没有地址的&#xff0c;只能有微信自带的浏览器中打开。 所以很多人在视频号找到想要的素材&#xff0c;却无法下载&#xff0c;表示很苦恼。 几天每天都有人群里求助&#xff1a;“求好心人帮我下载一下这个视频&#xff01;…

漏洞挖掘 | 记某证书站任意账号接管漏洞

下文中所述漏洞已修复 在前段时间的漏洞挖掘中&#xff0c;上了某证书站&#xff0c;打点的一处逻辑漏洞 访问某一站点&#xff0c;发现了一处登录页 点击登录按钮之后&#xff0c;发现该站点大概率是自写站点&#xff0c;存在逻辑漏洞的可能性大大增大&#xff0c;利用前期信…

产品软文应该怎么写,纯干货

产品软文是把一款产品的卖点很含蓄地表达在文章里面&#xff0c;通过特定的方式让这些枯燥的说明变得亲近人&#xff0c;以此传达一种价值观念&#xff0c;从而让人们对它产生一定的认知&#xff0c;能够潜移默化的感染着客户&#xff0c;可以提高产品和品牌的可见性和知名度。…

typora 两边太宽,设置宽度

步骤&#xff1a; 查看目前使用主题类型 文件 —> 偏好设置 —> 外观 —> 打开主题文件夹 修改对应的主题&#xff1a;max-width

ubuntu笔记本X86安装nomachine客户端

资源下载: 链接: link 一、首先下载文件 nomachine_8.2.3_4_x86_64.tar.gz到桌面。 二、打开终端,依次输入 进入root模式,需要输入密码,密码不可见。 sudu su复制nomachine_8.2.3_4_x86_64.tar.gz粘贴到/usr目录: cp -r nomachine_8.2.3_4_x86_64.tar.gz /usr进入

【后端开发实习】用MongoDB实现仓库管理的出库入库实战

用MongoDB实现仓库管理的出库入库 MongoDB什么是MongoDBMongoDB安装以及开始运行配置启动以及mongoshmongodb的基础使用命令启动和使用MongoDB服务数据库操作集合操作文档操作 项目部署在数据库中创建一张商品信息表提供信息表的增删改查操作接口 MongoDB 什么是MongoDB Mong…

‘wget‘ 不是内部或外部命令,也不是可运行的程序

在Windows环境下创建了虚拟环境并安装了wget包&#xff0c;但在使用该命令的时候仍然报错&#xff0c;‘wget’ 不是内部或外部命令,也不是可运行的程序 解决方案&#xff1a; 去官网下载对应位数的.exe文件&#xff0c;将其放在C:\Windows\System32目录下即可, 别下错版本&a…

C语言-预处理详解

文章目录 &#x1f3af;引言&#x1f453;预处理详解1.预定义符号1.1 __FILE__1.2 __LINE__1.3 __DATE__1.4 __TIME__1.5 __STDC__ 2.#define定义常量2.1 定义数值常量2.2 定义字符串常量 3.#define中使用参数3.1**使用示例**3.2注意事项 4.宏替换的规则5.宏函数和函数的对比5.…

windows远程连接virtualbox的ubuntu问题

一.安装vritualbox ubuntu&#xff0c;18、22版本比较稳定 1.推荐使用ubuntu22版本 2.ubuntu24对内存要求较高至少4G&#xff0c;时不时会死机&#xff0c;安装老是崩溃&#xff0c;恢复不了&#xff0c;如果电脑性能强悍那可以尝试。 3.ubuntu18 对vscode最高只能支持1.85.…