Jump to content
Unity Insider Forum
Sign in to follow this  
Kojote

Ausrichtungs-Problem

Recommended Posts

Grüße!

Ich ein kleiens Problem mit Instantiate. Ich möchte gern ein Objekt erzeugen, dieses soll immer zwischen den Vorderpfoten erscheinen.

Hier wäre das kleine Scriptstück, was auch an sich funktioniert:

            GameObject instaniate = Instantiate(
                        hillPrefab,
                        new Vector3(LD_SP_Player_Controler.Instance.transform.localPosition.x, LD_SP_Player_Controler.Instance.transform.position.y - 0.5f, (LD_SP_Player_Controler.Instance.transform.localPosition.z + 1.1f)),
                        Quaternion.identity
            );

Problem ist, dass sobald ich mich drehe, das Objekt immer zur Positiv Z Achse der Welt erzeugt wird, nicht aber zur Positiv Z Achse des Charakters. Eigentlich müsste dies doch mit LocalPosition funktionieren, warum nicht?

Grüße von Kojote

Share this post


Link to post
Share on other sites

.localPosition würde in diesem Fall bedeuten, dass das Kordinatensystem vom Basispunkt des Objektes (transform) genutzt wird. du müsstest .position verwenden, dann wird es direkt auf dem basispunkt deines objektes im weltkoordinatensystem erzeugt

 

bez kannst den lokalen punkt mit localToWorldMatrix in eine weltpsotion abändern

  • Thanks 1

Share this post


Link to post
Share on other sites

Jo, hatte da nen ziemlich bescheidenen Denkfehler, habs gerade so gelöst:

            Vector3 playerPosition = new Vector3(LD_SP_Player_Controler.Instance.transform.position.x, LD_SP_Player_Controler.Instance.transform.position.y - 0.5f, LD_SP_Player_Controler.Instance.transform.position.z); // ***
            Vector3 playerDirection = transform.forward;
            float spawnDistance = 1.25f;

            Vector3 spawnPos = playerPosition + playerDirection * spawnDistance;

            GameObject instaniate = Instantiate(
                        hillPrefab,
                        new Vector3(spawnPos.x, spawnPos.y, spawnPos.z),
                        Quaternion.identity
            );

Share this post


Link to post
Share on other sites

Na, dann kann ich ja zu schreiben aufhören :P

@Kojote Geht auch so:

var spawnPosition = transform.position + transform.TransformDirection(localOffset);

 

  • Thanks 1

Share this post


Link to post
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...
Sign in to follow this  

×
×
  • Create New...