Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Garzec

Alter Hase

  • »Garzec« ist der Autor dieses Themas

Beiträge: 693

Wohnort: Gießen

  • Private Nachricht senden

1

14.05.2016, 15:05

Unity - 3D Modelle richtig auf einer Sphere platzieren

Hallo,

Ich habe eine Sphere als Welt mit Gravitation und möchte darauf Bäume platzieren, die mit Blender erstellt wurden. Gibt es eine Möglichkeit die Bäume im richtigen Winkel, vielleicht per Tastenkombination, auf die Sphere zu setzen? Ich kenne nur den Hotkey ctrl+shift, aber da fehlt noch der Winkel.

Oder geht dies nur per Skript / händisch?

Sacaldur

Community-Fossil

Beiträge: 2 301

Wohnort: Berlin

Beruf: FIAE

  • Private Nachricht senden

2

14.05.2016, 16:04

Am besten wird es wohl gehen, wenn du dir ein paar Editor-Scripts schreibst. Die Leute von SkyArena haben sich bspw. Scripte geschrieben, mit deren Hilfe sie im Editor mit einem Gamepad navigieren und so die Umgebung bearbeiten können. Die Gamepadnavigation berücksichtigte dabei natürlich, dass man sich um einen Planet herum bewegt und darauf die Objekte platzieren will.
Weiterhin hättest du den Vorteil, dir das Editieren so anzupassen, wie du am besten damit zurecht kommst.
Spieleentwickler in Berlin? (Thema in diesem Forum)
---
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].

Garzec

Alter Hase

  • »Garzec« ist der Autor dieses Themas

Beiträge: 693

Wohnort: Gießen

  • Private Nachricht senden

3

14.05.2016, 17:45

Ich habe die Gravitation schon eingebaut, eigentlich müsste der Baum genauso wie der Spieler von der Kugel angezogen werden und im richtigen Winkel stehen. Gebe ich dem Baum das Skript, wird er aber durch die Kugel gezogen auf die andere Seite der Kugel und wieder zurück.

Garzec

Alter Hase

  • »Garzec« ist der Autor dieses Themas

Beiträge: 693

Wohnort: Gießen

  • Private Nachricht senden

4

14.05.2016, 20:38

Habe nochmal ein Bild beigefügt, hoffe es wird dadurch deutlicher :)
»Garzec« hat folgendes Bild angehängt:
  • gsdfgsdfgsdf.png

Sacaldur

Community-Fossil

Beiträge: 2 301

Wohnort: Berlin

Beruf: FIAE

  • Private Nachricht senden

5

15.05.2016, 14:34

Und was soll das Bild zeigen? Ich konnte mir schon vorstellen, wie das Platzieren von Bäumen auf einer Kugel aussehen würde.
Was spricht gegen Editor-Scripting? Damit könntest du dafür sorgen, dass der Baum in Richtung Planet ausgerichtet und "geerdet" wird. (Soll heißen: er wird so weit zum Planeten verschoben, bis er auf dem "Boden" des Planeten steht.)
Spieleentwickler in Berlin? (Thema in diesem Forum)
---
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].

Garzec

Alter Hase

  • »Garzec« ist der Autor dieses Themas

Beiträge: 693

Wohnort: Gießen

  • Private Nachricht senden

6

15.05.2016, 14:48

War nur zur Veranschaulichung. Ich hatte gedacht, dass ich mit der Gravitation hinkomme.

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

7

15.05.2016, 15:19

Gravitation allein berücksichtigt aber keine Kollisionen. Klar, dass der Baum dann durch den Planeten fliegt.

Sacaldur

Community-Fossil

Beiträge: 2 301

Wohnort: Berlin

Beruf: FIAE

  • Private Nachricht senden

8

15.05.2016, 15:23

Das kommt natürlich auf die Art der Implementierung an. Haben Baum und Planet jeweils geeignete Collider und wird die Beschleunigung durch anpassen der Velocity des Rigidbody durchgeführt, dann sollte der Baum auch richtig auf den Planeten fallen können.
Dennoch findet das erst zur Laufzeit statt, nicht aber während des Erstellens des Levels. (Mal ganz abgesehen davon, dass Bäume in Spielen i. d. R. als statische (also als nicht physikalisch berechnete) Elemente implementiert werden.)
Spieleentwickler in Berlin? (Thema in diesem Forum)
---
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].

Garzec

Alter Hase

  • »Garzec« ist der Autor dieses Themas

Beiträge: 693

Wohnort: Gießen

  • Private Nachricht senden

9

15.05.2016, 15:43

Beide Objekte haben einen Collider. Die Kugel hat einen Sphere Collider, der Baum als Testobjekt hat einen Mesh Collider.

Ich werde jetzt versuchen dem Baum mal mein Skript vom Spieler zu geben und das anzupassen, der ist ja momentan auch nur eine Kapsel und läuft rum, wird aber immer im richtigen Winkel angezogen damit er beim Laufen nicht umkippt.

Garzec

Alter Hase

  • »Garzec« ist der Autor dieses Themas

Beiträge: 693

Wohnort: Gießen

  • Private Nachricht senden

10

15.05.2016, 16:09

Ich habe das Problem gelöst, der Mesh Collider wird wohl nicht mehr unterstützt. Mit einem Box Collider funktioniert dieses Skript:

C#-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
using UnityEngine;
using System.Collections;

[RequireComponent (typeof (Rigidbody))]
public class GravityBody : MonoBehaviour {

    GravityAttractor planet;

    void Awake()
    {
        planet = GameObject.FindGameObjectWithTag("Planet").GetComponent<GravityAttractor>();
        GetComponent<Rigidbody>().useGravity = false;
        GetComponent<Rigidbody>().constraints = RigidbodyConstraints.FreezeRotation;
    }

    void FixedUpdate ()
    {
        planet.Attract(transform);
    }
}


Jetzt habe ich eigentlich nur noch 2 Fragen, 1. welcher Collider ist denn nun der richtige? Weil jetzt stellt man um den Baum ja quasi eine Barriere, aber nur das Objekt an sich soll ja ein fester Gegenstand sein durch den man nicht durchlaufen kann

2. Der Baum wird durch die Gravitation auf die Seite gekippt und dann auf die Kugel gezogen, zu sehen auf dem beigefügten Bild
»Garzec« hat folgendes Bild angehängt:
  • gsdfgsdfgsdfgsdfgdsf.png

Werbeanzeige