Jump to content
Unity Insider Forum

Line Renderer


TheOnlyOne

Recommended Posts

Grüße,

Bin neu hier und auch in Unity, aber habe schon ein Problem :D

Ich habe eine Elektrizität Verbindung zwischen zwei Objekten mit Line Renderer realisiert. Nun möchte ich, wenn ich Line Renderer deaktiviere, so ein Effekt erzeugen, als würde sich diese Elektrizität in kleine Partikel auflösen, die sich dann in verschiedene Richtungen bewegen. Jetzt bin ich nicht sicher ob ich das überhaupt noch mit Line Renderer realisieren kann. Hat jemand eine Idee wie das am besten zu lösen wäre?

Danke voraus :)

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Die Textur zu machen wäre keine große Sache, allerdings weiß ich nicht, wie ich dann mit der Textur den gewünschten Effekt erreiche.

Wie auf dem Bild möchte ich, dass die Partikel sich in die von Pfeilen dargestellter Richtung kurz bewegen und auflösen. Wenn ich die z.b die Breite von dem LineRenderer mit jedem Frame vergrößern würde, dann würde sich die Textur doch ziehen und die Partikel würden nicht mehr so rund sein.

meinProblem.png.0e626dfca4449064434f720d915b3c0a.png

Link zu diesem Kommentar
Auf anderen Seiten teilen

Für die Verbindung (Linie) ist ein LineRenderer die richtige Wahl, für den Effekt solltest du dich aber davon verabschieden. Für den Effekt würde ich ein Partikelsystem mit einem "Box"-Shape verwenden. Die Länge der Box muss dabei auf die Länge der "Linie" angepasst werden (Scale-Settings des Shapes). Aus der Box lässt du dann Partikel austreten mit dem gewünschten Material (meist nimmt man hier auch einen Partikelshader).  Die Partikel treten dabei in Z-Richtung aus. Damit die Partikel in beide Richtungen austreten, verwendest du bei "Start Speed" "Random between two Constants". Hier verwendest du einen positiven und einen negativen Wert. Die anderen Einstellungen kannst du aus dem unteren Bild ablesen.


cwqX79o.png

yiHTdrD.png


Hier noch einmal leicht veränderte Parameter. Man kann nun damit so lange experimentieren, bis es passt:

R1TNPD5.png

Link zu diesem Kommentar
Auf anderen Seiten teilen

Vielen dank!

Hatte ich mir schon gedacht, dass ich wohl PartikelSystem benötigen werde.

Mir bereitet allerdings Probleme dieses PartikelSystem genau zwischen zwei Objekten zu plazieren, wo die LineRenderer Verbindung war. Da die beiden Objekte sich Ingame bewegen und somit immer verschiedene Positionen haben. Die Länge zu berechnen klappt mit Vector.distance gut. Die Vektor Richtung von einem Objekt zu dem Anderen kann ich auch berechnen, hilft mir aber irgendwie nicht, ich muss ja irgendwie das Partikelsystem rotieren.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Leg ein leeres Gameobjekt (0,0,0) in der Szene an und ordne das Partikelsystem diesem Gameobjekt unter. Dieses leere Gameobjekt dient als Container für das Partikelsystem. Das GameObjekt des Partikelsystems drehst du in X um -90 Grad. Position ist ebenfalls (0,0,0).
Jetzt legst du noch 2 Transforms für die Position deiner beiden Objekte an, beispielsweise "startPosition" und "endPosition".

Folgendes Skript ziehst du nun auf das leere Gameobjekt (deinen Container) und weist die beiden Transforms den Slots zu.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class SetPositionParticleSystem : MonoBehaviour {

    public Transform startPosition;
    public Transform endPosition;
    private ParticleSystem pSystem;

    // Use this for initialization
    void Start () {
        ParticleSystem ps = GetComponentInChildren<ParticleSystem>();

        Vector3 relativePos = endPosition.position - startPosition.position;
        Quaternion rotation = Quaternion.LookRotation(relativePos);
        transform.rotation = rotation;
        transform.position = startPosition.position + relativePos * 0.5f;
        var sh = ps.shape;
        sh.scale = new Vector3(0.05f, relativePos.magnitude, 0.05f);
    }	
}

Das Partikelsystem richtet sich nun mit Hilfe seines Containers (= leeres Gameobjekt) anhand der beiden übergebenen Transforms aus.

rZzpzll.png

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

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

×
×
  • Neu erstellen...