Jump to content
Unity Insider Forum

Figur animieren


bruelhart

Recommended Posts

drei Fragen:

1. ich will in unity ein spielbares theater bauen - figuren und background habe ich - mir fehlt die option figuren bewegen - simpel links rechts in den achsen - mit collider und trigger für audio....leider funktioniert mein folgendes script aus der literatur nicht:

void Update () { if (Input.GetKey (KeyCode.LeftArrow)) transform.Translate (Vector3. right * Time.deltaTime * 5); if (Input.GetKey (KeyCode.RightArrow)) transform.Translate (Vector3. left * Time.deltaTime * 5); }

was mache ich falsch?

2. gibt es script bausteine die ich für meine figuren nutzen kann? die figuren können sich auch wie schachfiguren bewegen - brauchen also nicht zwingend ein skelett....

3. als regie mensch bin ich beim script schreiben minder begabt - meine frage: suche jemand für  privat support über skype oder vor ort gegen bezahlung - raum basel freiburg waldshut....würde mich freuen!

Danke!

Link zu diesem Kommentar
Auf anderen Seiten teilen

"Funktioniert nicht" ist keine Information, mit der man dir helfen kann. Was genau funktioniert nicht? Bewegt sich die Figur einfach gar nicht?

Hast du das Script denn überhaupt auf ein GameObject gezogen?

Ja, es gibt fertige Scripts für viele Dinge, aber das ist ja die Sache mit dem Programmieren: Jedes Spiel ist anders, und jedes vorgefertigte Script das du benutzt wird früher oder später nicht genau das sein, was du eigentlich willst. Das Script, das du da oben hast (btw bitte nächstes Mal Code-Tags benutzen, <>-Knopf über dem Textfeld) bewegt mit den Pfeiltasten der Tastatur ein Objekt mit 5m/s nach links oder rechts und macht nichts anderes. Du willst eine anderre Geschwindigkeit? Oder dass die Figur nicht durch Wände kann? Schon brauchst du etwas anderes.

Fertige Scripts oder Script-Bausteine sind daher nur als Vorlage bzw. Inspiration gedacht. Du kannst einzelne Elemente darin anschauen, sagen "ach, so wird XY gemacht und dann baust du damit deine eigene Sache.

Zu 3.: Hier ist das schwarze Brett :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Sascha - besten Dank für deine AW -  als Old Fashion Lerner bin ich streng nach Buch vorgegangen - d.h. Schritt für Schritt - inkl. Script auf das GameObject gezogen - das Script - abgeschrieben aus dem Buch in Visual Studio lautet:

using UnityEngine;
using System.Collections;

public class PlayerControl : MonoBehaviour { 

void Update () { 
if (Input.GetKey (KeyCode.LeftArrow)) transform.Translate
(Vector3. right * Time.deltaTime * 5); 
if (Input.GetKey (KeyCode.RightArrow)) 
transform.Translate 
(Vector3. left * Time.deltaTime * 5); 
}

VisualStudio zeigt alles OK - Unity meldet: all compiler errors have to be fixed before you can enter play mode….

hm - keine Ahnung was ich falsch mache

zu was ich will:
> kein Game im eigentlichen Sinne - eher  eine virtuelle Theaterbühne auf der die Besucher die Figuren in der Szene hin und her schieben kann - ein Trigger soll ein Audio auslösen (Sprachtext) - alles spielbar mit einer VR Brille über Steam
> Total 12 Szenen - wie Bühnenbilder
> Die Szenen und Figuren existieren bereits als 3D Low Poly Objekte

Ich selber bin Prof. für Kunst und Design - bin kein Informatiker und somit blutiger Script Anfänger.....

Deine Anregung "schwarzes Brett" nehme ich gerne auf....

Wenn du mir noch ein Tipp hast für ein brauchbares Script (simpel) Asset Store Unity bin ich dir dankbar...

überhaupt Danke für deine Antwort!

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi bruelhart. Willkommen im Forum. :)

Du kannst deinen Code super formatiert hier einfügen wenn du den Knopf <> in der Objektleiste von deinem Texteingabefeld drückst. Dann geht ein neues Fenster auf wo du dann den Code super einfügen kannst. Unten rechts von diesem Fenster ist dann noch ne Auswahl, wo du die Formatierungsart einstellen kannst. Stell die einfach auf C um und schon kannst du sogar TAB's butzen um die Zeilen einzurücken.

using UnityEngine;
using System.Collections;

public class PlayerControl : MonoBehaviour { 
  void Update () { 
    if (Input.GetKey (KeyCode.LeftArrow)) 
      transform.Translate(Vector3. right * Time.deltaTime * 5); 
    if (Input.GetKey (KeyCode.RightArrow)) 
      transform.Translate (Vector3. left * Time.deltaTime * 5); 
  } 

Das hier ist dein Code wenn er formatiert ist. Liest sich doch viel schöner. :)
Ja, und jetzt fällt auch auf, dass bei deinem Code eine geschweifte Klammer am Ende fehlt. Das ist das, was Unity jetzt nicht mag.

In der Console von Unity (sollte bei dir ganz unten als eine Zeile zu sehen sein) steht wahrscheinlich eine rote Fehlermeldung mit dieser Aussage:
 

Zitat

Unexpected symbol `end-of-file'

Da ist jetzt also irgendwas zuende, was noch nicht zuende sein darf.

Wenn du die Klammer in den Code einfügst und speicherst solltest du keine Meldung mehr in der Console sehen.
Jetzt kannst du das Script auf ein Objekt legen, welches du bewegen willst, falls du das noch nicht gemacht hast.
Wenn du jetzt startest, kannst du mit den Pfeiltasten auch das Objekt bewegen.
 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

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

×
×
  • Neu erstellen...