2016-04-07 5 views
0

Ich habe ein Stadt 3D-Modell als Ordner. Der Ordner enthält .obj-Datei, Materialien und Texturen.Wie 3d-Modell in Einheit in einfarbig konvertieren?

Ich versuche eine virtuelle Tour zu erstellen, indem ich auf den Straßen spazieren gehe. Ich lege meine Kamera auf eine Straße. Meine Kamera geht vorwärts und zurück, indem ich die Auf- und Ab-Tasten drücke. Es rotiert trun und links durch Klicken auf die rechte und linke Taste. Ich kann den Tastendruck erfolgreich durchführen.

Das Stadtmodell hat eine andere Höhe als der Boden. Es sieht aus wie unten Bild: enter image description here

Wenn der Benutzer drückt nach oben oder unten-Taste, ich von update transfrom.Translate Daten nur z-Wert ändern:

float translation = Input.GetAxis("Vertical") * speed; 
transform.Translate(0, 0, translation); 

Aber meine Kamera geht unter schwarzer Linie, und ich kann die Stadt nicht richtig sehen. Wie kann ich vermeiden, unter die Linie (Straßen) zu gehen? Machen Sie solide Objekte, um mein Problem zu lösen?

Antwort

1

Es gibt ein paar Ansätze, die Sie ergreifen könnten. Ich würde vorschlagen, eine mesh collider zu Ihrer Straße hinzuzufügen, und dann eine raycast von der Position Ihres Objekts, hinunter zu ihm zu tun. Es würde in etwa so aussehen:

+1

Ich denke, dass es meybe gibt es eine automatische Lösung mit Starrkörper oder andere. – zumma

+0

Nur um eine Sache hinzuzufügen. Wenn die Straße kein wirklich ungewöhnliches Netz hat, würde ich empfehlen, mit einem Box Collider zu fahren. Das Hinzufügen eines Starrkörpers und eines Beschleunigers zur Kamera sollte ebenfalls funktionieren, stellen Sie nur sicher, dass das Physikmaterial reibungslos ist, damit die Kamera bei Kollisionen nicht langsamer wird. –

+1

Ja, du könntest das auch mit einem starren Körper machen, aber weil du das Spielobjekt nicht über Kräfte im Physiksystem bewegst (du legst direkt seine Position ein), ist es im Allgemeinen keine gute Idee. –