【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
本章完。感谢阅读!
相关文章:
【Unity2D 2022:NPC】制作任务系统
一、接受任务 1. 编辑NPC对话脚本: (1)创建静态布尔变量用来判断ruby是否接受到任务 public class NPCDialog : MonoBehaviour {// 创建全局变量用来判断ruby是否接到任务public static bool receiveTask false; } (2ÿ…...
【C++深度学习】多态(概念虚函数抽象类)
✨ 疏影横斜水清浅,暗香浮动月黄昏 🌏 📃个人主页:island1314 🔥个人专栏:C学习 🚀 欢迎关注:👍点赞 &…...
Ubuntu 安装CGAL
一、什么是CGAL CGAL(Computational Geometry Algorithms Library)是一个广泛使用的开源库,主要用于计算几何算法的实现。该库提供了一系列高效、可靠和易于使用的几何算法和数据结构,适用于各种应用领域。以下是 CGAL 的主要功能…...
RK3568平台开发系列讲解(网络篇)netfilter框架
🚀返回专栏总目录 文章目录 一、Netfilter 介绍二、netfilter 简单案例三、防火墙功能一、Netfilter 介绍 Linux内核自2.4版本开始引入了Netfilter框架,这是一项重要的网络功能增强。Netfilter框架由Linux内核防火墙和网络维护者 Rusty Russell 所提出和实现。这个作者还基于…...
检测音视频文件的声压
FFmpeg使用 ebur128 滤镜检测声压,EBU R128 是欧洲广播联盟(European Broadcasting Union,简称 EBU)推荐的音频响度测量和归一化标准。 ffmpeg -i input_video.mp4 -filter_complex ebur128peaktrue -f null --f null -ÿ…...
计算机网络-HTTP常见面试题
目录 1. HTTP是什么?2. HTTP常见的状态码?3. HTTP 常见的字段有哪些?4. GET和POST有什么区别:5. GET 和POST方法都是安全和幂等的吗?6. HTTP缓存技术7. HTTP/1.1相比HTTP/1.0提高了什么性能?8. HTTP/2做了什…...
LNMP搭建Discuz和Wordpress
1、LNMP L:linux操作系统 N:nginx展示前端页面web服务 M:mysql数据库,保存用户和密码,以及论坛相关的内容 P:php动态请求转发的中间件 数据库的作用: 登录时验证用户名和密码 创建用户和密码 发布和…...
java中的构造器
Java 中的构造器(也称为构造方法)是一种特殊的方法,用于初始化对象的状态。在创建 Java 类的实例时,构造器会被自动调用。 构造器的定义: 构造器的名称必须与类名完全相同。构造器没有返回值类型,甚至不包括…...
机器学习筑基篇,Ubuntu 24.04 快速安装 PyCharm IDE 工具,无需激活!
[ 知识是人生的灯塔,只有不断学习,才能照亮前行的道路 ] Ubuntu 24.04 快速安装 PyCharm IDE 工具 描述:虽然在之前我们安装了VScode,但是其对于使用Python来写大型项目以及各类配置还是比较复杂的,所以这里我们还是推…...
从0开始基于transformer进行股价预测(pytorch版本)
目录 数据阶段两个问题开始利用我们的代码进行切分 backbone网络训练效果 感觉还行,没有调参数。源码比较长,如果需要我后续会发(因为太长了!!) 数据阶段 !!!注意&#…...
【多GPU训练方法】
一、数据并行 这是最常用的方法。整个模型复制到每个GPU上。训练数据被均匀分割,每个GPU处理一部分数据。所有GPU上的梯度被收集并求平均。通常使用NCCL(NVIDIA Collective Communications Library)等通信库实现。参数更新 使用同步后的梯度…...
2024年PMP考试备考经验分享
PMP是项目管理领域最重要的认证之一,本身是IT行业比较流行的证书,近几年在临床试验领域也渐渐流行起来,是我周围临床项PM几乎人手一个的证书。 考试时间:PMP认证考试形式为180道选择题,考试时间为3小时50分。 考试计划ÿ…...
MT3046 愤怒的象棚
思路: a[]存愤怒值;b[i]存以i结尾的,窗口里的最大值;c[i]存以i结尾的,窗口里面包含✳的最大值。 (✳为新大象的位置) 例:1 2 3 4 ✳ 5 6 7 8 9 则ans的计算公式b3b4c4c5c6b7b8b9…...
深入了解代理IP常见协议:区别与选择
代理服务器在网络使用中扮演着重要的角色,是您设备和互联网之间的中间层。它不仅可以增强网络访问的安全性和隐私保护,还可以提供许多灵活的应用。使用代理时,不同的协议类型对数据交换具有不同的规则和特征。常见的代理协议包括HTTP代理、HT…...
【Linux 线程】线程的基本概念、LWP的理解
文章目录 一、ps -L 指令🍎二、线程控制 一、ps -L 指令🍎 🐧 使用 ps -L 命令查看轻量级进程信息;🐧 pthread_self() 用于获取用户态线程的 tid,而并非轻量级进程ID;🐧 getpid() 用…...
Dify中的工具
Dify中的工具分为内置工具(硬编码)和第三方工具(OpenAPI Swagger/ChatGPT Plugin)。工具可被Workflow(工作流)和Agent使用,当然Workflow也可被发布为工具,这样Workflow(工…...
在Visutal Studio 2022中完成D3D12初始化
在Visutal Studio 2022中完成DirectX设备初始化 1 DirectX121.1 DirectX 简介1.2 DirectX SDK安装2 D3D12初始化2.1 创建Windwos桌面项目2.2 修改符合模式2.3 下载d3dx12.h文件2.4 创建一个异常类D3DException,定义抛出异常实例的宏ThrowIfFailed3 D3D12的初始化步骤3.1 初始化…...
MobaXterm工具
MobaXterm 是一个增强型的 Windows 终端。其为 Windows 桌面提供所有重要的远程网络终端工具(如 SSH、X11、RDP、VNC、FTP、SFTP、Telnet、Serial、Mosh、WSL 等),和 Unix 命令(如 bash、ls、cat、sed、grep、awk、rsync 等&#…...
二分图练习
对于二分图我们可以用染色法 #include<bits/stdc.h> using namespace std;#define int long long const int N 2e65; int e[N],ne[N],h[N],idx 0; int colo[N]; int num 0;void add(int x,int y){e[idx] y;ne[idx] h[x];h[x] idx; } void dfs(int nod,int c){colo…...
创新设计策略:提升大屏幕可视化设计效果的关键方法
随着科技的不断发展和数据量的快速增长,数据可视化大屏在各个行业中的应用越来越广泛,可以帮助人们更好地理解和分析数据,可视化大屏设计也因此成了众多企业的需求。但很多设计师对可视化大屏设计并不了解,也不知道如何制作可视化…...
观成科技:隐蔽隧道工具Ligolo-ng加密流量分析
1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具,该工具基于TUN接口实现其功能,利用反向TCP/TLS连接建立一条隐蔽的通信信道,支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式,适应复杂网…...
【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器
——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的一体化测试平台,覆盖应用全生命周期测试需求,主要提供五大核心能力: 测试类型检测目标关键指标功能体验基…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序
一、开发准备 环境搭建: 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 项目创建: File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...
解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错
出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上,所以报错,到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本,cu、torch、cp 的版本一定要对…...
RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程
本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。 本文全面剖析RNN核心原理,深入讲解梯度消失/爆炸问题,并通过LSTM/GRU结构实现解决方案,提供时间序列预测和文本生成…...
鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南
1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发,使用DevEco Studio作为开发工具,采用Java语言实现,包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...
算法笔记2
1.字符串拼接最好用StringBuilder,不用String 2.创建List<>类型的数组并创建内存 List arr[] new ArrayList[26]; Arrays.setAll(arr, i -> new ArrayList<>()); 3.去掉首尾空格...
解决:Android studio 编译后报错\app\src\main\cpp\CMakeLists.txt‘ to exist
现象: android studio报错: [CXX1409] D:\GitLab\xxxxx\app.cxx\Debug\3f3w4y1i\arm64-v8a\android_gradle_build.json : expected buildFiles file ‘D:\GitLab\xxxxx\app\src\main\cpp\CMakeLists.txt’ to exist 解决: 不要动CMakeLists.…...
redis和redission的区别
Redis 和 Redisson 是两个密切相关但又本质不同的技术,它们扮演着完全不同的角色: Redis: 内存数据库/数据结构存储 本质: 它是一个开源的、高性能的、基于内存的 键值存储数据库。它也可以将数据持久化到磁盘。 核心功能: 提供丰…...
Ubuntu系统多网卡多相机IP设置方法
目录 1、硬件情况 2、如何设置网卡和相机IP 2.1 万兆网卡连接交换机,交换机再连相机 2.1.1 网卡设置 2.1.2 相机设置 2.3 万兆网卡直连相机 1、硬件情况 2个网卡n个相机 电脑系统信息,系统版本:Ubuntu22.04.5 LTS;内核版本…...
