Jump to content
Unity Insider Forum

Marionette (Blendfile) mit Fäden (PNGs mit Billboard-Orientation), Billboarding funktioniert nicht!


Noerrenebels

Recommended Posts

Hallo,

ich versuche eine animierte Marionette aus Blender in Unity zu importieren. Funktioniert auch alles. Nur die Fäden, PNGs mit Transparenz und Billboard-Orientation werden nicht richtig dargestellt, bzw. das in Blender eingestellte Billboarding kommt nicht in Unity an. Die Fäden sind an die Bones geparented. Ich habe versucht ein C# Billboardskript auf die Faden-PNGs zu ziehen, hat aber auch nicht funktioniert. Weiß jemand eine Lösung?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Danke für die Antwort!

Ich habe jetzt den LineRenderer mit einem Skript (C#) erstellt. Um mein Ziel zu erreichen, müßte ich jetzt die Worldposition des Emptys haben (unterer Punkt, Position des Parent-Bones) und dann für die Position des zweiten Punktes des LinerRenderers einfach zur y-Position die Länge des Fadens (z.B. 10) hinzuzählen. Wie komme ich an die Weltkoordinaten des Parent-Bones?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wenn ich dich richtig verstanden habe, hast du eine Linie mit zwei Endpunkten (also keine Punkte dazwischen).

Dein Script könnte also etwa so aussehen:

[RequireComponent(typeof(LineRenderer))]
public class TargetedLineRenderer : MonoBehaviour
{
 private LineRenderer lr;
 public Transform target;

 void Awake()
 {
   lr = GetComponent<LineRenderer>();
 }

 void LateUpdate()
 {
   lr.SetPosition(0, transform.position);
   lr.SetPosition(1, target.position);
 }
}

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo doch noch mal !

Jetzt hat alles so super geklappt, aber nachdem ich eine .exe eportiert habe, werden die Fäden dargestellt, als wäre keine Bilddatei verfügbar (lila Fläche). In Unity wurde alles korrekt dargestelllt.

???

Mein Skript:

 

using UnityEngine;
using System.Collections;
public class LineRendererPosition : MonoBehaviour {
public Color c1 = Color.yellow;
public Color c2 = Color.red;
public int lengthOfLineRenderer = 2;
public Transform target;
// Use this for initialization
void Start () {
 LineRenderer lineRenderer = gameObject.AddComponent<LineRenderer>();
 lineRenderer.useWorldSpace = true;
 lineRenderer.material = new Material(Shader.Find("Particles/Additive"));
 lineRenderer.SetColors(c1, c2);
 lineRenderer.SetWidth(0.002F, 0.002F);
 lineRenderer.SetVertexCount(lengthOfLineRenderer);

}

// Update is called once per frame
void Update () {
 LineRenderer lineRenderer = GetComponent<LineRenderer>();
 Vector3 pos = new Vector3(0, 10, 0);
 lineRenderer.SetPosition(0, target.position);
 lineRenderer.SetPosition(1, target.position + pos);
}
}

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...