using Godot; [Tool] public partial class TrailBullet : Bullet { private static Color TerrainColor = new Color(0xf5 / 255f + 0.8f, 0x7e / 255f + 0.45f, 0x7a / 255f + 0.45f, 0.7f); private static Color EnemyTerrainColor = new Color(1.5f, 0, 0, 0.7f); private Trail trail; public override void InitData(BulletData data, uint attackLayer) { base.InitData(data, attackLayer); trail = ObjectManager.GetPoolItem<Trail>(ResourcePath.prefab_effect_common_Trail0001_tscn); trail.SetTarget(AnimatedSprite); trail.AddPoint(trail.Target.GlobalPosition); trail.AddToActivityRoot(RoomLayerEnum.YSortLayer); trail.ZIndex = 1; if (IsEnemyBullet) { trail.SetColor(EnemyTerrainColor); } else { trail.SetColor(TerrainColor); } } public override void OnReclaim() { base.OnReclaim(); trail.SetTarget(null); trail = null; } }