• Announcements

    • Lars

      Allgemeine Forenregeln   03/13/2017

      Forenregeln Nimm dir bitte einen Moment um die nachfolgenden Regeln durchzulesen. Wenn du diese Regeln akzeptierst und die Registration fortsetzen willst, klick einfach auf den "Mit der Registrierung fortfahren"-Button. Um diese Registration abzubrechen, klick bitte einfach auf den "Zurück" Button deines Browsers. Wir garantieren nicht für die Richtigkeit, Vollständigkeit und Brauchbarkeit der Nachrichten und sind auch nicht dafür verantwortlich. Die Beiträge drücken die Meinung des Autors des Beitrags aus, nicht zwangsläufig das, wofür die Forensoftware steht. Jeder Nutzer, der denkt, dass ein veröffentlichter Beitrag unzulässig bzw. störend ist, ist aufgefordert uns unverzüglich per E-Mail zu kontaktieren. Wir haben das Recht störende Beiträge zu löschen und bemühen uns, das in einem realistischem Zeitraum zu erledigen (sofern wir beschlossen haben, dass die Löschung notwendig ist). Du akzeptierst, durchgehend während der Nutzung dieses Services, dass du dieses Forum nicht dazu missbrauchen wirst, Inhalte zu veröffentlichen, welche bewusst falsch und/oder verleumderisch, ungenau, beleidigend, vulgär, hasserfüllt, belästigend, obszön, sexuell belästigend, bedrohlich, die Privatsphäre einer Person verletzend oder in irgend einer Art und Weise das Gesetz verletzen. Des Weiteren akzeptierst du, dass du keine urheberrechtlich geschützte Inhalte ohne Erlaubnis des Besitzers in diesem Forum veröffentlichst. Mit dem Klick auf den "Mit der Registrierung fortfahren"-Button, akzeptierst du zudem unsere Datenschutzerklärung und stimmst der Speicherung deiner IP-Adresse und personenbezogenen Daten zu, die dafür benötigt werden, um dich im Falle einer rechtswidrigen Tat zurückverfolgen zu können bzw. permanent oder temporär aus dem Forum ausschließen zu können. Es besteht keine Pflicht zur Abgabe der Einwilligung, dies erfolgt alles auf freiwilliger Basis.   Zusatzinformationen Der Forenbetreiber hat das Recht, Nutzer ohne Angabe von Gründen permanent aus dem Forum auszuschließen. Des Weiteren hat er das Recht, Beiträge, Dateianhänge, Umfrage, Blogeinträge, Galleriebilder oder Signaturen ohne Angabe von Gründen zu entfernen. Mit der Registrierung verzichtest du auf alle Rechte an den von dir erstellten Inhalten, bzw. treten diese an das Unity-Insider.de und Unity-Community.de ab. Dies bedeutet im Klartext, dass das Unity-Insider.de und Unity-Community.de frei über deine Texte verfügen kann, sofern diese nicht wiederum die Rechte anderer verletzen. Es besteht weiterhin kein Anspruch von registrierten Nutzern bzw. ehemaligen registrierten Nutzern darauf, dass erstellte Inhalte und/oder die Mitgliedschaft (User) wieder gelöscht werden (Erhaltung der Konsistenz dieses Forums).   Einwilligungserklärung Wenn du mit der Speicherung deiner personenbezogenen Daten sowie den vorstehenden Regeln und Bestimmungen einverstanden bist, kannst du mit einem Klick auf den Mit der Registrierung fortfahren-Button unten fortfahren. Ansonsten drücke bitte Zurück. Stand: 07.03.2011
Sign in to follow this  
Followers 0
Sascha

Placr

9 posts in this topic

Placr habe ich vorhin in ein paar Stunden zusammengebastelt. Dieses Video sagt vermutlich mehr als tausend Worte:

Hier gibt's das Script: https://gist.github.com/FlaShG/00821764940d77361e0b4db2297efcf8

  • Einfach runterladen und in einen Editorordner schmeißen
  • Das Häckchen in der Scene View setzen und ein Prefab oder 3D-Modell in den Assets auswählen
  • Linksklick zum Platzieren
  • Strg gedrückt halten zum Drehen
  • Shift gedrückt halten um den vertikalen Offset zu verändern
  • Rechtsklick zum Deselektieren (Gedrückt halten zum Rumfliegen geht aber, ohne dass deselektiert wird)

Viel Spaß damit, Feedback wird gern gesehen.

2 people like this

Share this post


Link to post
Share on other sites

Schöne Idee, ich denke, wenn man Baumgruppen per Hand setzt sehr gut zu verwenden, oder wenn man viele kleine Objekte platzieren muss. Als Ergänzung vielleicht auch noch eine "Snap to Ground"-Funktion dazu.

Share this post


Link to post
Share on other sites

"Snap to Ground" hast du ja, wenn dein vertical offset gleich 0 ist. Es wäre also eher "Reset Vertical Offset". Hab aber auch schon daran gedacht, dass man dafür kurz Shift drücken könnte; aber dafür habe ich nicht auf Anhieb ne gute IMGUI-Lösung gefunden.

//e: Also, vielleicht sieht man das bei dem Video nicht so, aber das läuft schon über Raycasts.

Share this post


Link to post
Share on other sites

Ah ok, habe nur das Video gesehen (und mir den Code nicht angeschaut) aber wenn die Initialposition schon der Boden ist, dann ist es das was ich meinte. Aber dann vielleicht das Gegenteil, also damit man Objekte auch einfach in der Luft platzieren kann. Ich denke ideal wäre dafür ein 2. Schalter am oberen Szenenrand mit "Snap to Ground" "on" oder "off". 

Share this post


Link to post
Share on other sites

Naja, mit Shift stellt man einen Y-Offset relativ zum RaycastHit ein. Damit bist du immer gleich hoch überm Boden, bis zu es verstellst. Ich weiß nicht, ob das Tool überhaupt noch nützlich ist, wenn man lauter Dinge in der Luft haben will.

Share this post


Link to post
Share on other sites

Schwer zu sagen, oft möchte man ja daß Objekte "irgendwie" miteinander verbunden werden. Ob man nun ein Objekt mit dem Boden verbinden möchte oder mit einem anderen Objekt in der Szene ist dabei Fallabhängig. Ich könnte mir auch vorstellen, daß es beispielsweise Sinn macht, die Richtung des Raycastes (down / top / left  / right) steuern zu können. Stell dir vor du möchtest Bilder an die Wand hängen und dabei jedesmal mit "Vertex-Snapping" zu arbeiten kann gewaltig nerven.

Ich hab den Code mal kurz überflogen, interessant wie du die Z-Koordinate von der Mausposition im Worldspace ermittelst, daß hatte mir schon einmal Kopfschmerzen bereitet ;)

Share this post


Link to post
Share on other sites
vor 3 Stunden schrieb Zer0Cool:

interessant wie du die Z-Koordinate von der Mausposition im Worldspace ermittelst

Höh? Mit nem Raycast halt? :)

Ich sehe das Problem ehrlich gesagt noch nicht so ganz. Ich raycaste gegen die gesamte Szene, sodass du alles auf alles raufschmeißen kannst und von jedem Winkel (einfach die Kamera bewegen), solange es einen Collider hat. Wäre natürlich cooler, wenn ich gegen die MeshFilter casten könnte, aber das mag Unity ja nicht...

Share this post


Link to post
Share on other sites

Noch ein kleines Update: Mit lustigen kleinen Scripts wie diesem kann man ordentlich was anstellen:

using UnityEngine;

/// <summary>
/// Randomly scales a prefab instance after it has been placed.
/// Can be used in the editor while designing levels with prefabs.
/// Works most awesome with Placr.cs.
/// </summary>
[ExecuteInEditMode]
public class RandomScalePrefab : MonoBehaviour
{
    public Vector3 scaleVariance = new Vector3(0.1f, 0.1f, 0.1f);

    void Start()
    {
        var scale = Random.insideUnitSphere;
        scale.Scale(scaleVariance);
        transform.localScale += scale;
        DestroyImmediate(this);
    }
}

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0