Uwaga! Jeżeli bierzecie skrypty z bloga to muszą być one nazwane dokładnie tak samo nazwane w Unity jak napisałem nad tymi skryptami!
Unity Programowanie dla każdego
Wyszukiwarka blogu
niedziela, 9 czerwca 2019
Spawn i punkty patrolu NPC
W tym poście pokaże jak zrobić tak aby NPC chodziły po wyznaczonych punktach patrolu.
!Pamiętajcie że gdy korzystacie z tych skryptów to "Tag" przy punktach patrolu musi mieć nazwę: "PunktPatrolu"
Uwaga! Jeżeli bierzecie skrypty z bloga to muszą być one nazwane dokładnie tak samo nazwane w Unity jak napisałem nad tymi skryptami!
Uwaga! Jeżeli bierzecie skrypty z bloga to muszą być one nazwane dokładnie tak samo nazwane w Unity jak napisałem nad tymi skryptami!
czwartek, 6 czerwca 2019
Światło
Rodzaje Światła
Światło w grach pełni bardzo ważną role. W tym poście są pokazane 3 rodzaje światła dostępne w Unity. Jest oczywiście jeszcze kilka rodzajów świateł ale te są najbardziej przydatne.
1. Directional Light
Jest to światło które jest wstawione domyślnie na każdej scenie. Działa ono na całym świecie i zachowuje się jak słońce. Obracając to światło można oczywiście zmienić kont padania światła.
1. Directional Light
Jest to światło które jest wstawione domyślnie na każdej scenie. Działa ono na całym świecie i zachowuje się jak słońce. Obracając to światło można oczywiście zmienić kont padania światła.
2. Point Light
Point Light diała na zasadzie żarówki. W przeciwieństwie do Directional Light to światło działa tylko na wybranym obszarze. Obiekty kture znajdują się poza obszarem działania nie są oświetlone.
3. Spot Light
Ten rodzaj światła działa jak latarka. Jest to taki słup światła.
środa, 22 maja 2019
Animacje
W Unity można oczywiście stworzyć postacie animowane. W tym poście nie będzie pokazane jak stworzyć animacje tylko jak animować postać. Aby zacząć coś animować to trzeba mieć co. Ja korzystam z animacji i modeli postaci kupionych w Asset Store. Pamiętajcie że jeżeli kupujecie animacje lub modele postaci to muszą być one zgodne z Mecanim. Jeżeli w opisie animacji lub modelu niema wyraźnie napisane że jest zgodne z Mecanim to tego nie kupujcie.
Do obsługi animacji potrzebne jest coś takiego co nazywa się "Animator". Tworzymy nowy folder (np. Animacje) klikamy prawy przycisk myszki w pustym miejscu w folderze potem "Create" i "Animator Controller" Tak jak na poniższym obrazku:
Jeżeli każdą animacje macie ponumerowaną tak jak na załączonym powyżej obrazku i filmie to zamieszczony poniżej skrypt na pewno zadziała. Uwaga! Jeżeli kopiujecie ten skrypt to na początku Trzeba wykasować wszystko po utwożenu skryptu(czyli np. "void Start" czy "using System.Collections;") ponieważ taki skrypt nie zadziała.
wtorek, 21 maja 2019
Skrypty gry
To już ostatni post z gry UFO. Trudno jest wszystko wytłumaczyć samym pisaniem więc dziś też przygotowałem film. Pod filmem są skrypty do gry można skopiować i wkleić lecz radzę się zapoznać z poprzednimi postami.
Zapraszam do oglądania :)
Skrypt Camery
public GameObject player; //Zmienna publiczna do przechowywania odniesienia do obiektu gry gracza
private Vector3 offset; //Zmienna prywatna do przechowywania odległości przesunięcia między odtwarzaczem a aparatem
// Use this for initialization
void Start ()
{
//Oblicz i zapisz wartość przesunięcia, uzyskując odległość między pozycją gracza a pozycją kamery.
offset = transform.position - player.transform.position;
}
//LateUpdate jest wywoływany po aktualizacji każdej ramki
void LateUpdate ()
{
// Ustaw pozycję transformacji kamery tak, aby była taka sama jak gracza, ale przesunięta o obliczoną odległość przesunięcia.
transform.position = player.transform.position + offset;
}
Skrypt UFO
public float speed; //float oznacza prętkość naszega duszka
public Text countText; //zmienna oznaczająca punkty przy zebraniu punktów
public Text winText; //Text który pokarze się po wygranej
private Rigidbody2D rb2d; //zmiana nazwy Rigidbody2D który opsługuje fizykę playera
private int count; //Liczba zebranych punktów.
// Use this for initialization
void Start()
{
//pozwala nam na urzycie Compeneta Rigidbody po wisaniu rb2d
rb2d = GetComponent<Rigidbody2D> ();
//ustawia punkty na zero
count = 0;
//Zainicjuj winText do pustego łańcucha, ponieważ jeszcze nie wygraliśmy na początku.
winText.text = "";
//Wywołaj naszą funkcję SetCountText, która zaktualizuje tekst o bieżącą wartość zliczania.
SetCountText();
}
//FixedUpdate jest wywoływane w ustalonym interwale i jest niezależne od liczby klatek na sekundę. Umieść tutaj kod fizyki.
void FixedUpdate()
{
//Przechowuj bieżące poziome wejście w ruchu swobodnym Poziomo.
float moveHorizontal = Input.GetAxis ("Horizontal");
//Przechowuj bieżące wejście pionowe w ruchu swobodnymPionowe.
float moveVertical = Input.GetAxis ("Vertical");
//Użyj dwóch pływaków sklepu, aby utworzyć nowy ruch zmiennej Vector2.
Vector2 movement = new Vector2 (moveHorizontal, moveVertical);
//Nazwij funkcję AddForce naszego ruchu dostarczającego Rigidbody2D rb2d pomnożonego przez prędkość, aby przenieść naszego gracza.
rb2d.AddForce (movement * speed);
}
//OnTriggerEnter2D jest wywoływany za każdym razem, gdy obiekt nakłada się na zderzacz wyzwalacza.
void OnTriggerEnter2D(Collider2D other)
{
//Sprawdź podany parametr Collider2D inny, aby sprawdzić, czy jest oznaczony jako „PickUp”, jeśli jest ...
if (other.gameObject.CompareTag ("PickUp"))
{
//... następnie ustaw inny obiekt, z którym właśnie się zderzyliśmy, na nieaktywny.
other.gameObject.SetActive(false);
//Dodaj jedną do bieżącej wartości naszej zmiennej licznika.
count = count + 1;
//Zaktualizuj aktualnie wyświetlaną liczbę, wywołując funkcję SetCountText.
SetCountText();
}
}
//Ta funkcja aktualizuje tekst wyświetlający liczbę zebranych obiektów i wyświetla naszą wiadomość o zwycięstwie, jeśli wszystkie zostały zebrane.
void SetCountText()
{
//Ustaw właściwość text naszego naszego obiektu countText na „Count:”, a następnie liczbę zapisaną w naszej zmiennej count.
countText.text = "Count: " + count.ToString ();
//Sprawdź, czy zebraliśmy wszystkie 12 pickupów. Jeśli mamy...
if (count >= 12)
//... następnie ustaw właściwość text naszego obiektu winText na "Wygrywasz!"
winText.text = "You win!";
}
}
Skrypt PickUp
//Update is called every frame
void Update()
{
//Obróć transformację obiektu gry o 45 stopni, biorąc pod uwagę czas, jaki upłynął od ostatniej klatki.
transform.Rotate(new Vector3(0, 0, 45) * Time.deltaTime);
}
Uwaga!! Jeśli skrypt Playera nie działa to proszę wpisać using UnityEngine.UI; na górze skryptu
niedziela, 19 maja 2019
Przygotowanie gry UFO
Gdy zdobędziesz grafikę (co możesz dowiedzieć się z poprzedniego bloga) kliknij w folder
Sprites bądź Materials ogólnie tam gdzie znajdują się obiekty.
Następnie naciągnij obrazki na scenę:
Jeśli kamera pokazuje za mały obszar kliknij ją i powiększ kwadrat, który do niej należy.
Następnym krokiem będzie stworzenie muru, by nasz player nie mógł wyjść po za pole.
By to zrobić klikamy na nasz ground i w Inspector na samym dole wybieramy AddComponent(3)
przyciskamy i wyszukujemy BoxColider2D niestety trudno pokazać wszystko na blogu więc by kontynuować oglądnijcie ten film
Sprites bądź Materials ogólnie tam gdzie znajdują się obiekty.
Następnie naciągnij obrazki na scenę:
- Podłogę
- Ufo (ma znajdować się na podłodze)
- Punkty (ustaw po 10 na podłodze)
Ma to wyglądać w tę sposób
(UWAGA! jeśli nie widać duszków lecz są one na scenie przyciśnij danego duszka z Hierarchy i zmień liczbę w Order in Layer(1) z Inspectora(2) na jeden bądź większą)
(UWAGA! jeśli nie widać duszków lecz są one na scenie przyciśnij danego duszka z Hierarchy i zmień liczbę w Order in Layer(1) z Inspectora(2) na jeden bądź większą)
Następnym krokiem będzie stworzenie muru, by nasz player nie mógł wyjść po za pole.
By to zrobić klikamy na nasz ground i w Inspector na samym dole wybieramy AddComponent(3)
przyciskamy i wyszukujemy BoxColider2D niestety trudno pokazać wszystko na blogu więc by kontynuować oglądnijcie ten film
Na następnym poście pokaże jak stworzyć scrypty
(Jeżeli film nie działa proszę wejść na youtuba z danego linku: https://www.youtube.com/watch?v=SwAu0m7CewE )
czwartek, 9 maja 2019
Podstawa programowa C#
Witam !
Ten post jest konieczny do nauki programowania.
Nauczysz się podstaw i co oznaczają poszczególne skrypty.
Tłumaczenie brzmi poziom i pion, lecz w Unity jest to bardziej złożone więc zachęcam do głębszego zapoznania się z tymi znaczeniami.
Ten post jest konieczny do nauki programowania.
Nauczysz się podstaw i co oznaczają poszczególne skrypty.
- int - przechowuje wartość liczbową (tylko liczby naturalne)
- float - podobnie co int tylko potrafi przechować liczby w ułamkach
- public - jak sama nazwa wskazuje tworzy skrypt publiczny, czyli widoczny dla wszystkich sam w sobie nic nie robi
- private - tak samo co public tylko na odwrót
- AddForce - dodaje siłę np: ruchu (łączy się głównie z Rigidbody)
- Rigidbody - pewien system w Unity zachowujące właściwości Fizyczne
- if - "Jeżeli" (Jeżeli coś się stanie zrób coś)
- GetComponent<nazwa systemu> - "znajdź system" szuka systemu w Unity np: Rigitbody
Tłumaczenie brzmi poziom i pion, lecz w Unity jest to bardziej złożone więc zachęcam do głębszego zapoznania się z tymi znaczeniami.
Uwaga! Ten post będzie często aktualizowany i będą tu coraz nowsze i trudniejsze pojęcia zachęcam do śledzenia.
wtorek, 7 maja 2019
Skąd zdobyć grafikę ?
By stworzyć grę potrzebna jest grafika, czyli postacie lub tło. Skąd taką wziąć?
Można oczywiście zrobić ją własnoręcznie w programie do tworzenia grafiki np: Blender.
Jest jednak prostszy sposób. W Unity istnieje coś takiego jak AssetStore.
Można oczywiście zrobić ją własnoręcznie w programie do tworzenia grafiki np: Blender.
Jest jednak prostszy sposób. W Unity istnieje coś takiego jak AssetStore.
Po kliknięciu powinny się pokazać gry i grafika.Trzeba uważać na płatną grafikę.
U góry możecie wyszukać interesującą was grafikę taką która będzie wam odpowiadać.
Do gry którą tworzymy powinniście znaleźć:
- ufo z lotu ptaka
- jakieś podłoże (najlepiej kwadrat)
- punktu (Pickup)
Po zdobyciu materiałów czekajcie na następny wpis.:)
Subskrybuj:
Komentarze (Atom)









