Хотя решение системы частиц, предоставляемое LVBen, действительно работает, это не самое подходящее решение при использовании 2D Toolkit для ваших спрайтов. Основная причина в том, что невозможно синхронизировать материал следов призраков в системе частиц с текущей спрайтовой анимацией основного префаба.
Вот дружественное решение 2D Toolkit, которое я в итоге использовал.
Для префаба, в котором вы хотите, чтобы появился призрачный след, прикрепите к нему пустой игровой объект, который будет действовать как корень. Под этим корнем прикрепите любое количество игровых объектов tk2dSprite или tk2dSpriteAnimator (в зависимости от того, хотите ли вы анимированные спрайты или нет) (я добавил 4) и отрегулируйте их цветовые альфа-значения в зависимости от ситуации, чтобы добиться эффекта ореола / затухания.
В верхнем родительском обновлении
// 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;
}
Это решение создаст эффект конечного двоения при синхронизации анимации призрачных спрайтов с основным спрайтом.