赞
踩
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
本章完。感谢阅读!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。