Trochę czasu minęło od poprzedniego artykułu z Blenderem, w którym zakończyliśmy tworzenie naszego „patyczaka”. Przeszliśmy przez proces obsługi Blendera, modelowania, a następnie animowania postaci. Czas najwyższy dać jej życie w naszej grze i rozpocząć wstęp do Unity. Zaczniemy małymi krokami, dlatego w tym wpisie zajmiemy się prostym mechanizmem z ruchem krążka hokejowego.
Pobranie Unity
Żeby pobrać silnik Unity, wejdź na stronę unity.com i wybierz przycisk Get started. Przeniesie Cię on do strony, na której zdecydujesz o wersji i typie licencji programu. Do użytku edukacyjnego/niekomercyjnego spokojnie można wykorzystać licencję Individual -> Personal. Pobierz program, uruchom plik i zainstaluj silnik. 🙂
Pierwsze kroki
Po uruchomieniu programu pojawi się okno, w którym będziesz mógł wybrać istniejący projekt lub stworzyć nowy. Kliknij New i wybierz Wzorzec 3D. Podaj lokalizację, w której ma zostać zapisany projekt i wpisz jego nazwę. Ostatni klik w Create i uruchamia się aplikacja z nowym projektem Unity.
Pierwsze obiekty
Tworzymy teren
Po lewej stronie znajduje się lista obiektów świata naszej gry. Warto na samym początku dodać podłoże, po którym obiekty będą się poruszać. Wystarczy, że najedziesz na obszar elementów, a następnie wybierzesz PPM -> 3D Object -> Terrain. W efekcie pojawi się szachownica, która jest położona w początkowym punkcie świata. Po zaznaczeniu obiektu Terrain na liście, pojawi się widok ustawień terenu. Wybierz opcję ustawień (ikona zębatki) i zjedź do sekcji z rozmiarem obiektu.
Wydaje mi się, że szerokość i długość ustawiona na 500, a wysokość na 300 spokojnie wystarczy dla naszego przykładu.
W sekcji Transform ustaw pozycję X oraz Z na wartość -250. Dzięki temu punkt startowy będzie na środku terenu.
Krążek
Podłoże już mamy, czas na obiekt, którym będziemy poruszać. Wykorzystajmy coś prostego, niech to będzie cylinder. Aby go dodać postępuj podobnie jak w przypadku tworzenia terenu. Najedź na listę obiektów, a następnie wybierz PPM -> 3D Object -> Cylinder. Na środku pojawi się nowy element. Jego położenie i rozmiar można zmieniać manipulując skalą i pozycją. Chcemy przecież żeby nasz „krążek” poruszał się po terenie, a nie przez niego przechodził. Proponuję ustawić wysokość pozycji na 0.1, a rozmiar dla odpowiednio x, y, z na 1, 0.1, 1.
W rezultacie powinien pojawić się obiekt tak jak na poniższym obrazku.
Skrypt
Kolejnym krokiem jest dodanie skryptu, który umożliwi poruszanie obiektem. W dolnej części programu Unity znajduje się widok asset-ów projektu. Najedź na ten obszar i utwórz skrypt PPM -> Create -> C# Script. Jaką nazwę mu nadać? Będzie odpowiedzialny za ruch obiektu, więc niech będzie Move. Unity z automatu przygotowuje szkic skryptu z funkcjami Start i Update. Pierwsza odpowiada za to co dzieje się po uruchomieniu projektu, druga określa co dzieje się podczas działania programu. Otwórz skrypt w edytorze tekstowym i przekopiuj poniższy kod, a następnie zapisz go. W komentarzach objaśniam za co odpowiedzialna jest każda linijka kodu.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Move : MonoBehaviour
{
// kontroler postaci obiektu, do którego jest podpięty skrypt
private CharacterController controller;
// prędkość poruszania się obiektu
public float speed = 10.0f;
// prędkość obracania się obiektu
public float turnSpeed = 60.0f;
// trójwymiarowy wektor przesunięcia obiektu
private Vector3 moveDirection = Vector3.zero;
// funkcja wykonywana przy uruchomieniu programu
void Start () {
// przypisanie komponentu obiektu, do którego jest przypięty skrypt
controller = GetComponent <CharacterController>();
}
// funkcja wykonywana podczas działania programu
void Update (){
// przypisanie do zmiennej wektora przesunięcia
moveDirection = transform.forward * Input.GetAxis("Vertical") * speed;
// przypisanie do zmiennej kierunku obrotu
float turn = Input.GetAxis("Horizontal");
// obrót obiektu
transform.Rotate(0, turn * turnSpeed * Time.deltaTime, 0);
// ruch obiektu na podstawie wektora przesunięcia i czasu
controller.Move(moveDirection * Time.deltaTime);
}
}
Przepięcie kamery
W następnym etapie musisz przepiąć kamerę na krążek. Aktualnie kamera skierowana jest na cały świat gry. Na liście obiektów znajdź taki o nazwie Main Camera. Przenieś go do cylindra przytrzymując LPM i przeciągnij na obiekt Cylinder. To wszystko! Masz już podpiętą kamerę do obiektu.
Dodanie skryptu do obiektu
Aby dodać napisany skrypt do krążka, zaznacz na liście obiektów Cylinder. Po prawej stronie ekranu Unity zauważysz jego ustawienia. Przeciągnij skrypt z obszaru plików, do obszaru ustawień obiektu. Powinien zostać dodany, a w ustawieniach obiektu pojawi się nowa sekcja dotycząca parametrów skryptu.
Kontroler postaci
Jest to sekcja, w której definiuje się parametry odpowiedzialne za kontrolowanie obiektu w świecie gry. W ustawieniach obiektu, na samym dole znajduje się przycisk Add Component. Po naciśnięciu, wybierz opcję Physics -> Character Controller, co w efekcie doda nową sekcję (jak na obrazku poniżej). Ustaw Step Offset na 0.2, Skin Width na 0.0001, a Radius oraz Height na 0.1.
Gotowe!
Na koniec wciśnij przycisk Play, który znajduje się w górnej części programu i poruszaj krążkiem przy pomocy strzałek!
Zakończenie
W tym momencie to tyle. W kolejnym artykule z tej serii, postaram się opisać jak wrzucić naszego „patyczaka” do gry i jak go oskryptować. Dzięki temu będzie można nim sterować w wirtualnym świecie. 🙂
Dziękuję Ci za poświęcony czas
Jeżeli chcesz być na bieżąco z artykułami i jesteś ciekawy co będzie dalej, daj lajka na naszym profilu FB, a przede wszystkim zapisz się do newslettera! Spodobał Ci się artykuł? Może zaciekawią Cię inne wpisy na naszym blogu.
Pozdrawiam i życzę miłego dnia! 🙂