Jump to content
Unity Insider Forum

Zer0Cool

Members
  • Content Count

    2,036
  • Joined

  • Last visited

  • Days Won

    145

Zer0Cool last won the day on September 14

Zer0Cool had the most liked content!

Community Reputation

416 Excellent

8 Followers

About Zer0Cool

  • Rank
    Advanced Member
  • Birthday 01/04/1974

Profile Information

  • Gender
    Male
  • Location
    Germany

Contact Methods

  • Skype
    zer0f0rce

Recent Profile Visitors

8,238 profile views
  1. Sicher das es der CrossPlatformInputManager ist und du nicht eher ein Problem mit den Zuständen deines Animationcontrollers hast (da das GO des Spielers beim Laden vermutlich nicht neu geladen wird)? Da würde es Helfen direkt nach dem Level laden den Controller z.b. in den Idle-State oder ähnliches zu versetzen.
  2. Man könnte das Objekt sobald es sich in einen anderen Collider hineinbewegt auch leicht zurücksetzen (in die Gegenrichtung der Bewegung der Hand oder des Players) und dann das Objekt dem Spieler aus der Hand fallen lassen. Sollte sich der Gegenstand nach dem Zurücksetzen immer noch im anderen Collider befinden würde ich es auf die Initialposition zurücksetzen. Allerdings kann dieses Zurücksetzen oder das aus der Hand fallen lassen den Spieler auch nerven. Dieses leidige Problem des Clippens eines Gegenstandes in ein anderes Objekt hatte ich auch schon ohne VR bei einem einfachen Schwertkampf mit Schild. Hier clippte das Schild immer in den Gegner (wenn der Spieler zu nah an den Gegner lief) und ich musste daraufhin die Position des Spieler korrigieren damit das Schild wieder "frei" wird.
  3. Da hast du grundsätzlich was falsch verstanden. Die OnTriggerStay-Methode liefert dir immer den Collider der gerade im Trigger steht. wie du diese Variable benennst, ob "other" oder "fremderCollider" oder "horst" ist völlig egal. Allerdings kannst du dir über den Collider das zugehörige GO geben lassen und hier prüfen ob es sich es im das GO handelt welches den Spieler definiert. Viele machen das über den Tag des GOs: //Check to see if the tag on the collider is equal to Player if (other.tag == "Player") { Debug.Log("Triggered by the Player"); } , du kannst aber auch eine Komponente des GOs abfragen und so ermitteln, welcher Collider dort in deinen Trigger geraten ist: //Check to see if the gameObject of the collider has a PlayerController component PlayerController playercontroller = other.gameObject.GetComponent<PlayerController>(); if (playercontroller != null) { Debug.Log("Triggered by the Player"); } In dem Beispiel hat der Spieler einen PlayerController und er wird darüber "erkannt".
  4. Eine andere Methode wäre noch immer zu prüfen, ob die Farbe des Würfels der Farbe der Plattform entspricht auf dem der Würfel landen möchte. Dies könnte man über einen Raycast in Flugrichtung des Würfels (der Velocity seines RB) oder der Steuerrichtung des Spielers herausbekommen. Wenn die Farbe des Würfels nicht passt, dann wird der Collider des Würfels einfach deaktiviert. Das klappt aber nur, wenn der Würfel nur auf einer Plattform landen kann, sobald 2 Plattformen aneinander grenzen können oder der Raycast nicht exakt entscheiden kann wo der Würfel landen wird, dann wird es denke ich mit dieser Methode schwierig. Du musst halt schauen was sich am besten eignet. Jede Methode hat seine Vor- und Nachteile.
  5. Das sich bewegende Objekt (Objekt 1) muss einen Rigidbody(2D) besitzen. Unity erkennt nur Kollisionen zwischen 2 Objekten mit Collidern wenn mindestens 1 Objekt davon einen RB besitzt.
  6. Besser wenn du hier die generische Typ-Parameterversion der Funktion verwendest: new AudioClip[]{Resources.Load<AudioClip>("Sounds/000"), Resources.Load<AudioClip>("Sounds/001") ...
  7. Aber aufpassen die Erde ist flach die gehen hier von falschen Tatsachen aus
  8. Hier ist ein Codeschnipsel der wohl sowas macht. Von Haus aus gib es da glaub nix: http://wirebeings.com/markerless-gps-ar.html
  9. Der Stamm des Baumes (3D-Modell) muss auf der Y-Achse liegen, vermutlich liegen deine Bäume auf X oder Z. Wenn der Baum aus Blender kommt liegt die Achse vermutlich auf Z und das muss beim Export korrigiert werden: Der Anchor des Baumes muss zudem am Boden des Stammes liegen.
  10. Ich würde mal eingie Voraussetzungen für den Algorithmus definieren (sofern ich es bisher verstanden habe): - alle Punkte müssen auf einer Ebene liegen - die Fläche sollte geschlossen sein - es sollen keine überlappenden Triangles (Dreiecke) erzeugt werden Das Problem ist jedenfalls equivalent dazu aus einer 2D-Punktwolke einen Mesh zu erstellen, dafür gibt es bestimmt schon einige existierende Algorithmen. Man kann sich natürlich auch selbst einen Algorithmus ausdenken, dass kann aber sehr aufwendig werden, da dieser auch für jeden Fall fehlerfrei funktionieren sollte. Ich würde bei einem eigenen Algorithmus etwas in der Art machen, zuerst den Rand der Punktwolke zu ermitteln (die Punkte die den Rand bilden sollen) und dann über den Rand beginnend Dreiecke zu erzeugen. Dabei werden die Punkte in der näheren Umgebung des Randes gesucht und miteinander entsprechend verbunden, dabei muss man immer darauf achten das die Dreiecke sich nicht überlappen dürfen. Die Fläche wächst dabei quasi von außen nach innen zu (wie bei einem Zellwachstum). Am Ende bleibt vermutlich ein Loch im Inneren ( = der innere Rand), dieses muss man dann am Ende nochmal mit Dreiecken füllen. Leider ist das hier nur eine sehr grobe Beschreibung des Algorithmus, es gibt bestimmt noch etliche Stolperfallen und Probleme dabei zu lösen,
  11. Ein Mesh besteht eben nicht aus Punkten, sondern aus verbundenen Vertices (Dreiecken) die im 3D-Raum liegen und zuvor definiert werden müssen. Je nachdem wie du die Vertices aus der 3D-Punktwolke definierst entstehen andere Meshes.
  12. Schau dich mal auf der Website hier um, hier sind auch Beispiele wie man einen Connect gegen deren MySQL-Servers machen kann via PHP. Der Rest ist dann eigentlich "nur noch" ein Web-Form mit Unity zu verschicken (POST Request) oder eine URL aufzurufen die gegen ein PHP-Skript geht (GET Request). Diese Seite bietet wohl auch "kostenlose" MySQL-Server an, aber ob diese zu empfehlen sind kann ich dir nicht sagen: https://remotemysql.com/tutor4.html Hier ist auch ein veraltetes Beispiel wie man die Anbindung MySQL <-> PHP <-> Unity gestalten kann. Veraltet daher, weil du vermutlich die WWW-Requests auf die neue Unity API umschreiben musst, aber man sieht generell wie das Zusammenspiel ist: http://wiki.unity3d.com/index.php?title=Server_Side_Highscores
  13. Ich denke das ist einfach nur eine UUID die Unity dem GO verpasst wenn es erzeugt wird, nicht mehr und nicht weniger.
  14. GOs haben eine Instanz-ID, bei einer eigenen Klasse musst du dich selbst darum kümmern denke ich. https://docs.unity3d.com/ScriptReference/Object.GetInstanceID.html
×
×
  • Create New...