Jump to content
Unity Insider Forum

Aufwachszene mit transform?


oci300

Recommended Posts

Guten Abend oder Morgen!

 

Diesmal hab ich kein Problem an sich.

 

Fuer mein kleines Uebungsprojekt moechte ich gerne eine "Aufwachszene" am Anfang.

Sprich, der "Player" (Besteht eig nur aus ner Kamera und nem Rigidbody. Kein Modell :lol: ) liegt auf dem Boden, Kamera schwarz. Dann kommen 2 Audioclips, Kamera blendet auf, 1 Audioclip, Charakter steht auf.

 

So, wie mach ich das aufstehen am besten? Animation faellt weg (oder? Wie gesagt, kein Modell. Was soll ich animieren. Wuerde das ueberhaupt gehen, sprich, wenn ich nen Modell habe und animiere, bewegt sich die angehaengte Kamera da mit?).

Mach ich das mit transform am besten? Aber waere schwierig das einigermaszen schoen hinzubekommen, oder? Womit wuerdet ihr das machen?

 

Und die Kameraaufblende? Hab gegooglet, aber ich finde nichts. Wenn ihr nen Begriff dafuer habt, dann haut ihn raus, dann sollte ich ja was finden im groszen weiten Netz.

 

Und kurze Nebenfrage: So ein kleines "Quiz" (1 Frage, 3 Antworten) mach ich am einfachsten mit Buttons im Canvas oder?

Und wie lasse ich die Buttons durch n Script erscheinen ? Sollen ja erst auftauchen, wenn ich den Bereich betrete. Ich suche grade selber, aber vielleicht seid ihr ja schneller :ph34r:

 

Hach, schon wieder so viel Text.

Ich hoffe, ihr habt schoene Ideen dazu.

 

Viele Gruesze,

Oci! ;)

 

Edit: Gehen bei euch die Umlaute nicht mehr? Wurden grade alle ersetzt.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Du kannst natürlich alles animieren, was nen Transform hat (also jedes Gameobject). Alles was du als Child anhängst, wandert dementsprechend mit. Deine Fragen deuten darauf hin, dass Unity für dich noch ganz neu ist. Ich kann dir nur empfehlen, dir ein Buch über die Grundlagen zu besorgen. Das beantwortet so viele dieser Fragen und macht dir den Einstieg zur reinsten Freude. Unten im Forum sind gute deutsche Bücher verlinkt.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ja, fange grade erst an. Ein Buch habe ich hier liegen. Da hab ich das Beispielprojekt auch raus. Das erweitere ich jetzt um viele Sachen. Und Animation, Modellierung etc ist nicht so mein Gebiet. Das nötigste bekomme ich hin, aber wenn ich das mit Freunden vergleiche, die das auch teils beruflich machen, sieht meins aus wie Müll.

Deshalb halte ich mich an das, was ich kenne: Auf der Tastatur rumtipsen. :lol:

 

Das mit der Animation hab ich noch nicht getestet, werde ich wohl erst morgen machen. Aber das sollte ja dann klappen.

 

Hab jetzt ein neues Problem.

Wenn man den richtigen Button drückt, dann soll man teleportiert werden.

 

Hab das mit

private GameObject player;
public Transform target;

void Start () {
 player = GameObject.FindGameObjectWithTag ("Player");
  }

player.transform.position = Vector3.MoveTowards(transform.position, target.position, 1);

gemacht. (Kurze Form ^^)

 

Hab dann ne kleine Box ans ziel gesetzt, collider entfernt und die Box im Inspector als Target eingetragen.

Teleportiert werde ich auch, aber leider an die falsche Stelle. Das scheint die 0,0,0 Position der Box zu sein, wo die Box aber ja nicht mehr ist, da ich sie ja verschoben habe (zB 13,4,210).

Liegt es daran ? Werde ich zu der 0,0,0 Position bewegt und wenn ja, wie kann ich die aktuelle Position der Box als 0,0,0 eintragen?

 

 

Edit: Hab die 1 mal durch andere Zahlen ersetzt, dann werde ich an andere Stellen teleportiert.

Ganz dumme Frage: Wofür steht die Zahl, die man da einträgt? Dachte das wäre die Geschwindigkeit mit der man bewegt wird...

Also wenn ich 150 eintrage, werde ich an die richtige Stelle bewegt. Aber warum? Das würde mich sehr interessieren, ich will ja nicht durch raten ans Ziel kommen. :rolleyes:

Link zu diesem Kommentar
Auf anderen Seiten teilen

player.transform.position = Vector3.MoveTowards(transform.position, target.position, 1);

 

MoveTowards gehört in eine Update Funktion (weiß jetzt nicht wo das bei dir drin ist) und ist für Teleport ehr ungeeignet. Sondern verschiebt die Position mit der angegeben Geschwindigkeit (bei dir 1) bis, das Ziel erreicht ist. Teleport wäre:

 

 transform.position = target.postion; 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ah ok, dann werde ich das anpassen. Ich erreiche zwar das Ziel, aber je sauberer desto besser =).

 

Da ich Threads hasse, wo am Ende keine Lösung steht, hier wie ich das jetzt gemacht habe:

 

"Kameraaufblendung": Hab ich wie Sascha meinte mit nem schwarzen "Image" am Canvas geregelt, was dann über Code nen Alphawert von 0 bekommt. Klappt super!

private Image image;
image = GameObject.FindGameObjectWithTag ("Canvas").GetComponent<Image> ();
Color c = image.color;
  c.a = 0;
  image.color = c;

 

Buttons: Da hab ich etwas getrickst. Da sich die nicht ausstellen lassen wollten, habe ich einfach deren Größe beim Start auf 0% gestellt und sobald der Spieler die Stelle betritt, wieder auf 100% :D Man muss sich nur zu helfen wissen.

GameObject.Find ("HIERNAMEDESGAMEOBJECTS").transform.localScale = new Vector3 (0, 0, 0);
bzw zum anzeigen wieder auf (1,1,1)

 

Und bei der Animation hab ich einfach die Kamera animiert, hat ohne Probleme geklappt.

 

Vielen Dank euch nochmal! :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...