Strona główna Programowanie Króliczek w Unity

Króliczek w Unity

przez Krzysiu Weiss

W poprzednich artykułach o Blenderze i Unity omówiliśmy jak zbudować własną postać, przenieść ją do świata i sprawić by można nią było sterować. Ale co z obiektami gotowymi i stworzonymi przez innych? Tutaj z pomocą przychodzi sklep assetów, do którego mamy łatwy dostęp przez program Unity. W tym artykule zajmiemy się dodaniem i konfiguracją gotowego modelu dostępnego w sklepie. Zobacz jak skacze króliczek w Unity!

Asset Store

Żeby móc przeglądać i pobierać zawartość sklepu, musisz posiadać konto w Unity. Załóż profil i zaloguj się poprzez Unity Hub, a następnie utwórz nowy projekt. Okej, teraz aby korzystać z gotowych już assetów musisz je pobrać ze sklepu Unity. Przejdź do zakładki Asset Store znajdującej się na górze programu.

Unity - bookmarks

Znajduje się tam wiele gotowych obiektów, za które niestety w większości przypadków trzeba zapłacić. Na szczęście istnieje też trochę darmowych modeli. Możesz je zobaczyć w sekcji ceny, po prawej stronie i zaznaczając opcję Free Assets.

Free assets

Po oznaczeniu tej opcji, pokażą się tylko darmowe obiekty, które możesz zawęzić do kategorii Ciebie interesującej. Dziś chciałbym żebyś wybrał asset białego królika. Znajdziesz go wpisując w sklepową wyszukiwarkę „White Rabbit” i wybierając ten darmowy, od twórcy Niwashi Games.

Asset store - white Rabbit

Teraz wystarczy, że klikniesz przycisk Download / Import, a pojawi się okno z wyborem plików do pobrania. Powinny być zaznaczone wszystkie pozycje, więc jeżeli któreś nie są, wybierz przycisk All, a następnie Import.

Asset store - white Rabbit import

Pliki po pobraniu powinny pojawić się w katalogu Assetów.

Unity katalog króliczka w Unity

Konfiguracja modelu

Przygotowanie katalogów

No dobrze, mamy już pobrane i gotowe pliki. Teraz musimy połączyć animacje z modelem i napisać skrypt odpowiadający za poruszanie nim. Przejdź do folderu Rabbit, a następnie stwórz katalogi Animator oraz Scripts – przydadzą się do uporządkowania plików.

Unity - assets

Animator

Musimy stworzyć mechanizm, który będzie odpowiedzialny za animację naszego króliczka.

  1. Przejdź do utworzonego wcześniej katalogu Animator i dodaj nowy Animator Controller, podobnie jak to robiłeś we wcześniejszym artykule.
  2. Dodaj zmienną typu Bool i nazwij ją run.
  3. Przejdź do katalogu Rabbits -> Animations i przenieś animacje Idle oraz Run do kontrolera.
  4. Dodaj relacje między nimi, która jest zależna od zmiennej run. Jeżeli w podglądzie animacji, nie widać króliczka w sekcji Preview, przejdź do katalogu Rabbits -> Model i przenieś model do sekcji.

Poniżej zamieszczam widok relacji i ich konfiguracji.

Unity - animator

Skrypt

Po utworzeniu Animatora przyszedł czas na skrypt! Z poprzednich artykułów powinieneś kojarzyć jak go napisać i jak powinien działać. Spróbuj napisać kilka linijek kodu samemu, a w razie problemów zerknij do mojego skryptu, który nazwałem RabbitMoveWithAnimation i umieściłem poniżej.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class RabbitMoveWithAnimation : MonoBehaviour
{
    //Animator podpięty do obiektu
    private Animator anim;
    //kontroler postaci obiektu do którego jest przypięty skrypt
    private CharacterController controller;

    //prędkość poruszania się
    public float speed = 10.0f;
    //prędkość obracania się
    public float turnSpeed = 60.0f;
    //trójwymiarowy wektor przesunięcia obiektu
    private Vector3 moveDirection = Vector3.zero;

//funkcja wykonywana przy uruchomieniu programu
    void Start () {
        //podpięcie pod zmienną controller komponentu obiektu którego jest przypięty skrypt
        controller = GetComponent <CharacterController>();
        //przypisanie animatora do zmiennej
        anim = gameObject.GetComponentInChildren<Animator>();
    }

//funkcja wykonywana podczas działania programu
    void Update (){
        if (Input.GetKey ("up") || Input.GetKey ("down")) {
            //nadanie zmiennej 'run' wartości true gdy spełnia warunek
            anim.SetBool("run", true);
        }  else {
            //nadanie zmiennej 'run' wartości false gdy nie spełnia warunku
            anim.SetBool("run", false);
        }
        //przypisanie do zmiennej wektoru 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);
        //poruszenie obiektu na podstawie wektoru przesunięcia i czasu
        controller.Move(moveDirection * Time.deltaTime);
    }
}

Łączenie elementów

Teraz wypadałoby połączyć wszystkie elementy i stworzyć świat z królikiem.

  1. Przypomnij sobie z poprzedniego artykułu o Unity jak utworzyć teren.
  2. Następnie przejdź do katalogu Rabbits -> Prefabs i przeciągnij model króliczka na obszar terenu.
  3. Ustaw odpowiednio kamerę i dodaj ją do postaci.
  4. Dołącz do królika wcześniej przygotowane Animator Controller oraz skrypt.

Jako, że nasz asset posiada wbudowany w animacji ruch, nie potrzebujemy dodawać do niego Character Controllera. Jeżeli więc wykonałeś powyższe kroki, przejdź do zakładki Game, a następnie uruchom projekt i spróbuj poruszyć królikiem! 🙂

króliczek w Unity

Kilka słów na koniec

To by było na tyle jeżeli chodzi o dodanie i skonfigurowanie gotowego assetu. W pobranych plikach znajduje się również demo, które możesz dodać przechodząc do katalogu Rabbits- > Demo -> Prefabs i przeciągając obiekt do świata.

Daj znać w komentarzu jak Ci się podoba króliczek w Unity. Jeżeli masz pytania, śmiało napisz, a postaram się na nie odpowiedzieć. 🙂

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! Nie zapomnij również o naszej, prężnie rozwijającej się, grupie na Discordzie. Spodobał Ci się artykuł? Może zaciekawią Cię inne wpisy na naszym blogu.

Pozdrawiam i życzę miłego dnia! 🙂

dziękuję

5 1 vote
Oceny

Powiązane wpisy

guest
0 komentarzy
Inline Feedbacks
View all comments

Strona wykorzystuje cookies i przetwarza dane zgodnie z zasadami opublikowanymi w Polityce Prywatności. Jeżeli nie wyrażasz zgody na przetwarzanie danych, zmień ustawienia swojej przeglądarki. Wybierając "OK", zgadzasz się na warunki przetwarzania. OK Więcej