Unity3d QuickTip – czyli szybkie porady, rozwiązania częstych problemów i sztuczki w Unity3d!

Dzisiejszy odcinek: Jak stworzyć własny ekran startowy

Uwaga! Jest to poradnik typu QuickTip. Zatem skupia się on na osiągnięciu założonego celu. Zatem zakładamy że użytkownik zna na tyle program Unity3d, aby samodzielnie wykonać najprostsze czynności, jak np. dodanie modelu kostki do sceny czy dodanie modelowi jakiegoś komponentu. Jeżeli brakuje Ci tej podstawowej wiedzy, zapraszam do tutoriala:
Unity Tutorial – Podstawy

Teoria

Ekran startowy, czyli z angielskiego Splash screen, to ta sekwencja animacji lub obrazków, pojawiających się gdy uruchamiamy grę. Najczęściej pojawiają się tam loga wszystkich narzędzi i ekip zaangażowanych w produkcję gry. Dziś sobie wymyślimy jak to zrobić.

Usunięcie loga Unity

O to pyta masa osób. Czy jest metoda, aby usunąć animację Unity przy starcie gry.
[stextbox id=”info” defcaption=”true”]You will not delete or in any manner alter any Unity or third-party copyright, trademark or other proprietary rights notices or markings appearing on or in the Software (including the runtime portion thereof).[/stextbox]
Cytat z licencji Unity. Oficjalnie? Legalnie nie da się tego zrobić. Stworzyłeś grę w Unity ich logo musi się tam znaleźć. Jednak, w wersji Pro Unity, można dokonać modyfikacji ekranu startowego.

Aby to zrobić, wystarczy wejść w [Edit -> Project Settings -> Player], a tam w sekcji Splash Screen dodać swój obrazek. (W wersji darmowej, również można to zrobić, ale nie będzie efektu).

Zmiana SplashScreena w Unity3d
Zmiana SplashScreena w Unity3d

Własny ekran startowy

Załóżmy, że nie przeszkadza nam ekran Unity, ale chcemy po nim dołożyć jakiś nasz obrazek. Tworzymy w tym celu nowy pusty GameObject (u mnie SplashHolder) [GameObject -> Create Empty].

Następnie jako jego child, tworzymy sobie canvasa wraz z obiektem obrazka [GameObject -> UI -> Image]. Powinniśmy uzyskać taką hierarchię obiektów:

Hierarchia obiektów
Hierarchia obiektów

Przygotowujemy sobie dodatkowo obrazek, który będzie naszym splashScreenem. Ja mam coś takiego:

Mój Splash Screen
Mój Splash Screen

Po wrzuceniu tego obrazka do Unity, musimy zmienić jego typ na Sprite.

Zmieniamy tryb obrazka na Sprite
Zmieniamy tryb obrazka na Sprite

Wystarczy w okienku project zaznaczyć nasz obrazek i z poziomu inspectora ustawić Texture Type na Sprite.

Teraz czas dokonać kilku modyfikacji w Canvasie.

Ustawiamy Canvas
Ustawiamy Canvas

Zaznaczamy obiekt Canvas i swój wzrok kierujemy na panel Inspector. Tutaj znajdujemy komponent Canvas i dokonujemy zmian:

  • Opcję Render Mode zmieniamy na Screen Space – Camera – czyli canvas wyświetli się bezpośrednio w kamerze.
  • Ustawiamy opcję Pixel Perfect – zapewnia nam to większą ostrość obrazka
  • W polu Render Camera wybieramy kamerę główną.
  • Oreder in Layer ustawiamy na 1, aby obrazek był na samej górze.

Zostało zmodyfikować ustawienia obiektu Image

Obiekt Image
Obiekt Image

Jako Source Image ustawiamy nasz obrazek. Następnie zmieniamy Image Type na Filled. W Rect transform ustawiamy opcję jak na obrazku. Powinno nam to zapewnić, że obrazek rozciągnie się na cały ekran.

Teraz tworzymy prosty skrypt (Splash.cs), który dodajemy do obiektu SplashHolder. Sam skrypt ma bardzo prostą składnie:

using UnityEngine;
using System.Collections;

public class Splash : MonoBehaviour {

	float timer = 0;

	void Update() {
		timer += Time.deltaTime;
		if (timer >= 2) {
			Destroy(gameObject);
		}
	}

}

Odczekujemy 2 sekundy i usuwamy nasz SplashHolder, czyli znikamy obrazek. Jeżeli ktoś ma ochotę, może się tutaj pobawić z Animatorem i sprawić, żeby obrazek powoli znikał (Fade Out).

Podoba Ci się? Udostępnij!