In deze tutorial leer je hoe je een mobiel 3D-spel maakt met C # en Unity. Het doel van het spel is om de bal met behulp van het touchscreen in de gaten te gooien.
In deze tutorial leer je over de volgende aspecten van Unity-game-ontwikkeling:
Open Unity en selecteer Nieuw project van de het dossier menu om het nieuwe projectdialoogvenster te openen. Vertel Unity waar u het project wilt opslaan en stel het inStandaardinstellingen instellen voor: menu naar 3D.
In de volgende stap krijgt u de gebruikersinterface van Unity te zien. Stel het project in voor mobiele ontwikkeling door te kiezen Bouw instellingen van de het dossier menu en het selecteren van uw platform naar keuze.
Het eerste dat we moeten doen nadat we het doelplatform hebben geselecteerd, is het kiezen van de grootte van de illustraties die we in het spel zullen gebruiken. Dit zal ons helpen een juiste grootte voor de 3D-texturen en 2D GUI te selecteren zonder de illustratie wazig te maken of texturen te gebruiken die te groot zijn voor het doelapparaat. De illustratie moet bijvoorbeeld een hogere resolutie hebben als u een iPad target met een retina-display dan een Lumia 520.
Omdat Android een open platform is, is er een breed scala aan apparaten, schermresoluties en pixeldichtheid. Een paar van de meest voorkomende staan hieronder vermeld.
Houd er rekening mee dat de code die we in deze zelfstudie schrijven, kan worden gebruikt om een van de platforms te targeten.
Afhankelijk van de apparaten die u target, moet u de illustratie mogelijk converteren naar de aanbevolen grootte en pixeldichtheid. U kunt dit doen in uw favoriete foto-editor. Ik heb de Grootte aanpassen ... functie onder de Hulpmiddelen menu in OS X's Voorbeeld toepassing.
Voordat we aan de slag gaan, zorgt u ervoor dat de 2D knop in de Tafereel paneel is niet gemarkeerd. U kunt ook de resolutie wijzigen die wordt weergegeven in de Spel paneel.
Vervolgens krijg je de werkruimtepanelen te zien die we ook in deze zelfstudie zullen gebruiken. Neem even de tijd om naar de belangrijkste interfacepanelen te kijken, zoals de Tafereel, Spel, Hiërarchie, project, Middelen, en Inspecteur. We zullen ze vaak gebruiken in deze tutorial.
De gebruikersinterface van het spel is eenvoudig. De onderstaande schermafbeelding geeft u een idee van de illustraties die we gaan gebruiken en hoe de uiteindelijke gebruikersinterface eruit zal zien. Je vindt de illustraties en extra bronnen in de bronbestanden van de zelfstudie op GitHub.
U kunt een van de drie programmeertalen gebruiken wanneer u Unity gebruikt, C #, UnityScript, een variatie van JavaScript, en boe. Elke programmeertaal heeft zijn voors en tegens, en het is aan jou om te beslissen welke je voorkeur heeft. Mijn persoonlijke voorkeur gaat naar de programmeertaal C #, dus dat is de taal die ik in deze zelfstudie zal gebruiken.
Als u besluit een andere programmeertaal te gebruiken, moet u de voorbeelden van Unity's Script Reference raadplegen.
Ik zal een aantal geluiden gebruiken om de audiale ervaring van het spel te verbeteren. De geluidseffecten die in deze zelfstudie worden gebruikt, zijn verkregen van PlayOnLoop en Freesound.
Om het spel te maken, moeten we eerst een paar 3D-modellen kopen. Ik raad 3docean aan voor modellen en texturen van hoge kwaliteit, maar als je aan het testen of leren bent, zullen gratis modellen net zo goed werken. De modellen in deze zelfstudie zijn gedownload vanuit SketchUp 3D Warehouse, waar u een breed scala aan 3D-modellen kunt vinden.
Omdat Unity het SketchUp-bestandsformaat niet herkent, moeten we het converteren naar iets dat Unity kan importeren. We moeten eerst de gratis versie van SketchUp downloaden, genaamd SketchUp Make.
Open het 3D-model in SketchUp Make, selecteer Exporteren> 3D-model van de het dossier menu en kies Collada (* .dae). Kies een naam en locatie en klik op Opslaan. Hiermee wordt een bestand en een map voor het 3D-model gemaakt. Het bestand bevat de gegevens voor het 3D-object terwijl de map de texturen van het model bevat. In de volgende stap zullen we het model in Unity importeren.
Voordat we beginnen met coderen, moeten we de items aan het Unity-project toevoegen. U kunt dit op verschillende manieren doen:
Nadat u deze stap hebt voltooid, ziet u de items in uw project Middelen map in de project paneel.
Voordat we verder gaan, laten we de hoofdcamera plaatsen om de gewenste weergave te maken. Selecteer de hoofdcamera van de Hiërarchie paneel en pas de Transformeren waarden in de Inspecteur om overeen te komen met degene die hieronder worden getoond.
Maak je geen zorgen als je geen wijzigingen ziet. We hebben nog niets gemaakt voor de camera om te zien.
Om onze objecten zichtbaar te maken in de 3D-wereld, moeten we licht toevoegen aan de scène. kiezen Maak een ander van de GameObject menu en selecteer Directional Light. Hiermee wordt een object gemaakt dat een lichtstraal produceert. Verander zijn Transformeren waarden zoals weergegeven in de volgende schermafbeelding om het gebied te verlichten.
Het licht moet zichtbaar zijn op de scène zoals weergegeven in de volgende schermafbeelding.
De bowlingspelers zijn de belangrijkste componenten van de scène van het spel. De speler zal het aanraakscherm gebruiken om een bal te gooien, gericht op een van de gaten.
Het model dat in deze zelfstudie wordt gebruikt, is gedownload en geïmporteerd met de methode die wordt beschreven in Stap 9.
Ook al voegen we drie modellen toe aan de scène, het spel zal alleen interactie hebben met degene in het midden. Versleep een exemplaar van het model op de Tafereel of Hiërarchie paneel en verander zijn Transformeren waarden die worden weergegeven in de onderstaande schermafbeelding.
Gebruik dezelfde methode om de andere twee exemplaren toe te voegen of dupliceer de eerste instantie door op te drukken Command-D. Gebruik de Transformeer gereedschappen om ze te plaatsen zoals hieronder getoond.
Met de hoofdstraat op zijn plaats, is het tijd om botsers aan het model toe te voegen om ons te helpen de bal over het oppervlak te verplaatsen. Omdat dit een complex model is met veel groepen en polygonen, duurt het lang voordat we de verschillende vormen identificeren en een collider aan elk van hen toevoegen. Om deze stap gemakkelijker te maken, gebruiken we een script van derden om automatisch een collider te maken die bij ons model past.
Het script voegt een nieuw menu-item toe met de naam Wizards naar het Unity-menu. Selecteer het model waaraan u de collider wilt toevoegen en selecteer Mesh Colliders toevoegen van de Wizards menu. Dit zal het volgende venster openen.
Klik Colliders toevoegen rechtsonder om colliders aan het model toe te voegen. Dit zal een maken Mesh Collider voor elke groep of object van het model. U kunt dit verifiëren door het ballbowler model in de Hiërarchie en een item selecteren.
We hebben een lichtbron aan onze 3D-wereld toegevoegd, maar we hebben wat meer licht nodig om de scène interessanter te maken. Dit doen we door een aantal spots toe te voegen.
kiezen Maak een ander van de GameObject menu en selecteer Spotlight. Hiermee wordt een object gemaakt dat een lichtbundel naar één plek stuurt. De eerste schijnwerper die we toevoegen, moet de gaten verlichten. Verander zijn Transformeren waarden zoals weergegeven in de volgende schermafbeelding.
Voeg een tweede spotlight toe met behulp van de volgende transformatiewaarden.
De bal is het belangrijkste onderdeel van het spel. De speler gebruikt het touchscreen om de bal in een van de gaten te krijgen.
De bal wordt een simpele Gebied primitief. kiezen Maak anders> bol van de GameObject menu om de primitieve te maken en de Transformeren waarden in de Inspecteur zoals hieronder getoond.
We zullen de bal omzetten in een prefab later omdat het ons helpt om instanties in code te maken. Maar laten we eerst een toevoegen star lichaam ernaar toe.
Om een botsing met de bal te detecteren, moeten we een star lichaam ernaar toe. Selecteer om een toe te voegen Component toevoegen van de Inspecteur paneel gevolgd door Fysica > star lichaam. U kunt de instellingen op hun standaardwaarden laten staan.
We moeten detecteren wanneer de bal in een gat valt. We zullen gebruiken Colliders activeren Voor dit doeleinde. Een trigger-collider is een fysica-object dat een botsing met een ander object detecteert zonder fysiek te reageren. Dit helpt ons te detecteren wanneer de bal het gat ingaat zonder hem terug te laten stuiteren.
Omdat we hiervoor geen echt model of 2D-afbeelding nodig hebben, maken we een Leeg GameObject. kiezen GameObject> Maak leeg vanuit de menubalk om het te maken. Klik op de Component toevoegen knop in de Inspecteur en kies Natuurkunde> Box Collider.
Hiermee wordt een vak-collider aan het spelobject toegevoegd. Herhaal dit proces voor elke hole en controleer de Op gang brengen checkbox.
Plaats de colliders zoals weergegeven in de onderstaande schermafbeelding.
Om het scorebord van de game weer te geven, gebruiken we Unity's GUI-texturen. Standaard worden afbeeldingen geïmporteerd naar de Middelen map worden geconverteerd naar structuur instanties die kunnen worden toegepast op 3D-objecten. We moeten deze veranderen structuur instances GUI-structuur exemplaren voor de afbeeldingen die we in de gebruikersinterface van het spel willen gebruiken.
Selecteer de afbeelding die u wilt converteren in de Middelen paneel en open de Inspecteur. kiezen GUI van de Textuurtype menu.
U kunt de afbeelding nu slepen en neerzetten naar de Tafereel. De afbeelding verschijnt altijd voor elk object op het werkgebied en wordt behandeld als een 2D-element.
In het GUI-element van het scorebord tonen we getallen die de score van de speler aangeven en het aantal ballen dat de speler nog heeft.
kiezen Maak anders> GUI-tekst van de GameObject menu om een tekstobject te maken, plaats het in het midden van het GUI-element en wijzig de tekst in het Hiërarchie paneel naar 00. Volg hetzelfde proces voor de ballentekst om het scorebord te voltooien.
Het is tijd om wat code te schrijven. Met de gebruikersinterface op zijn plaats, kunnen we beginnen met het schrijven van de nodige code om interactie aan het spel toe te voegen. We doen dit door middel van scripts, die aan game-objecten kunnen worden gekoppeld. Volg de volgende stappen om te leren hoe u interactie toevoegt aan het niveau dat we zojuist hebben gemaakt.
We beginnen met het maken van de klasse die de meeste spelmechanismen verwerkt. Selecteer de hoofdcamera, klik op de Component toevoegen knop in de Inspecteur paneel en kies Nieuw script. Geef het script een naam Gooibal
en vergeet niet om de taal in C # te veranderen. Open het nieuw gemaakte bestand en voeg het volgende codefragment toe.
gebruikmakend van UnityEngine; met behulp van System.Collections; public class ThrowBall: MonoBehaviour private Vector3 throwSpeed = new Vector3 (0, 0, 1100); openbare GameObject-ballReference; privé Vector2 startPos; privé Vector2 endPos; private Vector2 minDistance = new Vector2 (0, 100); private Vector3 ballPos = new Vector3 (0, 0.38f, -11.41f); public bool ballOnStage = false; openbare int ballsLeft = 5; openbare GUIText-ballenTextReference; openbare AudioClip throwSound;
We beginnen met het maken van een aantal variabelen die we in de game zullen gebruiken. Laten we ze eens bekijken.
throwSpeed
: de beginsnelheid van de bal wanneer deze op het steegje wordt geplaatstballReference
: een verwijzing naar de bal prefab, ingesteld in de inspecteurStartPos
: beginpositie van de eerste aanraking, gebruikt om een uithaalbeweging te detecterenendPos
: eindpositie van de aanrakingminDistance
: minimale beweging die nodig is om de vinger als een veegbeweging te beschouwenballPos
: initiële balpositieballOnStage
: waar
wanneer een bal zich momenteel in het steegje bevindt, om meerdere shots tegelijk te voorkomenballsLeft
: het aantal resterende ballenballsTextReference
: verwijzing naar het tekstveld ballen, ingesteld in het infovensterthrowSound
: verwijzing naar het geluid dat wordt gespeeld wanneer de bal wordt gegooid, ingesteld in de inspecteurHet volgende codefragment toont het begin van de Bijwerken
methode. Deze methode detecteert of de gebruiker het scherm aanraakt.
void Update () if (Input.touchCount> 0) Touch touch = Input.GetTouch (0);
We controleren de touchCount
eigendom van de Invoer
klasse om het huidige aantal aanrakingen op het scherm te krijgen. Als touchCount
is groter dan 0
, we houden een verwijzing naar de eerste aanraken
voorwerp. We zullen dit object later gebruiken.
Met een verwijzing naar de aanraken
object, we hebben toegang tot zijn fase
property, wat ons helpt te bepalen of de touch is gestart, verplaatst of beëindigd.
Omdat we een beginpunt nodig hebben om een uithaalbeweging te detecteren, hebben we toegang tot het startpunt van de aanraken
object, waartoe we toegang hebben wanneer het aanraken
voorwerpen fase
is gelijk aan TouchPhase.Began
. De positie van de aanraken
object wordt opgeslagen in zijn positie
eigendom.
We hebben toegang tot het eindpunt van de beweging door toegang te krijgen tot de aanraken
voorwerpen positie
eigendom wanneer het fase
eigendom is gelijk aan TouchPhase.Ended
.
if (touch.phase == TouchPhase.Began) startPos = touch.position; if (touch.phase == TouchPhase.Ended) endPos = touch.position; / * Vergelijk posities * / if (endPos.y - startPos.y> = minDistance.y &&! BallOnStage && ballsLeft> 0)
Nu we de coördinaten hebben van het begin en het eindpunt van de aanrakingen, kunnen we de afstand berekenen en controleren of het een geldig uithaalbeweging is door het te vergelijken met de waarde die is opgeslagen in de minDistance
voorwerp.
We inspecteren ook de waarde van ballOnStage
om te controleren of een bal al ter plaatse is en we zorgen ervoor dat de speler genoeg ballen over heeft om verder te spelen. Het aantal resterende ballen wordt opgeslagen in de ballsLeft
veranderlijk.
Schermzones worden gemaakt om te berekenen waar de horizontale positie van de bal zal zijn wanneer de bal wordt gemaakt. We doen dit om controle te hebben over de positie van de bal en het vertelt ons waar de bal eindigt en voorkomt dat hij buiten de grenzen raakt. We verdelen het scherm in drie delen, zoals u hieronder kunt zien.
De wiskunde die we gebruiken is vrij eenvoudig, zoals je kunt zien in het onderstaande codeblok. We verdelen het scherm in drie gelijke delen en controleren welk deel de aanraking van de gebruiker bevat.
/ * Verdeel het scherm in 3 delen * / / * Links * / if (touch.position.x> = 0 && touch.position.x <= Screen.width / 3) ballPos.x = Random.Range(-0.87f, -0.35f); /* Center */ else if(touch.position.x > Screen.width / 3 && touch.position.x <= (Screen.width / 3) * 2) ballPos.x = Random.Range(-0.35f, 0.22f); /* Right */ else if(touch.position.x > (Screen.width / 3) * 2 && touch.position.x <= Screen.width) ballPos.x = Random.Range(0.22f, 0.36f);
Na het detecteren van de juiste schermzone, berekenen we een willekeurige positie tussen het begin en het einde van de zone en wijzen die positie toe aan de ballPos
veranderlijk.
Na het bepalen van de startpositie van de bal, maken we een nieuwe GameObject
bijvoorbeeld met behulp van de Een exemplaar
methode, doorgeven in de ballReference
en ballPos
variabelen.
GameObject ball = Instantiate (ballReference, ballPos, transform.rotation) als GameObject; ball.rigidbody.AddForce (throwSpeed);
Met de bal op de scène, voegen we een kracht toe om hem door de juiste steeg te laten bewegen. We doen dit door het AddForce
methode op de bal star lichaam
eigendom, passerend in de throwSpeed
variabele die we eerder hebben aangegeven.
We spelen een geluidseffect als de bal in het steegje wordt gegooid. De volgende regel code zorgt daar voor. Vergeet niet om dit in te stellen voor werk throwSound
variabele in de Inspecteur.
AudioSource.PlayClipAtPoint (throwSound, transform.position);
Na het gooien van de bal, moeten we de variabelen resetten die de aanrakingen van de speler detecteren. Als u dit niet doet, worden meerdere swipes gedetecteerd. We hebben ook de ballOnStage
variabele naar waar
, voorkomen dat een andere bal tegelijkertijd wordt gegooid.
endPos = new Vector2 (0, 0); startPos = new Vector2 (0, 0); ballOnStage = true;
Hiermee is het Gooibal
klasse. De implementatie van de klasse moet er uitzien zoals hieronder getoond.
gebruikmakend van UnityEngine; met behulp van System.Collections; public class ThrowBall: MonoBehaviour private Vector3 throwSpeed = new Vector3 (0, 0, 1100); openbare GameObject-ballReference; privé Vector2 startPos; privé Vector2 endPos; private Vector2 minDistance = new Vector2 (0, 100); private Vector3 ballPos = new Vector3 (0, 0.38f, -11.41f); public bool ballOnStage = false; openbare int ballsLeft = 5; openbare GUIText-ballenTextReference; openbare AudioClip throwSound; void Update () if (Input.touchCount> 0) Touch touch = Input.GetTouch (0); if (touch.phase == TouchPhase.Began) startPos = touch.position; if (touch.phase == TouchPhase.Ended) endPos = touch.position; / * Vergelijk posities * / if (endPos.y - startPos.y> = minDistance.y &&! BallOnStage && ballsLeft> 0) / * Deel het scherm in 3 delen * / / * Left * / if (touch.position. x> = 0 && touch.position.x <= Screen.width / 3) ballPos.x = Random.Range(-0.87f, -0.35f); /* Center */ else if(touch.position.x > Screen.width / 3 && touch.position.x <= (Screen.width / 3) * 2) ballPos.x = Random.Range(-0.35f, 0.22f); /* Right */ else if(touch.position.x > (Screen.width / 3) * 2 && touch.position.x <= Screen.width) ballPos.x = Random.Range(0.22f, 0.36f); GameObject ball = Instantiate(ballReference, ballPos, transform.rotation) as GameObject; ball.rigidbody.AddForce(throwSpeed); AudioSource.PlayClipAtPoint(throwSound, transform.position); endPos = new Vector2(0, 0); startPos = new Vector2(0, 0); ballOnStage = true;
Het volgende script bevat de implementatie van de BallSensor
klasse en is bevestigd aan de kogelsensoren, waarbij eventuele botsingen met de kogelsensoren worden behandeld.
We beginnen met het declareren van een variabele met de naam sensorValue
, die het aantal punten opslaat dat de balsensor toevoegt aan de score. Omdat de kogelsensoren allemaal hetzelfde prefab zijn, verklaren we deze variabele als openbaar
. Hierdoor kunnen we deze waarde in de editor instellen met behulp van de Inspecteur.
gebruikmakend van UnityEngine; met behulp van System.Collections; openbare klas BallSensor: MonoBehaviour public int sensorValue = 0; openbare GUIText-scoreReference; openbare GameObject alertReference;
In de andere twee variabelen worden verwijzingen opgeslagen naar de game-objecten score en waarschuwing, die we ook instellen in Unity's Inspecteur. Deze verwijzingen worden gebruikt om de score te verhogen en de waarschuwing weer te geven wanneer het spel eindigt.
De OnTriggerEnter
methode detecteert wanneer een botsing is opgetreden en accepteert de Collider
object waar de sensor tegenaan botst, de bal in dit geval. Wanneer een botsing wordt gedetecteerd, wordt de bal vernietigd om te voorkomen dat deze terugkaatst en mogelijk in een ander gat valt.
void OnTriggerEnter (Collider anders) Destroy (other.gameObject);
Na het vernietigen van de bal, zijn we zeker dat hij niet meer op de baan is. Dit betekent dat we nog een bal kunnen gooien zonder ongewenst gedrag te veroorzaken. De volgende coderegel communiceert met de Gooibal
klasse en krijgt de ballOnStage
variabele, instellen op vals
.
Camera.main.GetComponent() .ballOnStage = false;
Laten we eens nader bekijken hoe we toegang hebben tot een variabele die in een andere klas is gedeclareerd. Zoals u nu kunt zien, is een manier om toegang te krijgen tot een variabele of een object dat buiten de huidige klasse is gedeclareerd, om een referentievariabele in te stellen met openbaar
of [SerializeField]
, en gebruik vervolgens de Inspecteur om het een waarde te geven.
De openbaar
trefwoord speelt hierin een belangrijke rol. Als u dit gebruikt, is de variabele niet alleen toegankelijk via de Inspecteur, maar ook door code. Om dit te doen, hebben we eerst toegang tot de. Nodig GameObject dat heeft de Scriptcomponent gekoppeld, dat is het Hoofdcamera in dit geval.
Er is slechts één camera in deze game, waardoor dingen gemakkelijker worden. We kunnen een verwijzing naar de hoofdcamera krijgen Camera.main
. Gebruik makend van GetComponent
we krijgen het script gehecht aan de camera, met behulp van de naam van de klas. We hebben dan toegang tot de openbare variabele genaamd ballOnStage
.
Het volgende codeblok werkt de score bij met behulp van de referentie die we eerder hebben verklaard.
scoreReference.text = (int.Parse (scoreReference.text) + sensorValue) .ToString ();
We zetten de opgeslagen waarde om in scoreReference
naar een geheel getal en voeg het toe aan de waarde die is opgeslagen in sensorValue
. We zetten het resultaat om in een string en wijzen het toe aan de tekst
eigendom van scoreReference
.
In deze stap verlagen we het aantal resterende ballen. We gebruiken de methode die wordt beschreven in Stap 3 om toegang te krijgen tot de ballsLeft
en ballsTextReference
variabelen van de Gooibal
klasse.
Camera.main.GetComponent() .BallsLeft--; Camera.main.GetComponent () .ballsTextReference.text = Camera.main.GetComponent () .BallsLeft.ToString ();
We verlagen de opgeslagen waarde in ballsLeft
en werk het tekst
eigendom van ballsTextReference
.
Het spel is afgelopen als de beschikbare schoten op zijn. De volgende regels code controleren of de ballsLeft
variabele is gelijk aan 0
en maak een melding als waar
. We noemen dan de Beroep doen op
methode om het vernieuwen
methode, die het spel opnieuw start door de huidige scène opnieuw te laden.
De tweede parameter van de Beroep doen op
methode definieert de vertraging waarmee de vernieuwen
methode wordt aangeroepen. We doen dit om de speler enige tijd te geven voordat we een nieuw spel beginnen.
if (Camera.main.GetComponent() .ballsLeft == 0) Instantiate (alertReference, new Vector3 (0.5f, 0.5f, 0), transform.rotation); Invoke ("Herladen", 3);
Dit is het laatste deel van de BallSensor
klasse. In de vernieuwen
methode, we bellen LoadLevel
op de Toepassing
klasse en herlaad het huidige niveau, waarbij elk object en elke variabele opnieuw wordt ingesteld naar de oorspronkelijke status.
void Reload () Application.LoadLevel (Application.loadedLevel);
Dit is hoe de klas eruit ziet als hij klaar is.
gebruikmakend van UnityEngine; met behulp van System.Collections; openbare klas BallSensor: MonoBehaviour public int sensorValue = 0; openbare GUIText-scoreReference; openbare GameObject alertReference; void OnTriggerEnter (Collider anders) Destroy (other.gameObject); Camera.main.GetComponent() .ballOnStage = false; scoreReference.text = (int.Parse (scoreReference.text) + sensorValue) .ToString (); Camera.main.GetComponent () .BallsLeft--; Camera.main.GetComponent () .ballsTextReference.text = Camera.main.GetComponent () .BallsLeft.ToString (); if (Camera.main.GetComponent () .ballsLeft == 0) Instantiate (alertReference, new Vector3 (0.5f, 0.5f, 0), transform.rotation); Invoke ("Herladen", 3); void Reload () Application.LoadLevel (Application.loadedLevel);
Het is tijd om de game te testen. druk op Command-P om het spel in Unity te spelen. Als alles naar behoren werkt, bent u klaar voor de laatste stappen.
Als je tevreden bent met je spel, is het tijd om te selecteren Bouw instellingen van de het dossier menu en klik op de Speler instellingen knop. Dit zou de Speler instellingen in de Inspecteur paneel waar u de parameters voor uw toepassing kunt instellen.
Deze instellingen zijn applicatiespecifieke gegevens die de maker of het bedrijf, app-resolutie en weergavemodus, weergavemodus (CPU, GPU), apparaat-compatibiliteit van het besturingssysteem, enz. Bevatten. Configureer de instellingen op basis van de apparaten die u target en de winkel of markt waar je bent van plan om de app te publiceren.
Met behulp van de afbeeldingen die u eerder hebt gemaakt, kunt u nu een leuk pictogram en een splash-afbeelding voor uw spel maken. Unity toont u de vereiste formaten, die afhankelijk zijn van het platform waarvoor u bouwt.
Zodra uw project correct is geconfigureerd, is het tijd om terug te gaan naar de Bouw instellingen en klik op de Bouwen Knop. Dat is alles wat nodig is om uw spel te bouwen voor testen en / of distributie.
In deze zelfstudie hebben we geleerd hoe je natuurkundige krachten, veegbewegingen, klassencommunicatie en andere aspecten van game-ontwikkeling in Unity kunt gebruiken. Ik moedig je aan om met het resultaat te experimenteren en het spel aan te passen zodat het je eigen spel wordt. Ik hoop dat je deze tutorial leuk vond en vond het nuttig.