In deze tutorialserie laten we u zien hoe u het klassieke Arkanoid (of Breakout) -spel in Unity kunt recreëren, met behulp van de eigen 2D-hulpmiddelen van Unity. In elke post zullen we ons concentreren op een specifiek deel van het spel; in dit bericht stellen we het project en de bijbehorende items in.
Deze tutorial is voornamelijk gericht op twee groepen mensen:
We gaan ervan uit dat je enkele programmeervaardigheden hebt, dus we zullen de code niet uitvoerig behandelen.
Als u deze zelfstudie wilt volgen, moet u de Unity-software downloaden.
In deze zelfstudie concentreren we ons volledig op de nieuwe 2D-toolset van Unity. Het idee is om de toolset te dekken en voldoende kennis te bieden zodat je Unity kunt gebruiken om je eigen 2D-games en -apps te maken, zelfs als je Unity nog nooit hebt gebruikt.
De belangrijkste functies die zijn geïntroduceerd in de 2D-toolset van Unity zijn:
sprite
, gedefinieerd door een 2D-structuur, een rechthoek en een draaipunt.SpriteRenderer
.Deze tutorial behandelt al deze, behalve de atlas.
Bekijk deze demo om te zien waar we naar streven in de hele serie:
En hier is wat we zullen hebben aan het einde van deze post:
Start Unity en maak een nieuw project door te selecteren Nieuw project… van de het dossier menu. De Project Wizard zal verschijnen:
Definieer de projectlocatie (dit kan zijn waar je maar wilt), kies 2D in de Standaardinstellingen instellen voor en selecteer geen pakketsjabloon. (Deze pakketsjablonen, zoals de naam al doet vermoeden, zullen uw project automatisch importeren en voorbereiden met specifieke configuraties en activa.)
Klik Maak een project; de editor zal openen en je zou naar iets moeten kijken dat erg op dit lijkt:
Dit is de standaard editorlay-out. U kunt werken met elke lay-out waar u zich prettig bij voelt, maar de beste methode is om de lay-out aan te passen aan het type project waaraan u werkt. Dit zal u helpen uw productiviteit te verbeteren. Als u een nieuwe gebruiker van Unity bent, raden we u aan onze lay-outconfiguratie te volgen; zo niet, dan kunt u dit gedeelte overslaan.
De Unity-editor bestaat uit tabbladen, waarbij elk tabblad specifieke en specifieke informatie bevat. De lay-outs wijzigen de organisatie en plaatsing van elk tabblad. U zult tabbladen hebben voor het debuggen van consoles, activa, de scène, inspecteurs en anderen.
In de rechterbovenhoek van het scherm ziet u een vervolgkeuzemenu met de naam lay-out. Klik hierop en kies de Lang keuze. Je editor zal zich automatisch aanpassen en zal er ongeveer zo uitzien:
De belangrijkste reden om deze lay-out te definiëren, is zodat we directe en eenvoudige toegang hebben tot onze scènehiërarchie, de projectactiva, de inspecteur en de foutopsporingsconsole. De console ontbreekt nog, dus voeg deze toe door op te klikken Venster> Console.
U zult merken dat het consolevenster rondzweven is. Om het aan de editor te koppelen, sleept u het onder de Tafereel tab:
Nu je alles op zijn plaats hebt, zou je de nieuwe layout moeten opslaan, zodat je hem in andere projecten kunt gebruiken of er gemakkelijk naar terug kunt keren voor het geval je de lay-out tijdens de ontwikkeling van het spel moet veranderen.
Klik op om de huidige lay-out op te slaan Lay-out> Lay-out opslaan. Het zal u om een naam vragen; aangezien je een lay-out voor 2D-spellen definieert, zou je het een naam kunnen geven My2DLayout
. Klik Opslaan en je hebt een nieuwe vooraf gedefinieerde lay-out om te gebruiken.
Als je wilt, kun je alle lay-outs doorlopen om te zien hoe verschillend ze kunnen zijn.
Nu u de editor gereed heeft om in te werken, wordt het tijd om de items te importeren en te ordenen. Deze stap is opnieuw erg belangrijk voor de productiviteit. De belangrijkste projectorganisatie is beschikbaar in de project tab. Op dit moment is dit bijna leeg, omdat het alleen het Middelen map.
Hoewel deze stap niet strikt noodzakelijk is, raden we u ten zeerste aan om de activa op een intuïtieve manier te organiseren, vooral als u met grote projecten werkt. Begin met het maken van de mappen met de volgende namen (klik met de rechtermuisknop Middelen en selecteer Maak> map):
Sprites
scripts
Sounds
Muziek
levels
Nu de projectmap is georganiseerd, is het tijd om de gameactiva te importeren. Je kunt ze vinden in de map tutorial_assets van de GitHub-repo van deze tutorial. (U kunt gewoon klikken ZIP downloaden op de laatste pagina als u niet bekend bent met GitHub.) Houd er rekening mee dat deze map items bevat voor de hele tutorialserie, dus er zijn er enkele die u pas later zult gebruiken.
Om te importeren hoeft u de activamap alleen naar de Unity-editor te slepen onder de map waaraan u dat specifieke activum wilt toevoegen. Ga dus naar het bronbestand dat u zojuist hebt gedownload, selecteer de inhoud van de Sprites map en sleep het naar de Sprites map in Unity. De editor laadt vervolgens de bestanden. Herhaal het proces voor de Muziek en Sounds mappen; als je klaar bent, zou je zoiets als dit moeten hebben:
Nu we onze Unity-lay-out hebben opgezet, het project hebben georganiseerd en alle activa hebben geïnstalleerd, is het tijd om ons eerste niveau te bouwen.
Unity werkt met scenes. Scènes kunnen worden gebruikt om game-objecten, menu's, niveaus of andere game-objecten te bevatten. Een intuïtieve manier om het scèneconcept te begrijpen, is elke scène te zien als een individueel niveau waarop u de bronnen plaatst, de omgeving creëert, vijanden, enzovoort. Met dit in gedachten, laten we je eerste scène maken.
Wanneer u een nieuw project maakt, genereert Unity automatisch een nieuwe scène. In dit geval heeft u een scène met slechts één object, onze Hoofdcamera. U kunt de objecten in uw scène controleren onder de Hiërarchie tab.
U kunt deze scènehiërarchie ook gebruiken om de game-objecten in uw scène te ordenen. Merk op dat, wanneer u een spelobject uit de scène selecteert, u de eigenschappen ervan kunt wijzigen via de Inspecteur.
Voeg een ... toe sprite
voor de achtergrond van het niveau als uw eerste object: in de Hiërarchie tab, klik Maak> Sprite. Verander nu de naam in Achtergrond
(tik invoeren of doe dit via het eerste veld van de Inspecteur tab).
U zult opmerken dat de sprite veld onder de Sprite Renderer component is leeg. Dit betekent dat er geen sprite aan dit object is toegewezen. Laten we het veranderen: sleep de background1.png
activa van de Achtergrond map naar dit veld. De textuur verschijnt dan ter plaatse.
Als u nu overschakelt naar de Spel tab, kun je een voorvertoning van je scène bekijken, net zoals deze zal verschijnen in de laatste game. U kunt de resolutie ook wijzigen op dit tabblad. In deze zelfstudie hebben we de optie gebruikt Standalone (1024x768) als de standaardresolutie (behalve de ingesloten demo's, die kleiner zijn).
Zoals u kunt zien, is uw achtergrond omringd door blauw. Dit komt omdat het beeld niet het hele scherm beslaat, dus u zult het moeten schalen. In de Inspecteur, verander de Schaal van je achtergrond naar 4
op zowel de X- als de Y-as. Dit zorgt ervoor dat de achtergrond het volledige spelgebied beslaat. Zorg er ook voor dat Bestel in laag ingesteld op 0
: bij het werken met sprites gebruikt Unity lagen om ze te tekenen, wat betekent dat lagere getallen eerst worden getekend (en achteraan verschijnen), en hogere getallen worden later getrokken (en verschijnen aan de voorkant). Aangezien deze sprite de achtergrond is, wilt u dat deze op positie staat 0
, de eerste die getekend moet worden.
De volgende stap is het creëren van de spelgrenzen; we voegen drie Sprites toe (Top
, Links
en Rechts
) dat zijn de muren van het spel. Voeg de drie Sprites toe, gebruik hetzelfde proces als hiervoor en gebruik de bar1.png
en bar2.png
activa voor hun afbeeldingen. Om de barposities en -afmetingen aan te passen, gaat u naar de Tafereel tab en speel afzonderlijk met de balken. Vergeet niet om de Bestel in laag naar 1
voor elke balk.
Aan het einde zou je zoiets als dit moeten hebben:
De balken worden stationaire objecten en ze gedragen zich allemaal op dezelfde manier, dus we groeperen dan in een enkel spelobject. Om dit te doen, maakt u eerst een nieuw leeg spelobject door op te klikken Spelobject> Maak leeg op de bovenste menubalk.
De editor heeft een nieuw leeg spelobject gemaakt op onze scène. Sleep nu de drie balkenobjecten in de Hiërarchie tab en zet ze neer op het nieuw gecreëerde lege spelobject. De staafobjecten worden dan subobjecten van het nieuwe object. Hernoem het nieuwe object naar bars
zodat we onthouden wat erin zit.
De enige overblijvende objecten zijn de bal, de paddle van de speler en de blokken. Voor nu voegen we een van elke soort toe. Voeg opnieuw een Sprite toe voor elk object en stel de Bestel in laag naar 1
.
Je zou nu iets vergelijkbaars moeten hebben:
We zullen nu onze scène als het eerste niveau opslaan. kiezen Bestand> Scene opslaan als ... , Noem maar op Niveau 1
, en sla het op in de map levels.
Dit is het eerste deel van deze serie. U hebt nu een Unity-project, alle benodigde middelen en de architectuur van het eerste niveau. De volgende keer krijgen we de peddel en de bal in beweging.
Als je vragen of feedback hebt over wat we tot nu toe hebben behandeld, kun je hieronder een reactie achterlaten.