Gå til innhold

[Løst] Unity - Ønsker litt hjelp med et script


Anbefalte innlegg

Heisann!

 

Jeg holder på med et lite skoleprosjekt der vi tar i bruk Unity. Det er ikke noe stort og det er ikke relatert til koding eller scripting i seg selv, men heller implementering og bruk av 3D-objekter, samt lys og den slags. Det er riktignok ønsket at vi har noen interaktive elementer med. Det betyr ikke at vi er nødt til å scripte noe, men jeg ønsker å komme litt inn i bruken av det og har noe jeg kunne tenkt meg å ha med i scenen.
 

Det jeg er ute etter er egentlig bare at playeren min skal kunne plukke opp et objekt, kunne kaste det ala en bumerang som kommer tilbake til playerens arm, for så evnen til å droppe dette objektet på bakken etterpå. And then rinse and repeat.

Hvis noen ønsker å skrive dette for meg, så er jo det top notch! Jeg forstår et script ganske bra etter det først er skrevet. Hvis ikke, så er jeg i det minste ute etter pekepinner ettersom jeg ikke har scriptet før. 
Ikke at jeg ikke har prøvd. Jeg er bare litt blind på hvordan en setter det opp med ønsket resultat.

 

Noen her med en hjelpende hånd?

Lenke til kommentar
Videoannonse
Annonse

Jeg har ikke tenkt å skrive det for deg (lazy bastard!), bruk tutorials som alle andre. Men jeg kan hjelpe deg litt med hva du trenger:

 

1) Du trenger bool variabler og if-statements for å kontrollere når boomerang skal kjøres. Passe på bl.a. at gjennomførelsen av boomerang-bevegelsen ikke forstyrres av at brukeren trykker knappen om igjen.

 

2) Boomerangen bør ha en BoxCollider som ikke interagerer med fysikk-systemet, slik at bevegelsen dens blir uforstyrret, men du likevel kan fange opp når den beveger seg over andre objekter.

 

3) Du finner ut hvilken retning og hvor langt boomerangen skal reise. Hvis du ikke er i stand til å lage ditt eget script anbefaler jeg deg å gjøre det på den enkle måten og bare la den gå i en fast retning (hvis du kunne litt mer ville du kunne gjort det med Camera.main.ScreenToWorldPoint for å f.eks. få den til å følge musa di). Hvis du ikke er kjent med vektor-matematikk så kan du gjøre det på den enkle måten å bruke noe slikt som "Vector.Right * myDistance" for å sende en hvis lengde mot høyre.

 

4) Lag en funksjon som heter f.eks. void BoomerangThrow() og del opp funksjonen i to (bruk bools og if-statements for oppdeling). Del 1 inneholder koden for å få den til å bevege seg hver frame mot målet. Deretter når den har nådd målet ditt så bytter du over til Del 2 av koden for å få den til å reise tilbake til spilleren. Når den kolliderer med spillerens BoxCollider slår du av scriptet. Jeg satser på at du kjenner til OnTriggerEnter-funksjoner.

 

Hvis du er usikker på hvordan å lage et boomerang-objekt under runtime og få en referanse til det så følg tutorial. Kort fortalt lager du en prefab, en public variabel av typen Gameobject og bruker denne funksjonen: https://docs.unity3d.com/ScriptReference/Object.Instantiate.html

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...