‫Hallo en welkom.
‫In deze lezing gaan we een wapen zo ontwerpen dat als we op de muisknop
‫of de trekker drukken, we een logbericht krijgen.
‫En dit logbericht is de eerste stap om veel andere dingen van de achterkant van deze wapenarchitectuur te
‫laten lopen.
‫Laten we erin duiken en kijken hoe het gedaan is.
‫Dus we willen dat dit wapen uiteindelijk kan schieten.
‫En dat is de kern ervan.
‫Waarom kiezen we ervoor om het pistool als de kern van onze schietarchitectuur te gebruiken?
‫Welnu, zoals ik al een beetje heb gezegd, willen we verschillende soorten opnamemethoden kunnen
‫ondersteunen.
‫Wat zijn de soorten schietmethoden die we normaal gesproken kunnen gebruiken?
‫Dat is direct vuur, waarbij vaak via raytracing en directe zichtlijn wordt vastgesteld of een slachtoffer al
‫dan niet is geraakt.
‫Dus het zou gaan en zeggen, oké, ik kan die vijand zien.
‫Het is dat de zichtlijn van het geweer naar de vijand duidelijk is.
‫Het raakt hem.
‫Dus we moeten hem schade toebrengen.
‫Anders, als ik miste en ik heb de vijand niet geraakt, richt het geen schade aan.
‫Dat is een heel gemakkelijke manier.
‫Het bootst niet echt de fysica van een kogel na, maar dat is ook niet nodig.
‫Dus om prestatieredenen doen we dat nu niet met een raketwerper of iets dergelijks, het is vaak
‫een erg traag projectiel.
‫We willen het effect zien van dat projectiel dat door de lucht beweegt en de vertraging kan belangrijk zijn.
‫In dat geval kunnen we dat projectiel spawnen en kijken of het projectiel in
‫5 seconden tijd raakt, of we kunnen een andere route inslaan met kogels en geweren en sluipschuttersgeweren over lange afstanden.
‫Dus dit kan allemaal veranderen, afhankelijk van de implementatie van ons wapen.
‫Nu gaan we tijdens deze sectie één pistool implementeren.
‫Het wordt een geweer, een soort direct schietend geweer.
‫Maar om die architectuur voor u open te laten om uit te breiden, gaan we het pistool verantwoordelijk maken voor
‫het schieten.
‫Dus dat betekent dat we door moeten gaan en wat schietarchitectuur in ons pistool moeten introduceren.
‫Dus we hebben een geweerschot.
‫H We willen hier een publieke functie voor creëren die ons in staat stelt om in wezen de trekker over te halen op
‫het pistool van de schutter.
‫Juist.
‫Dus van waar we ook zijn bindende input.
‫In het geval van de vijand gaan we bijvoorbeeld de trekker uit de lucht halen.
‫Dus laten we doorgaan en een leegte creëren.
‫Het hoeft geen pull-triggermethode van het retourtype te hebben en er hoeft niets voor nodig te zijn.
‫Alles wat we moeten weten is dat we de trekker willen overhalen in dit frame.
‫Dus dat hebben is voldoende.
‫Nu ga ik door en maak de rotatie met control shift P en creëer implementatie.
‫En dan hierbinnen, alles wat ik ga doen is een YUI-logboek plaatsen en ik
‫ga gewoon een waarschuwing maken om op te vallen en het bericht te veranderen in Je bent zo neergeschoten en dat is geweldig .
‫Dus dat is wat we in ons personage DOT CBP gaan noemen.
‫Dus dit wordt een uitdaging voor je, is wat meer input bindend?
‫We hebben hier veel inputbinding gedaan.
‫Je hebt veel voorbeelden van invoerbinding.
‫Ga je gang en doe dit.
‫Om een schietactie aan te sluiten, moet je een nieuwe actie maken in de projectinstellingen voor
‫fotograferen.
‫Bind dat aan je sleutel, je rechter trigger, waar je het ook aan wilt binden, en bind het dan in de
‫personage-setup player input component-methode om dit te doen.
‫En na het binden van het personage, zou je de pull-trigger moeten kunnen oproepen met
‫in de functie die je op het personage hebt gemaakt.
‫Vergeet niet om een functie in het teken in te voeren om de binding in te stellen, in plaats van te proberen
‫rechtstreeks aan dat wapen te binden.
‫Direct aan het pistool binden gaat niet werken.
‫Je moet er een kleine functie tussenpersoon in zetten.
‫Dus pauzeer de video en ik geef je een kleine hint of een klein begin als je worstelt met
‫dat laatste deel van de uitdaging van het creëren van de intermediaire functie.
‫Oké, hier komt de hint.
‫Als je de hints niet wilt, pauzeer dan nu.
‫Maar de hint zal zijn dat we zoiets als dit gaan doen, namelijk om een nieuwe privéfunctie
‫te hebben genaamd void, shoot en de implementatie in C++ te creëren.
‫En het zal hier zijn dat we de methode van de wapens gebruiken.
‫Dus de geweren halen de trekker over, we gaan het geweer doen.
‫En haal dan de trekker over van binnenuit schieten.
‫En dit is wat je moet binden.
‫Oké, dus de video wordt weer opgehaald, als dat is waar je dingen wilt doen en laten we dan gaan en de
‫acties opzetten.
‫Oké.
‫Dus we gaan naar onze projectinstellingen.
‫Dus instellingen, projectinstellingen en we willen dit docken en naar onze input gaan en we willen een nieuwe actie toevoegen
‫en we gaan het shoot noemen.
‫En dan gaan we dit binden aan de linkermuisknop en de rechter trigger, niet aan de rechter trigger-as.
‫Het recht.
‫Gewoon triggeren.
‫Ik dacht dat ik daarvoor had gekozen, maar dat was niet zo.
‫Dus het bindt aan zowel de controller als de muis.
‫En ik ga erheen en bind de as vast en schiet een personage CP.
‫Dus kopieer deze bind-as voor sprong.
‫Ik bedoel, actie.
‫Natuurlijk haal ik die twee altijd door elkaar.
‫We hebben hier een oproepomschakeling naar de schietas.
‫De geperste is wat we willen en in plaats van te binden om te springen, gaan we in plaats daarvan binden aan een
‫karaktershoot.
‫Zoals zo.
‫En laten we doorgaan en bouwen.
‫Oké.
‫Het lijkt erop dat dat is gelukt.
‫Laten we dat afsluiten.
‫En kijken of het werkt.
‫Dus laten we het spel afsluiten en opnieuw op play drukken en het outputlogboek bekijken.
‫Cruciaal spelen.
‫Ja.
‫Dus als ik op de muisknop druk, werkt het.
‫Eens kijken of hetzelfde gebeurt als ik mijn rechter trigger gebruik.
‫Ja.
‫Rechts.
‫Trigger werkt ook om te vuren.
‫Het is dus duidelijk dat een logbericht niet de beste manier is om je speler te laten weten dat er iets aan de hand is in het
‫spel.
‫Dus in de volgende lezing gaan we kijken naar het toevoegen van deeltjeseffecten om precies dat te doen.
‫Ik zie je daar.