Хоча системне рішення частинок, яке надає 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;
}
Це рішення створить зачіпаючий ефект привидів, синхронізуючи анімації привидів-привидів з головним спрайтом.