Stap 6: Waardoor de speler verplaatsen
Selecteer de speler in de hiërarchie.
Het minimaliseren van onderdelen die u niet zien in het itemvenster geopend wilt door te klikken op de pijlen omlaag links van de naam van elk onderdeel. Dit zal uw werkruimte een beetje opruimen.
Klik op de Voeg Component aan de onderkant van het Inspector-venster. Selecteer Nieuw Script, naam van het script iets als "PlayerController" en kies een programmeertaal. Ik gebruik CSharp. Klik op maken en toevoegen.
Omwille van de bestanden geordend houden, open de map Assets in het venster Project en maak een map genaamd Scripts. Zet uw nieuwe script in deze map.
U opent het script voor het bewerken, dubbel klikt u op de scriptnaam in het itemvenster of openen vanuit het venster Project. Hiermee opent u een programmeeromgeving MonoDevelop genoemd.
Opmerking: Als dit uw eerste keer codering, moet u weten dat het echt nitpicky zijn kan. Zorg ervoor dat u consistent met spelling, gevallen en met openen en sluiten van beugels, haakjes, accolades, citaten, enz. Ook, kijk uit voor fouten die het gevolg zijn van niet met een puntkomma aan het einde van een regel met code.
Er moet al twee secties standaard opgenomen in uw code: void (Start) en ongeldig (Update). Start loopt zodra het object in het spel komt, en bijwerken draait continu terwijl het object in het spel is. We zullen het toevoegen van een derde, genoemd FixedUpdate voor het afhandelen van fysica-gerelateerde protocollen. Het moet er zo uitzien:
void FixedUpdate () { }
Voordat we commando's invoeren kan, moeten we variabelen declareren. Dit wordt gedaan richting de bovenkant van de pagina binnen de accolades na openbare klasse PlayerController (of soortgelijke): Monobehaviour, maar vóór de vervallen Start() functie. Voor beweging, we zullen het gebruiken van een variabele met de naam "snelheid", die we aanpassen kunnen om te bepalen van de snelheid waarmee ons karakter rond de arena beweegt. Declareren van het type van de variabele (float) en de naam (snelheid) als volgt:
public float speed;
De puntkomma vertelt het programma dat dit het einde van de regel met code is. U krijgt een fout als u vergeet te vermelden een puntkomma aan het einde van elke/meeste regel (s) van code, dus laat het niet uit!
Volgens FixedUpdate, verklaren twee meer drijvers, moveHorizontal en moveVertical. Deze waarden afhankelijk van de gebruiker toetsenbordopdrachten overneemt en FixedUpdate bijgewerkt hen elk frame.
float moveHorizontal = Input.GetAxis(“Horizontal”); float moveVertical = Input.GetAxis(“Vertical”);
Geval van belang.
Nog in FixedUpdate, maakt u een nieuwe Vector3, een soort variabele met drie dimensies nuttig voor objecten verplaatsen in de 3D-ruimte. Dit zal nemen over de waarde van de invoer van de gebruiker voor horizontale en verticale beweging, en nul in de richting van de cursor op/neer zal zijn, omdat in dit spel, de speler alleen in twee dimensies verplaatsen kan.
Vector3 movement = new Vector3(moveHorizontal,0.0f,moveVertical);
Ten slotte, ingang een kracht op de speler te verplaatsen rond, met behulp van rigidbody. AddForce, een protocol ingebouwd in de speler rigidbody component.
rigidbody.AddForce(movement*speed*Time.deltaTime);
Time.deltaTime wordt gebruikt om het verkeer soepeler te maken. We zullen de variabele snelheid later, aanpassen in de eenheid-editor.
Sla het bestand CSharp, en ga terug naar eenheid.
Ga naar het deelvenster Inspector voor de speler, en kijken naar het verkeer-script dat u zojuist hebt gemaakt. Er moet een doos voor uw openbare variabele snelheid. U kunt de waarde van openbare variabelen met behulp van de inspecteur.
Voor nu, snelheid gelijk een getal tussen 100-1000, en klik op de knop afspelen op de top, midden van het scherm maken U moet zitten kundig voor verplaatsen de bal met behulp van de beweging eenheid van standaardtoetsen, ASWD of de pijltoetsen.
Klik op de afspeelknop om weer af te sluiten uit het testen van wijze.