Werken met Unity's 2D-tools

In deze zelfstudie laat ik je zien hoe je kunt profiteren van de nieuwe 2D-hulpmiddelen die zijn opgenomen in Unity om een ​​2D-game te maken.

1. Toepassingsoverzicht

In deze zelfstudie leert u hoe u een Unity 2D-project maakt en een mobiel spel maakt met C # en Unity.

Het doel van het spel is om een ​​teleporterende straal op de koeien te schieten voordat ze de veiligheid van de schuur kunnen bereiken.

In dit project leer je de volgende aspecten van Unity-ontwikkeling:

  • opzetten van een 2D-project in Unity
  • vertrouwd raken met de Unity-interface
  • een Prefab maken
  • scripts aan game-objecten koppelen
  • werken met natuurbotsingen
  • met behulp van timers

2. Maak een nieuw eenheidsproject

Open Unity en selecteer Nieuw project van de het dossier menu om het nieuwe projectdialoogvenster te openen. Selecteer een map voor uw project en stel inStandaardinstellingen instellen voor naar 2D.


3. Bouw instellingen

In de volgende stap krijg je de interface 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.

Unity kan bouwen voor iOS, Android, BlackBerry en Windows Phone 8, wat geweldig is als u van plan bent om een ​​mobiel spel voor meerdere platforms te maken.


4. apparaten

Omdat we een 2D-game gaan maken, is het eerste dat we moeten doen nadat we het platform hebben geselecteerd dat we targeten, het kiezen van de grootte van de illustraties die we in het spel gebruiken.

iOS:

  • iPad zonder Retina: 1024 px x 768 px
  • iPad met Retina: 2048 px x 1536 px
  • 3.5 "iPhone / iPod Touch zonder Retina: 320 px x 480 px
  • 3.5 "iPhone / iPod met Retina: 960 px x 640 px
  • 4 "iPhone / iPod Touch: 1136 px x 640 px

Omdat Android een open platform is, zijn er veel verschillende apparaten, schermresoluties en pixeldichtheid. Een paar van de meest voorkomende staan ​​hieronder vermeld.

  • Asus Nexus 7 Tablet: 800 px x 1280 px, 216 ppi
  • Motorola Droid X: 854px x 480px, 228 ppi
  • Samsung Galaxy SIII: 720px x 1280px, 306 ppi

En voor Widows Phone en BlackBerry:

  • Blackberry z10: 720px x 1280px, 355 ppi
  • Nokia Lumia 520: 400 px x 800 px, 233 ppi
  • Nokia Lumia 1520: 1080px x 1920px, 367 ppi

Hoewel we ons in deze zelfstudie concentreren op het iOS-platform, kan de code worden gebruikt om een ​​van de andere platforms te targeten.


5. Grafieken exporteren

Afhankelijk van het apparaat dat 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.


6. Unity Interface

Zorg ervoor dat u op de 2D-knop klikt in de Tafereel paneel. U kunt ook de resolutie wijzigen die wordt gebruikt om de scène in de Spel paneel.


7. Spelinterface

De gebruikersinterface van onze game is eenvoudig. U kunt de illustraties voor deze zelfstudie vinden in de bronbestanden van deze zelfstudie.


8. Taal

U kunt een van de drie talen gebruiken in Unity, C #, UnityScript, een taal vergelijkbaar met JavaScript in termen van syntaxis, en boe. Elke taal heeft zijn voors en tegens, maar het is aan jou om te beslissen welke je voorkeur heeft. Mijn voorkeur gaat uit naar de C # -syntaxis, dus dat is de taal die ik in deze zelfstudie zal gebruiken.

Als u besluit een andere taal te gebruiken, moet u de voorbeelden van Unity's Script Reference raadplegen.


9. 2D-afbeeldingen

Unity heeft een naam opgebouwd als een geweldig platform voor het maken van 3D-spellen voor verschillende platforms, zoals Microsoft Xbox 360, Sony PS3, Nintendo Wii, het web en verschillende mobiele platforms.

Hoewel het altijd mogelijk was om Unity voor 2D-game-ontwikkeling te gebruiken, duurde het tot de release van Unity 4.3 dat het native 2D-ondersteuning bevatte. In de volgende stappen leren we werken met afbeeldingen als sprites in plaats van texturen.


10. Geluidseffecten

Ik zal een aantal geluiden gebruiken om de game-ervaring te verbeteren. De geluidseffecten die in deze zelfstudie worden gebruikt, zijn te vinden op Freesound.org.


11. Activa importeren

Voordat we beginnen met coderen, moeten we onze activa toevoegen aan het Unity-project. Er zijn verschillende manieren om dit te doen:

  • kiezen Nieuwe activa importeren van de Middelen menu
  • voeg de items toe aan de map met items in uw project
  • sleep de activa in het projectvenster

Nadat u deze stap hebt voltooid, ziet u de items in uw project Middelen map in de project paneel.

12. Maak scène

We zijn klaar om de scène van ons spel te maken door objecten naar de te slepen Hiërarchie of Tafereel paneel.


13. Achtergrond

Begin met het slepen en neerzetten van de achtergrond naar de Hiërarchie paneel. Het moet dan verschijnen in de Tafereel paneel.

Omdat het Tafereel paneel is ingesteld om een ​​2D-weergave weer te geven, u zult merken dat u de Hoofdcamera in de Hiërarchie toont een voorbeeld van wat de camera gaat weergeven. Je kunt dit ook zien in de gameweergave. Om de hele scène zichtbaar te maken, wijzigt u de Grootte waarde van de Hoofdcamera naar 1.6 in de Inspecteur paneel.


14. Schip

Het schip is ook een statisch element waar de speler niet mee kan communiceren. Plaats deze in het midden van de scène.


15. Schuur

Selecteer de schuur van de Middelen paneel en sleep het naar de scène. Plaats het zoals in de onderstaande schermafbeelding.


16. Schuur Collider

Om ervoor te zorgen dat de stal op de hoogte wordt gebracht wanneer een koe hem raakt - komt de stal binnen - moeten we een onderdeel toevoegen, een Box Collider 2D precies zijn.

Selecteer de schuur in de scène, open de Inspecteur paneel en klik Component toevoegen. Selecteer uit de lijst met componenten Box Collider 2D van de Natuurkunde 2D sectie. Zorg ervoor dat u de Is Trigger doos.

We willen dat de koe reageert wanneer het de deur van de schuur raakt, dus we moeten de rijder wat kleiner maken. Open de Inspecteur en verander de Grootte en Centrum waarden van de collider om de box dichter bij de deur van de schuur te brengen.


17. Barn Collision Script

Het is tijd om wat code te schrijven. We moeten een script toevoegen zodat de toepassing op de botsing kan reageren wanneer een koe de schuur binnenkomt.

Selecteer de schuur en klik op de Component toevoegen knop in de Inspecteur paneel. kiezen Nieuw script en noem het OnCollision. Vergeet niet om de taal te wijzigen in C #.

Open het nieuw gemaakte bestand en voeg het volgende codefragment toe.

gebruikmakend van UnityEngine; met behulp van System.Collections; public class OnCollision: MonoBehaviour void OnTriggerEnter2D (Collider2D anders) if (other.gameObject.name == "cow (Clone)") / * Speel het bewaarkoe-geluid * / audio.Play (); / * Vernietig de koe * / Destroy (other.gameObject); 

Het fragment controleert op een botsing tussen het object waaraan het script is gekoppeld, de schuur en een object met de naam koe (Clone), wat een voorbeeld van de koe zal zijn prefab die we later zullen maken. Wanneer een botsing plaatsvindt, wordt een geluid afgespeeld en wordt het koe-object vernietigd.


18. Schuur Geluid

Om een ​​geluid te spelen wanneer een koe de schuur raakt, moeten we eerst het geluid aan de schuur bevestigen. Selecteer het van de Hiërarchie of Tafereel weergave, klik op de Component toevoegen knop in de Inspecteur paneel en selecteer Geluidsbron van de audio sectie.

Haal het vinkje weg Speel op Awake en klik op de kleine stip rechts, onder het tandwielpictogram, om het geluid van de stal te selecteren.

U kunt de grootte van de pictogrammen in de gebruikersinterface van Unity (gadgets) vergroten door op te klikken Gizmos in de Tafereel paneel en het aanpassen van de positie van de schuifregelaar.


19. Ray

Sleep de ray-afbeelding van de Middelen paneel naar de scène en voeg er een collider aan toe. Dit is nodig om een ​​botsing met de ongelukkige koe op te sporen. Controleer deIs Trigger optie in de Inspecteur paneel.

20. Ray Script

Maak een nieuw script door de stappen te herhalen die ik kort geleden heb geschetst. Geef het script een naam Kogelen vervang de inhoud door het volgende codefragment:

gebruikmakend van UnityEngine; met behulp van System.Collections; public class Bullet: MonoBehaviour openbare AudioClip cowSound; // Gebruik dit voor initialisatie ongeldig Start () renderer.enabled = false; / * Maakt het object onzichtbaar * / // Update wordt eenmaal per frame ongeldig Update () / * Ontvang hoofdinvoer * / if (Input.GetButton ("Fire1")) renderer.enabled = true; / * Maakt het object zichtbaar * / / * Speel het ray-geluid * / audio.Play ();  if (renderer.enabled == true) transform.position + = Vector3.down * (Time.deltaTime * 2);  / * Controleer of er geen grenzen zijn * / if (this.transform.position.y < -1.5)  transform.position = new Vector2(0.08658695f, 0.1924166f); /* Return bullet to original position */ renderer.enabled = false;   void OnTriggerEnter2D(Collider2D other)  if (other.gameObject.name == "cow(Clone)")  AudioSource.PlayClipAtPoint(cowSound, transform.position); /* Destroy the cow */ Destroy(other.gameObject); transform.position = new Vector2(0.08658695f, 0.1924166f); /* Return bullet to original position */ renderer.enabled = false;   

Dat is veel code, maar het is niet ingewikkeld. Laten we kijken wat er aan de hand is. Eerst maken we een AudioClip exemplaar genoemd cowSound, die we zullen gebruiken om een ​​audiobestand op te slaan. Dit is gewoon een andere techniek om een ​​geluid te spelen als u geen twee audiocomponenten aan het object wilt toevoegen. We verklaren de variabele als openbaar zodat we er toegang toe hebben vanaf de Inspecteur. Klik op de kleine stip aan de rechterkant van cowSound en selecteer het audiobestand.

We maken de straal vervolgens onzichtbaar door de renderer uit te schakelen. We gebruiken hetzelfde object, zodat we bronnen kunnen besparen, wat een belangrijke optimalisatie is voor minder krachtige apparaten.

We detecteren aanrakingen op het scherm, die de straal zichtbaar maken en het ray-geluid afspelen (zie hieronder). Als het object zichtbaar is, betekent dit dat het omlaag moet gaan om een ​​koe te raken.

Er is ook code om te detecteren of de straal buiten de grenzen van de scène valt. Als dit het geval is, verplaatsen we het, klaar om opnieuw te vuren (controleer de stralen X en Y waarden in de Inspecteur).

Het laatste deel controleert of de straal een koe raakt. Als dat zo is, speelt het het koeiengeluid en vernietigt het de koe. De straal wordt dan onzichtbaar gemaakt en opnieuw gepositioneerd op de oorspronkelijke positie, klaar om opnieuw te vuren.


21. Ray Audio-bron

Om de audio voor de straal toe te voegen, selecteert u deze in de Hiërarchie of Tafereel bekijk en klik Component toevoegen in de Inspecteur paneel. kiezen Geluidsbron van de audio sectie. Haal het vinkje weg Speel op Awake en klik op de kleine stip aan de rechterkant om het geluidsbestand te selecteren.


22. Voeg een koe toe

Sleep de afbeelding voor de koe van de Middelen paneel en plaats het in de scène zoals hieronder getoond.


23. Starre behuizing 2D

Om een ​​botsing te detecteren, moet ten minste een van de botsende objecten een hebben RigidBody2D component geassocieerd. Omdat de koe kan botsen met zowel de schuur als de straal, is het het beste om het onderdeel aan de koe toe te voegen.


24. Koe Collider

We moeten ook een spuitmachine aan de koe toevoegen, zodat we botsingen met de schuur en de straal kunnen detecteren. Zorg ervoor dat u de Is Trigger checkbox in de Inspecteur.


25. Verplaats Koemenscript

Voeg een scriptcomponent toe aan de koe en vervang de inhoud door het volgende:

gebruikmakend van UnityEngine; met behulp van System.Collections; openbare klasse MoveCow: MonoBehaviour public Vector3 moveSpeed; public float spawnTime = 2f; public float spawnDelay = 2f; // Gebruik dit voor initialisatie ongeldig Start () moveSpeed ​​= Vector3.left * Time.deltaTime; InvokeRepeating ("ChangeSpeed", spawnDelay, spawnTime);  void ChangeSpeed ​​() moveSpeed ​​= new Vector3 (Random.Range (-1, -2), 0, 0) * 0.05f;  // Update wordt eenmaal per frame ongeldig Update () transform.position + = moveSpeed; 

De MoveCow klasse animeert de koe over het scherm met een variabele met de naam bewegingssnelheid. De InvokeRepeating methode verandert de snelheid van de koe om hem te laten sprinten vanaf het moment dat hij het midden van de scène bereikt. Dit maakt het spel uitdagender.


26. Maak koeienprefab

Met de nodige componenten toegevoegd aan de koe, is het tijd om het om te zetten naar een prefab. Wat is een Prefab? Laten we de Unity-handleiding raadplegen:

"Een prefab is een type activa - een herbruikbaar GameObject dat is opgeslagen in de projectweergave.Prefabs kunnen in meerdere scènes, meerdere keren per scène, worden ingevoegd.Als u een prefab aan een scène toevoegt, maakt u er een instantie van. exemplaren zijn gekoppeld aan de originele Prefab en zijn in wezen klonen ervan.Het maakt niet uit hoeveel exemplaren er in uw project zijn, wanneer u wijzigingen in de Prefab aanbrengt, ziet u de wijziging toegepast op alle exemplaren. "

Als je afkomstig bent van Flash en ActionScript, zou dit bekend moeten klinken. Om de koe in een prefab om te zetten, sleept u de koe van de Hiërarchie paneel naar de Middelen paneel. Dientengevolge, de naam in de Hiërarchie wordt blauw.

Door de koe om te bouwen naar een prefab kunnen we het opnieuw gebruiken, wat handig is omdat het al de nodige componenten bevat.


27. Spawner Script

Het script van de spawner zorgt ervoor dat de koeien verschijnen. Open MonoDevelop - of uw favoriete C # -editor - en maak een nieuw script aan:

gebruikmakend van UnityEngine; met behulp van System.Collections; public class Spawner: MonoBehaviour public float spawnTime = 2f; public float spawnDelay = 2f; openbare GameObject-koe; // Gebruik dit voor initialisatie ongeldig Start () InvokeRepeating ("Spawn", spawnDelay, spawnTime);  void Spawn () / * Instantiëren van een koe * / GameObject-kloon = Instantiëren (koe, transform.position, transform.rotation) als GameObject; 

We noemen het InvokeRepeating methode om koeien te spawnen met behulp van de waarden ingesteld door spawnTime en spawnDelay. De GameObject koe is ingesteld op openbaar en is gemaakt met behulp van de Inspecteur. Klik op de kleine stip aan de rechterkant en selecteer de koe Prefab.


28. Spawner Game-object

Om de koeien prefab te laten verschijnen, gebruiken we de afbeelding van de koe die we een paar minuten geleden aan de scène hebben toegevoegd. Selecteer het en verwijder de componenten. Voeg vervolgens het spawner-script toe.


29. Testen

Het is tijd om de game te testen. druk op Command + P om het spel in Unity te spelen. Als alles werkt zoals verwacht, bent u klaar voor de laatste stappen.


30. Spelerinstellingen

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 brengt het Speler instellingen in de Inspecteur paneel waar u de parameters voor uw toepassing kunt aanpassen.


31. Toepassingspictogram

Met behulp van de graphics die je eerder hebt gemaakt, kun je nu een leuk pictogram voor je game maken. Unity toont u de vereiste formaten, die afhankelijk zijn van het platform waarvoor u bouwt.


32. Splash-afbeelding

De splash- of startafbeelding wordt weergegeven wanneer de toepassing wordt gestart.

33. Bouw

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.

34. Xcode

Als u voor iOS bouwt, hebt u Xcode nodig om het binair bestand voor de laatste toepassing te bouwen. Open het Xcode-project en kies Bouwen van de Artikel menu.

Conclusie

In deze zelfstudie hebben we geleerd over de nieuwe 2D-mogelijkheden van Unity, botsingsdetectie en andere aspecten van game-ontwikkeling met Unity.

Experimenteer met het resultaat en pas het aan om het spel je eigen te maken. Ik hoop dat je deze tutorial leuk vond en vond het nuttig.