Jump to content
Unity Insider Forum

Placr


Sascha
 Share

Recommended Posts

"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.

Link to comment
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". 

Link to comment
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.

Link to comment
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 ;)

Link to comment
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...

Link to comment
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);
    }
}

 

Link to comment
Share on other sites

  • 3 years later...

Lang ist's her... aber da ich das Tool die Tage etwas hübscher gemacht habe, dachte ich, ich rufe mal in Erinnerung, dass es existiert :)

Nach dem Update ist es jetzt ein Editor Tool (also alternativ zum Bewegen- oder Dreh-Werkzeug oben links in der Leiste zu finden). Das Options-Fenster ist jetzt auch viel hübscher, und man kann existierende Objekte aufheben und woanders hintun.

image (4).png

Link to comment
Share on other sites

Join the conversation

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

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

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

Loading...
 Share

×
×
  • Create New...