Creați un sistem de căutare în Unity

Misiunile sunt o parte fundamentală a multor jocuri, oferind jucătorilor obiective și recompense. În acest tutorial, veți învăța cum să creați un sistem simplu de misiuni în Unity. Vom acoperi crearea, urmărirea și finalizarea misiunilor.

Configurarea Proiectului

Înainte de a începe să codificăm, să configuram un proiect simplu Unity:

  1. Creați un nou proiect Unity.
  2. Creați un dosar nou numit Scripts pentru a ne organiza scripturile.
  3. Creați un alt dosar numit Resources pentru a stoca datele despre misiunile noastre.

Crearea clasei Quest

Primul pas este să definiți o clasă Quest pentru a păstra informații despre misiuni, cum ar fi titlul, descrierea și starea de finalizare.

using UnityEngine;

[System.Serializable]
public class Quest
{
    public string title;
    public string description;
    public bool isCompleted;

    public Quest(string title, string description)
    {
        this.title = title;
        this.description = description;
        this.isCompleted = false;
    }

    public void CompleteQuest()
    {
        isCompleted = true;
        Debug.Log("Quest Completed: " + title);
    }
}

Crearea managerului de misiuni

Apoi, avem nevoie de un manager care să se ocupe de misiunile noastre. Clasa QuestManager va stoca și gestiona misiunile active.

using System.Collections.Generic;
using UnityEngine;

public class QuestManager : MonoBehaviour
{
    public List<Quest> quests = new List<Quest>();

    void Start()
    {
        // Example quests
        quests.Add(new Quest("Find the Key", "Find the key to unlock the door."));
        quests.Add(new Quest("Defeat the Dragon", "Defeat the dragon in the cave."));
    }

    public void CompleteQuest(string title)
    {
        Quest quest = quests.Find(q => q.title == title);
        if (quest != null && !quest.isCompleted)
        {
            quest.CompleteQuest();
        }
    }

    public List<Quest> GetActiveQuests()
    {
        return quests.FindAll(q => !q.isCompleted);
    }
}

Afișarea misiunilor în interfața de utilizare

Pentru a afișa misiuni jucătorului, avem nevoie de o interfață simplă. Creați o pânză și un element Text în scena dvs. pentru a afișa lista de misiuni.

using UnityEngine;
using UnityEngine.UI;

public class QuestUI : MonoBehaviour
{
    public Text questListText;
    private QuestManager questManager;

    void Start()
    {
        questManager = FindObjectOfType<QuestManager>();
        UpdateQuestList();
    }

    void UpdateQuestList()
    {
        questListText.text = "Quests:\n";
        foreach (Quest quest in questManager.GetActiveQuests())
        {
            questListText.text += "- " + quest.title + ": " + quest.description + "\n";
        }
    }
}

Interacțiunea cu Misiuni

Să adăugăm câteva funcționalități pentru a interacționa cu misiunile noastre. De exemplu, putem adăuga un buton pentru a finaliza o misiune.

using UnityEngine;

public class QuestGiver : MonoBehaviour
{
    public string questTitle;

    void OnTriggerEnter(Collider other)
    {
        if (other.CompareTag("Player"))
        {
            QuestManager questManager = FindObjectOfType<QuestManager>();
            questManager.CompleteQuest(questTitle);
        }
    }
}

Testarea sistemului Quest

Pentru a testa sistemul de misiuni, adăugați un QuestManager și QuestUI la scena dvs. Creați o zonă de declanșare simplă cu un script QuestGiver atașat și atribuiți un titlu de misiune de finalizat.

Concluzie

Am acoperit elementele de bază ale creării unui sistem de misiuni în Unity. Am învățat cum să creăm misiuni, să le gestionăm, să le afișam în interfața de utilizare și să interacționăm cu ele. Aceste concepte pot fi extinse pentru a crea sisteme de misiuni mai complexe în proiectele dumneavoastră Unity.