LVBen tarafından sağlanan parçacık sistemi çözümü çalışırken, spritelarınız için 2D Toolkit kullanırken en uygun çözüm değildir. Birincil neden, parçacık sistemindeki hayalet izi malzemesini ana prefabrinin mevcut hareketli grafiğine senkronize etmenin imkansız olmasıdır.
İşte sonunda kullandığım 2D Toolkit dostu çözüm.
Hayalet izinin gelmesini istediğiniz prefabrik için, kök olarak davranması için boş bir oyun nesnesi ekleyin. Bu kök altında, herhangi bir sayıda tk2dSprite veya tk2dSpriteAnimator ekleyin (hareketli sprite ister veya istemiyorsanız) oyun nesneleri (4 ekledim) ve gölgelenme / solma efektini elde etmek için renk alfa değerlerini uygun şekilde ayarlayın.
Üst ebeveyn Güncellemesinde
// 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;
}
Bu çözüm, hayalet spriteların animasyonlarını ana hareketli grafikle senkronize ederken sondaki gölgeleme efekti yaratacaktır.