一、接受任務
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
?
? ? ? ? 本章完。感謝閱讀!?