czasowe wyswietlanie misji

Tutoriale ogólnie, nie tylko Unity.

czasowe wyswietlanie misji

Postprzez daniel87exodus » 16 Kwi 2019, 14:24

witam serdecznie jestem nowy na forum jak i Świerzyakiem jeśli chodzi o unity 3d itp . Mam pytanie odnośnie misji .Przeszukałem wiele stron itp i nigdzie nie znalazłem odpowiedzi na mój problem mianowicie chodzi mi o to jak zrobić to ( zamieszczam foto)
chciałbym sobie zrobić gierkę że jestem policjantem i w trakcie patrolu dostaje losowe zgłoszenia , misje ( ewentualnie dodatkowo odpowiadam na nie przyjmuje lub nie ) .
1. jak napisać czasowe wyświetlanie takich okienek z misjami .\
2. do tego jak napisać skrypt czy przyjmuje zgłoszenie czy nie .
jest to problem z którym trwam już bardzo długo i nigdzie nie mogę znaleźć odpowiedzi proszę o pomoc.

FOTO PONIŻEJ
https://zapodaj.net/107dafea89aed.jpg.html
daniel87exodus
 
Posty: 1
Rejestracja: 16 Kwi 2019, 14:08
Has thanked: 0 time
Been thanked: 0 time

Re: czasowe wyswietlanie misji

Postprzez patrykas1000 » 16 Kwi 2019, 22:12

Unity ma mechanizm ScriptableObject, jest to coś pokroju skryptu (zamiast dziedziczyć po MonoBehaviour, klasa dziedziczy po ScriptableObject) taki skrypt może mieć swoje implementacje w postaci pliku. Dla przykładu:

Kod: Zaznacz wszystko
using UnityEngine;

[CreateAssetMenu(fileName = "Foo", menuName = "My game/Create Foo")]
public class Foo : ScriptableObject {
    public int bar;
}

Klikając PPM w liście plików (tak jak tworzysz skrypty, materiały itp) masz opcje "My game" > "Create Foo" która tworzy plik w którym możesz ustawić dowolne wartości dla zmiennej "bar", takich możesz mieć ile chcesz każdy inny, czaisz o co chodzi. Unity ma wystarczający manual by to zrozumieć.

Możesz stworzyć sobie główny ScriptableObject - Misja który będzie mieć podstawowe parametry: opis, wartość, reputacja, czas wykonania. Następnie stworzysz pochodne od niego (dziedziczące) takie jak Misja typu zdobądź X czegoś, dotrzyj na miejsce, zatrzymaj pojazd, itp. Każdy taki będzie mieć swoje dodatkowe parametry, np. "Zdobądź dowody" będzie mieć listę obiektów które trzeba podnieść a "Zatrzymaj pojazd" będzie mieć informacje o obiekcie do zatrzymania.

Każdy skrypt będzie mieć funkcje która inicjalizuje misję w świecie gry, np. "Zbierz X przedmiotów" będzie umieszczać w świecie gry te przedmioty wg. określonych zasad (losowe miejsce w odległości do 3km od gracza) itp.

Taka funkcja będzie wywoływana z przy akceptacji zadania.

Przyda też się menedżer misji który będzie trzymać unikalne zaprojektowane przez ciebie misje (np. coś fabularnego) + będzie umiał generować w biegu proste misje które są typowym wypełniaczem by nawet po przejściu całej gry nadal było co robić. Od to poste składanie formułek "Mamy podejrzanego [losowe nazwisko], ostatnio był widziany [losowe miejsce]. Znajdź go" i ustawianie tych wartości do zmiennych.

Menedżer co losowy czas (bądź na wywołanie funkcji spowodowane fabularnym wydarzeniem) będzie wybierać z listy jakąś misję i wyświetlać komunikat. W momencie akceptacji przeniesie misję do oddzielnej zmiennej trzymającej aktualnie wykonywaną misję, wtedy wszystkie timery w ruch, wywołanie init, i łapanie eventów by doglądać misji.

Po wykonaniu misja może zostać skasowana albo odłożona do innej listy z wykonanymi misjami żeby gracz mógł przeglądać swoje sukcesy i porażki.


Żeby sobie ułatwić tworzenie misji możesz stworzyć własny edytor w Unity - dziedziczenie po "EditorWindow".

A tutaj kilka linków które ci pomogą:
Unity ScriptableObject:
https://docs.unity3d.com/Manual/class-S ... bject.html

Unity EditorWindow:
https://docs.unity3d.com/Manual/editor- ... ndows.html

Unity UI:
https://docs.unity3d.com/Manual/UISystem.html

C# Delegate:
https://docs.microsoft.com/en-us/dotnet ... delegates/

EDIT:

Brackeys ma bardzo prosty ale wyjaśniający najbardziej podstawowe podejście do problemu poradnik - dokładnie wszystko o co prosisz:
https://www.youtube.com/watch?v=e7VEe_qW4oE

Obczaj sobie jego kanał ma dobry content, zwłaszcza dla początkujących, ale nawet trochę bardziej doświadczone osoby znajdą coś dla siebie, a najważniejsze że często uczy dobrych praktyk.
patrykas1000
 
Posty: 343
Rejestracja: 16 Sie 2013, 21:35
Has thanked: 0 time
Been thanked: 0 time


Wróć do Tutoriale

Kto jest na forum

Użytkownicy przeglądający to forum: Brak zarejestrowanych użytkowników oraz 1 gość