2016-12-08 3 views
0

Vorinformation: Mit Kinect v2 und Unity3D v5.4Wie Fanout Gameobjects

Hintergrund: Ich habe einen Elternteil GameObject, die ein 3D-Modell ist (zum Beispiel eines MacBook). Dieser Elternteil GameObject besteht aus mehreren Kindern GameObjects. Diese Kinder GameObjects sind die kleineren Details des 3D-Modells (z. B. Display, USB-Port, Tastatur usw.). Das MacBook selbst kann gedreht und skaliert werden. Was ich tun möchte, ist, dieses Kind GameObjects proportional aufzufächern, wenn man das Mausrad benutzt.

Problem: Wie implementiere ich diesen Fan-Out-Mechanismus, unabhängig von der aktuellen Rotation des Elternteils GameObject.

Das Bild macht es hoffentlich klarer. Die Rechtecke repräsentieren Kind GameObjects.

image

Vielen Dank im Voraus :)

Antwort

1

Wenn Sie Abstand nur, um zwischen Ihren Eltern und Childs fügen Sie diese zu Ihrem Kind Objekte:

void Update() 
{ 
    transform.localPosition += (transform.localPosition.normalized * Input.GetAxis("Mouse ScrollWheel") * 0.4f); 
} 

oder diese an Ihre Eltern:

void Update() 
{ 
    for (int i = 0; i < transform.childCount; i++) 
    { 
     Transform t = transform.GetChild(i); 
     t.localPosition += t.localPosition.normalized * Input.GetAxis("Mouse ScrollWheel") * 0.4f; 
    } 
} 

Bearbeiten:

Aber wenn Sie wollen, dass sie ihre Vorwärtsrichtung verwenden diese eher folgen:

void Update() 
{ 
    transform.localPosition += ((transform.localRotation * Vector3.forward) * Input.GetAxis("Mouse ScrollWheel") * 0.4f); 
} 
+0

Ja mit leeren Gameobjects die Elemente Lüfter hod ist der Weg zu gehen (durch die leere Objekte Ausrichtung Ändern Sie das ändern können Fächerrichtung unter Beibehaltung des grafischen Objekts in beliebiger Ausrichtung). Sie können auch eine einfache 'Mathf.Clamp' verwenden, um den Auffächerungsprozess zu begrenzen. – Kardux

Verwandte Themen