Die von LVBen bereitgestellte Partikelsystemlösung funktioniert zwar, ist jedoch nicht die am besten geeignete Lösung, wenn Sie 2D Toolkit für Ihre Sprites verwenden. Der Hauptgrund ist, dass es unmöglich ist, das Ghost-Trail-Material im Partikelsystem mit der aktuellen Sprite-Animation des Hauptfertigteils zu synchronisieren.
Hier ist die 2D Toolkit-freundliche Lösung, die ich letztendlich verwendet habe.
Fügen Sie für das Fertighaus, aus dem die Geister-Spur stammen soll, ein leeres Spielobjekt hinzu, das als Stamm fungiert. Fügen Sie unter diesem Stammverzeichnis eine beliebige Anzahl von tk2dSprite- oder tk2dSpriteAnimator-Spielobjekten (je nachdem, ob Sie animierte Sprites möchten oder nicht) hinzu (ich habe 4 hinzugefügt) und passen Sie deren Farbalpha-Werte entsprechend an, um den Ghosting- / Fading-Effekt zu erzielen.
Im obersten übergeordneten Update
// AmountToMove is a Vector3 of the amount we will translate this gameobject.
float y = (int)AmountToMove.y == 0 ? 0 : -AmountToMove.y;
float distanceFactor = 0.05f;
for (int i = 0; i < GhostingRoot.childCount; ++i) {
// Based on the player's current speed and movement along the x and y axes,
// position the ghost sprites to trail behind.
Vector3 ghostSpriteLocalPos = Vector3.Lerp(
GhostingRoot.GetChild(i).localPosition,
new Vector3((-CurrentSpeed * distanceFactor * i),
(y * distanceFactor * i), 0),
10f * Time.deltaTime);
// GhostingRoot is the root gameobject that's parent to the ghost sprites.
GhostingRoot.GetChild(i).localPosition = ghostSpriteLocalPos;
// Sync the animations.
// _ghostSprites is a List of the tk2dSpriteAnimator ghost sprites.
_ghostSprites[i].Play(SpriteAnimator.CurrentClip.name);
_ghostSprites[i].Sprite.FlipX = Sprite.FlipX;
}
Diese Lösung erzeugt den nachgestellten Ghosting-Effekt, während die Animationen der Ghost-Sprites mit dem Hauptsprite synchronisiert werden.