Gå til innhold

Anbefalte innlegg

Skrevet

Helt helt enkelt.

Hvordan får man et objekt til å bevege seg?

Jeg vil ha et objekt til å bevege seg +10 til høyre, og så bevege seg tilbake igjen. Og så tilbake og tilbake og tilbake. Enkelt å greit.

Videoannonse
Annonse
Skrevet

Prøver igjen:

 

Et objekt begynner på x = 0

 

Så prøver jeg meg på denne:

Vector3 pos = transform.position;
pos.x += 0.7f;
transform.position = pos;
Da beveger objektet seg.
Hvordan får jeg objektet til å stoppe, snu og dra tilbake når f.eks x = 10 ?
Skrevet (endret)

Du vil kunne gjøre for eksempel:

if x >= 10
moveRight = false
if x <= 0
moveRight = true

obj.x += (moveRight ? 0.7 : -0.7)

Pseudokode, ikke helt korrekt unity eller C# syntaks. :)

Endret av Cemi
Skrevet (endret)

Vil anbefale å kanskje prøve å følge noen av unity sine tutorials på nettsiden dems, dersom du ønsker å lage spill, og synes det var vanskelig å flytte objektet frem og tilbake. Kan gjerne ta litt tid å få det til ved å bare utforske selv, dersom du ikke har en del erfaring med C#. :)

 

http://unity3d.com/learn

Dersom du går inn på tutorials er det en egen kategori som er skripting, hvor man får greie innføringer i de fleste konseptene i unity koding.

 

Et korrekt unityscript som gjør det du forespurte er følgende, dersom du fortsatt prøver å gjøre det:

using UnityEngine;
using System.Collections;

public class NewBehaviourScript : MonoBehaviour {

	bool moveRight = true;
	// Use this for initialization
	void Start () {
	
	}
	
	// Update is called once per frame
	void Update () {
		if (this.transform.position.x <= 0)
			moveRight = true;
		else if (this.transform.position.x >= 10)
			moveRight = false;

		this.transform.position += new Vector3((moveRight ? 0.7f : -0.7f), 0, 0);
	}
}

Dersom du legger til denne komponenten på et objekt vil det beveger seg veldig fort. Det er fordi den flytter den så mye hver gang "update" kalles, som er ca. 60 ganger i sekundet vanligvis. Dette kan mitigeres ved å gange verdien du plusser på posisjonen med en tidsfaktor. Dersom man bare stiller ned verdien man plusser på, så vil den bevege seg raskere på raske datamaskiner enn trege, da de vil kjøre "update" færre ganger i sekundet. Dette kan du også lese mye mer om i Unity sine tutorials. :)

Endret av Cemi
Skrevet

Å nice :):w00t:

 

Hmm jeg skal se på toturialene til Unity. Jeg har en bok som jeg leser, og har sett noen filmer på youtube, men har ikke funnet denne lille koden her.

Takker så mye :thumbs:

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...