Jump to content
Unity Insider Forum

Der_Stefan_

Members
  • Content Count

    5
  • Joined

  • Last visited

Community Reputation

0 Neutral

About Der_Stefan_

  • Rank
    Newbie
  1. Oh... okay. Danke. ist tatsächlich das erste mal, dass so einen spezifischen Trigger benötige. Bisher kam ich mit dem allgemein gültigen sehr gut aus :D probiere ich heute Abend direkt aus.
  2. Hallo Leute, ich stehe gerade etwas auf dem Schlauch. Ich habe einen Tresor gebaut, der von Spieler mittels richtiger Kombination geöffnet werden kann (Wird ein Escape-Room-Spiel). Aktuell habe ich schon mal den Tresor, das Öffnen wenn man davor steht, Sounds etc. für die grundsätzliche Funktion gescriptet. Die Nummernsteuerung folgt später. Funktioniert auch alles, alles cool. Wo ich mich aber grad wundere, ich habe dem Trigger-Collider gesagt, dass er sich nur öffnen soll, wenn der Spieler in ihm steht, sprich im Spiel, der Spieler vor dem Tresor. Jetzt die entscheidene Frage: Mache ich das nicht, indem ich den Collider nicht mit "other", sondern mit dem Namen des Spieler-Colliders benenne? Also in meinem Fall mein Männchen "Horst"? (Siehe Zeile 18: "void OnTriggerStay(Collider Horst)" ). Ich habe den Trigger Collider jetzt erstmal vor den Tresor gesetzt, so dass für den Moment alles vernünftig funktioniert und ich an anderen Stellen weiterarbeiten kann. Ist aber eben nur eine temporäre Lösung, da der Tresor durchaus vom Schrank gestoßen oder der Schrank mitsamt Tresor umgeworfen werden kann. Dann ist der Schrank oder Fußboden schon Hindernis genug um ihn zu öffnen zu können - Was natürlich gerade NICHT sein soll... Im Anhang ein Screenshot des Tresors, mit den beiden Collidern (Tresor selbst, und der Trigger-Collider VOR dem Tresor). Und im Folgenden, mein Script so far... Vielen Dank für eure Ideen und Anregungen. using System.Collections; using System.Collections.Generic; using UnityEngine; public class Tresoroeffnen : MonoBehaviour { public GameObject Karatsafe; public Animator anim; private bool open = false; public AudioClip Safesound; void Start() { anim = GetComponent<Animator>(); } void OnTriggerStay(Collider Horst) { if (Input.GetKeyDown(KeyCode.Space) && !open) { open = true; anim.Play("Karatoeffnen"); AudioSource.PlayClipAtPoint (Safesound, transform.position,1); } else if (Input.GetKeyDown(KeyCode.Space) && open) { open = false; anim.Play("Karatschliessen"); AudioSource.PlayClipAtPoint (Safesound, transform.position,1); } } }
  3. Ich danke euch für eure Ideen und Denkanstöße. In der Layermatrix schien irgendwo tatsächlich der Fehler zu liegen. Zwar ist alles in der gleichen Ebene, Default, und in der Matrix waren auch alle Haken gesetzt, aber ein Versuch war' wert. Alle Haken entfernen, Bestätigen, noch mal in's Menü und alle Haken neu setzen, Bestätigen. Und siehe da, alles funktioniert wie es soll. Puuuh... Ich habe noch immer keine Ahnung wo der Fehler herkam, aber ich bin gerade sehr glücklich dass es trotzdem wieder läuft :)
  4. Hmm... Auf dem ersten Blick scheint alles auf dem Default-Layer zu liegen, oder was meinst du? Aber danke für den Hinweis, das werde ich mir heute Abend noch mal genauer angucken.
  5. Hallo Zusammen, ich habe jetzt hier (und auch anderswo) schon mehrfach nach Antworten für mein Problem gesucht, doch dieses spezifische Problem nicht beantwortet bekommen. Die meisten Collider-Probleme waren da auf zu schnelle GameObjects oder zu kleine Collider zurückzuführen - Beides nicht mein Problem. Und zwar ist es bei mir so, dass sämtliche Collider (Box, Cylinder, Mesh...) einfach von sich aus nicht mehr zu greifen scheinen. Als ob die GamePhysik nicht mehr da wäre. Meine GameObjects fallen einfach durch andere Objects (Terrain, Würfel, Plane etc.) einfach hindurch. Selbstverständlich haben alle unbeweglichen Objekte (Boden, Plattform etc.) Mesh- oder BoxCollider, die beweglichen Teile (Props, Items, Player...) ebenfalls und zusätzlich die Rigidbody-Komponente. An den Scripten kann es auch nicht liegen, ich habe noch gar keine. Bisher habe ich lediglich diverse Modelle in Blender gestaltet und ordnungsgemäß nach Unity transferiert. Ich habe auch bereits testweise - direkt in Unity - einen neuen Würfel generiert (BoxCollider, Rigidbody) und ihn über einer Box (BoxCollider) oder einer Plane (MeshCollider (mal mit, mal ohne Convex-Einstellung)) platziert. Also absolut auf die Basis zurück. Und auch hier fällt der Würfel durch beides einfach durch. Dadurch konnte ich Blender und den Import als Verursacher ausschließen. Danach hatte ich das VisualScripting-Tool "Bolt" in Verdacht. Bei der Installation hat es ziemlich viele Unitiy-Grundeinstellungen überschrieben. Meine Vermutung war daher, dass dadurch auch irgendwas grundsätzliches in der GamePhysik überschrieben wurde. Um das zu prüfen habe ich eine komplett neue Datei angelegt, Test mit Würfel und Plane/Box wie oben beschrieben. Funktioniert ohne Probleme. Bolt installiert, noch immer keine Probleme. Nachträglich, MIT Bolt im Hintergrund, die Testobjekte noch mal neu erstellt. Hier ebenfalls keine Probleme, der Würfel landet sauber auf dem Boden und bleibt liegen. Somit kann ich Bolt als (grundsätzlichen) Fehler-Verursacher ebenfalls ausschließen. als letztes habe ich dann bei dem funktionierenden Testprojekt und meinem Projekt die Preferences von Bolt und Unity selbst, ebenso wie Würfel und Plane verglichen - Alles identisch... So langsam gehen mir echt die Ideen aus wo der Fehler liegen könnte... Habt ihr vielleicht noch einen Ansatz den ich versuchen könnte? Danke im vorraus.
×
×
  • Create New...