Danil Iarosh 5bafc385da feat(audio): increase SFX pool size and preload audio data
- Increased SFX pool size from 8 to 16 in AudioManager
- Enabled preloadAudioData for multiple SFX files
- Removed unused VisualScripting import from Checkpoint script
- Reordered using statements in several scripts for consistency
- Added CoinCollectible component to Coin prefab with pickup effects
- Updated sorting layers and mesh LOD settings in Coin prefabs
- Fixed typo in Interfaces.cs: optionaAttachPoint to optionalAttachPoint
- Modified AddCoin method to accept count parameter and handle coin overflow
- Moved projectile scripts (BasicProjectile, EnemyBasicProjectile, PhysicsProjectile, PickableProjectile)
- Cleaned up unused namespaces and imports across various scripts
2025-10-30 16:39:15 +03:00

39 lines
1.4 KiB
C#

using UnityEngine;
using RR.Game2D.Entities.Projectiles;
namespace RR.Game2D.Behaviour
{
public class FireScript2D : MonoBehaviour
{
[Header("Снаряды")]
public BasicProjectile projectilePrefab;
public Transform muzzle;
public float shotSpeed = 20f;
public KeyCode actionKey = KeyCode.F;
void Update()
{
if (Input.GetKeyDown(actionKey))
{
if (projectilePrefab == null) { Debug.LogWarning("No projectilePrefab"); return; }
float sx = transform.localScale.x;
float facing = Mathf.Sign(sx == 0 ? 1 : sx);
Vector2 dir = facing > 0 ? Vector2.right : Vector2.left;
Vector2 launchPos = muzzle
? (Vector2)muzzle.position
: (Vector2)transform.position + new Vector2(1.4f * facing, 0f);
BasicProjectile projectile = Instantiate(projectilePrefab, launchPos, Quaternion.identity);
projectile.transform.localScale = new Vector3(-facing * projectile.transform.localScale.x, projectile.transform.localScale.y, projectile.transform.localScale.z);
projectile.Launch(dir, shotSpeed);
var myCol = GetComponent<Collider2D>();
var pCol = projectile.GetComponent<Collider2D>();
if (myCol && pCol) Physics2D.IgnoreCollision(myCol, pCol, true);
}
}
}
}