Jump to content
Unity Insider Forum

Sascha

Administrators
  • Content count

    10,635
  • Joined

  • Last visited

  • Days Won

    462

Sascha last won the day on October 5

Sascha had the most liked content!

Community Reputation

2,125 Excellent

3 Followers

About Sascha

Contact Methods

  • Website URL
    http://www.indiepowered.net

Profile Information

  • Gender
    Male
  • Location
    Hamburg
  • Interests
    Programmierung

Recent Profile Visitors

31,298 profile views
  1. Sascha

    Inventar und Objekte

    Inventar ist halt keine der ganz einfachen Aufgaben mehr. Du musst dich darauf einstellen, dich durch gewissen Dinge erstmal durchzufuchsen. Vielleicht sogar mit kleineren Projekten. Und ich würde in jedem Fall empfehlen, IMGUI (OnGUI) liegen zu lassen, weil Fehler wie der, den du jetzt hast, eventuelle Probleme mit UGUI durchaus ausgleichen können. Lass dich also nicht abschrecken - Arbeit ist es so oder so.
  2. Wenn deine Vuforia-App nur einen schwarzen Bildschirm anzeigt, dann liegt das vermutlich an den Vuforia-Einstellungen. Ich hab da ein bisschen mit rumgefummelt, bis ich gemerkt hatte, dass ich intuitiv Blödsinn eingestellt hatte, bevor ich das erste Mal gebuildet habe. Im Zweifelsfall mal die Vuforia-Einstellungen komplett zurücksetzen. Jedenfalls wird die App direkt über USB installiert. auf dem Speicher des Telefons bleibt dabei keine apk übrig. Ähnlich wie beim Play Store - da installierst du das ja auch direkt und lädst nicht manuell die apk herunter. Option 2: Wo auch immer du willst. Wenn du eine File Manager-App hast, kannst du die apk damit von überall aus öffnen. Wenn nicht, empfiehlt sich natürlich der Download-Ordner des Geräts, weil man auf den ja auch ganz gut mit den üblichen vorinstallierten Apps zugreifen kann.
  3. Sascha

    Allgemeine Fragen über Datenaustausch in Unity

    1) Du hast mehrere Möglichkeiten: Statische Variablen ScriptableObjects als Datencontainer Objekt(e) mit DontDestroyOnLoad Das ist auch in absteigender Reihenfolge - nimm also am liebsten erstmal eine statische Variable oder zwei. ScriptableObjects sind etwas komplizierter anzuwenden, erlauben dafür aber Injection. DontDestroyOnLoad wird oft als allererstes empfohlen, ist aber keine besonders schöne Sache, und dazu noch unnötig, wenn keine UnityEngine-Komponenten überleben müssen. 2) Wenn du von UnityEngine.Events.UnityEvent redest, dann ja. In der Regel stellt sich bei näherer Betrachtung heraus, dass es für jeden Fall, in dem man mehr Parameter übergeben will, eine architektonisch elegantere Lösung gibt.
  4. OnCollisionExit wird nicht getriggert?
  5. Sascha

    Handy Google komplett weg

    Nope, kenne keine.
  6. Sascha

    Charakter mit Rücken zur Wand drehen

    Niemals an einem Quaternion selber Werte ändern, das bringt dir nichts, selbst wenn du verstanden hast, wie die Dinger funktionieren Quaternion.FromToRotation bringt dir hier auch nichts. Was du willst, ist eher var horizontalNormal = hit.normal; horizontalNormal.y = 0; transform.forward = horizontalNormal;
  7. Sascha

    von PC auf iPad

    Für iOS-Apps braucht man XCode, und dieses darf aus Lizenzgründen nur auf Apple-Systemen laufen. Apple will halt nicht, dass Leute ihr Ökosystem verlassen; ziemlicher Dick Move, wenn du mich fragst. Die Option zum Export für iOS und MacOS hast du auf Windows und Linux trotzdem, weil Unity dir ein XCode-Projekt rausschmeißen kann, das du dann auf einem Apple-System mit XCode kompilieren kannst. Das Apple-System braucht dann kein Unity mehr installiert zu haben.
  8. Sascha

    Animation mehrfach abspielen

    Deshalb keine Strings benutzen, sondern StartCoroutine(AnimationDelay());
  9. Sascha

    Handy Google komplett weg

    Also, entweder dein Handy ist gerootet und jedes Android-Forum sollte da mehr Ahnung haben als hier, oder du hast es zerschossen und du musst zum Hersteller, egal was du davon denkst.
  10. Sascha

    Verständnis Frage Mouse Position

    Input.mousePosition ist die Position der Maus auf dem Bild in Pixeln. Die untere linke Ecke ist (0, 0) und wenn du in Fullscreen auf einem FullHD-Bildschirm spielst ist oben rechts (1920, 1080). Wenn die Kamera sich in deiner Szene bewegt, ändert sich an dieser Definition nichts. Wenn du sie 10m weiter nach rechts verschiebst, dann ist unten links immer noch (0, 0). Allerdings zeigt der Mauszeiger jetzt auf eine andere Stelle in der Szene. Deshalb gibt es ScreenToWorldPosition: Es steckt eine Position auf dem Bild des Spiels in die Kamera, die dann anhand ihrer Position, aber auch ihres Zooms ausrechnet, wo in der Szene sich das gegebene Pixel befindet.
  11. Sascha

    Objekt im Objekt finden

    Zwischen die < > kannst du (prinzipiell erst einmal) jeden Klassennamen schreiben, den es im Projekt gibt. Dazu zählen lauter Klassennamen, die Unity dir gibt (wie Renderer), aber auch alle, die du so gebaut hast, z.B. "InteraktivesElement". Bei GetComponent kommt dazu, dass nur Komponenten erlaubt sind, aber das hast du ja gegeben. Also einfach Fleischbrocken.GetComponent<InteraktivesElement>().enabled = true; Schick ist auf lange Sicht was anderes, aber so hält's erstmal. Was ich mich halt frage ist, warum du überhaupt die Komponenten ein- und ausschaltest, wenn du doch sowieso das ganze GameObject schon aktivierst und deaktivierst. Ein Renderer auf einem deaktivierten GameObject ist automatisch ebenfalls deaktiviert, da muss man nicht noch mit enabled arbeiten.
  12. Wenn du eine Variable übergibst und diese innerhalb ihrer Lebenszeit noch irgendwann einmal ihren Wert ändert, dann gilt der neue Wert von dann an auch für deine anonyme Methode.
  13. Naja, du gehst von "Any State" zu "grimItem". Wenn eine Transition aus "Any State" kommt, kann sie jederzeit ausgelöst werden. Und darunter fältt es auch, wenn du in "grimInventoryIdle" bist. Daher sollte "Any State" nur dann benutzt werden, wenn man sich auch ganz sicher ist, dass es das richtige ist. Dein Problem ist daher, wie du schon bemerkt hast, dass dein Bool nicht mehr auf false geht und die Transition von "Any State" nach "grimItem" dauerhaft aktiv ist. Wie gesagt - überdenke noch einmal, ob "Any State" das Richtige für dich ist. Aber bis dahin kannst du statt deines Bools einen Trigger-Parameter bauen. Die funktionieren genau woe Bool-Parameter, aber mit dem Unterschied, dass sie automatisch sofort wieder false werden, nachdem man sie auf true geschaltet hat.
  14. Alles, was du ganz normal ausführen kannst, kannst du auch in einen Lambda-Ausdruck packen. Bei mehreren Anweisungen müssen nur geschweifte Klammern her. Nein. Worauf du achten musst ist, dass bei einem Lambda-Ausdruck nicht die aktuellen Werte übergeben werden (pass by value), sondern Variablen (pass by reference). Wenn du sowas machst: var i = 10; Action foo = () => Debug.Log(i); i = 500; foo(); dann wird 500 ausgegeben, nicht 10. Schau also mal, ob du noch irgendwelche Variablen änderst, nachdem du AddListener ausgeführt hast.
  15. Poste doch mal die eine oder andere Fehlermeldung, dann können wir vielleicht mehr dazu sagen
×