Jump to content
Unity Insider Forum

Sehr sehr simples "Alignment"-System.


reppiz

Recommended Posts

Hab gerade für die Arbeit ein sehr schlichtes Alignment System geschrieben, da ich es benötigt habe.

Vielleicht kann es ja noch jemand verwenden.

 

Das Skript muss übrigens im Editor Ordner erstellt/platziert werden.

 

Bestimmt gibt es hier noch Optimierungsbedarf, aber für meine Zwecke reicht es.

 

Anleitung:

Betreffende Objekte markieren

Das "Alignment"-Fenster öffnen (via Menüleiste, Strg+e oder einfach fix wo anpinnen)

Zu setzende Vektorkomponente anklicken

Allen markierten Objekten wird nun für diese Komponente (x, y oder z) der Wert des ZULETZT markierten objektes zugewiesen.

 

Es ist kein "richtiges" Alignment, da ich die Objekte nicht an den Kanten aneinander ausrichte, lediglich die jeweiligen Koordinaten werden gesetzt.

 

Alignment.cs

using UnityEditor;
using UnityEngine;
using System.Collections;
public class Alignment : EditorWindow {



[MenuItem("Tools/Reppiz/Alignment %e")]
static void Integerding()
{
 Alignment window = (Alignment)EditorWindow.GetWindow (typeof (Alignment));
}
void OnGUI()
{
 if(GUI.Button(new Rect(0,0,100,20), "Align_X"))
  Xalign();
 if(GUI.Button(new Rect(0,25,100,20), "Align_Y"))
  Yalign();
 if(GUI.Button(new Rect(0,50,100,20), "Align_Z"))
  Zalign();
}

void Xalign()
{
 GameObject firstOne = (GameObject)Selection.activeObject;
 GameObject[] allOnes = Selection.gameObjects;

 foreach(GameObject gO in allOnes)
 {
  gO.transform.position = new Vector3(firstOne.transform.position.x, gO.transform.position.y, gO.transform.position.z);
 }
}

void Yalign()
{
 GameObject firstOne = (GameObject)Selection.activeObject;
 GameObject[] allOnes = Selection.gameObjects;

 foreach(GameObject gO in allOnes)
 {
  gO.transform.position = new Vector3(gO.transform.position.x, firstOne.transform.position.y, gO.transform.position.z);
 }
}

void Zalign()
{
 GameObject firstOne = (GameObject)Selection.activeObject;
 GameObject[] allOnes = Selection.gameObjects;

 foreach(GameObject gO in allOnes)
 {
  gO.transform.position = new Vector3(gO.transform.position.x, gO.transform.position.y, firstOne.transform.position.z);
 }
}
}

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 1 month later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Lädt...
×
×
  • Neu erstellen...