ในขณะที่โซลูชันระบบอนุภาคที่จัดทำโดย LVBen ทำงานได้มันไม่ใช่โซลูชันที่เหมาะสมที่สุดเมื่อใช้ 2D Toolkit สำหรับสไปรต์ของคุณ เหตุผลหลักก็คือมันเป็นไปไม่ได้ที่จะซิงค์วัสดุเส้นทางผีในระบบอนุภาคกับภาพเคลื่อนไหวสไปรต์ปัจจุบันของรูปแบบสำเร็จรูปหลัก
นี่คือโซลูชันที่เป็นมิตรกับ 2D Toolkit ที่ฉันใช้
สำหรับรูปแบบสำเร็จรูปที่คุณต้องการให้ Ghost Trail มาให้แนบวัตถุเกมที่ว่างไว้เพื่อทำหน้าที่เป็นรูท ใต้รูทนี้ให้แนบ tk2dSprite หรือ tk2dSpriteAnimator จำนวนเท่าใดก็ได้ (ขึ้นอยู่กับว่าคุณต้องการ sprite เคลื่อนไหวหรือไม่) วัตถุเกม (ฉันเพิ่ม 4) และปรับค่าอัลฟาสีตามความเหมาะสมเพื่อให้ได้เอฟเฟกต์ ghosting / fading
ในการปรับปรุงหลักด้านบน
// 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;
}
วิธีนี้จะสร้างเอฟเฟกต์ ghosting ต่อท้ายในขณะที่ซิงค์อนิเมชั่นของสไปรต์ผีกับสไปรต์หลัก