2026-02-12 15:23:25 +00:00
|
|
|
|
using UnityEngine; // <20><><EFBFBD><EFBFBD>Ƽ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>⺻ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ҷ<EFBFBD><D2B7>ðſ<C3B0><C5BF><EFBFBD> -> UnityEngine<6E><65>
|
2026-02-03 14:41:49 +00:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// <20>÷<EFBFBD><C3B7>̾<EFBFBD><CCBE><EFBFBD> <20>ð<EFBFBD>(VFX) <20><> û<><C3BB>(SFX) ȿ<><C8BF><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20><>ũ<EFBFBD><C5A9>Ʈ
|
|
|
|
|
|
/// </summary>
|
2026-02-12 15:23:25 +00:00
|
|
|
|
public class PlayerEffects : MonoBehaviour // Ŭ<><C5AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ұſ<D2B0><C5BF><EFBFBD> -> MonoBehaviour<75><72> <20><><EFBFBD>ӹ<D3B9> PlayerEffects<74><73>
|
2026-02-03 14:41:49 +00:00
|
|
|
|
{
|
2026-02-12 15:23:25 +00:00
|
|
|
|
[Header("--- <20>ð<EFBFBD> ȿ<><C8BF> (VFX) ---")] // <20>ν<EFBFBD><CEBD><EFBFBD><EFBFBD><EFBFBD> â<><C3A2> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ǥ<><C7A5><EFBFBD>Ұſ<D2B0><C5BF><EFBFBD> -> --- <20>ð<EFBFBD> ȿ<><C8BF> (VFX) --- <20><>
|
|
|
|
|
|
[SerializeField] private GameObject[] slashEffects; // <20>迭<EFBFBD><E8BFAD> <20><><EFBFBD><EFBFBD><EFBFBD>Ұſ<D2B0><C5BF><EFBFBD> -> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><D5B5><EFBFBD>
|
|
|
|
|
|
[SerializeField] private Transform slashSpawnPoint; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ұſ<D2B0><C5BF><EFBFBD> -> <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD> <20><>ġ<EFBFBD><C4A1>
|
2026-02-03 14:41:49 +00:00
|
|
|
|
|
2026-02-12 15:23:25 +00:00
|
|
|
|
[Header("--- û<><C3BB> ȿ<><C8BF> (SFX) ---")] // <20>ν<EFBFBD><CEBD><EFBFBD><EFBFBD><EFBFBD> â<><C3A2> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ǥ<><C7A5><EFBFBD>Ұſ<D2B0><C5BF><EFBFBD> -> --- û<><C3BB> ȿ<><C8BF> (SFX) --- <20><>
|
|
|
|
|
|
[SerializeField] private AudioClip[] swingSounds; // <20>迭<EFBFBD><E8BFAD> <20><><EFBFBD><EFBFBD><EFBFBD>Ұſ<D2B0><C5BF><EFBFBD> -> <20>ֵθ<D6B5><CEB8><EFBFBD> <20>Ҹ<EFBFBD> Ŭ<><C5AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
private AudioSource _audioSource; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ұſ<D2B0><C5BF><EFBFBD> -> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ҽ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE>
|
2026-02-03 14:41:49 +00:00
|
|
|
|
|
2026-02-12 15:23:25 +00:00
|
|
|
|
private void Awake() // <20>Լ<EFBFBD><D4BC><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ұſ<D2B0><C5BF><EFBFBD> -> <20><>ũ<EFBFBD><C5A9>Ʈ <20><><EFBFBD><EFBFBD> <20><> Awake<6B><65>
|
2026-02-03 14:41:49 +00:00
|
|
|
|
{
|
2026-02-12 15:23:25 +00:00
|
|
|
|
_audioSource = GetComponent<AudioSource>(); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> <20><><EFBFBD><EFBFBD><EFBFBD>ðſ<C3B0><C5BF><EFBFBD> -> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ҽ<EFBFBD><D2BD><EFBFBD>
|
|
|
|
|
|
if (_audioSource == null) _audioSource = gameObject.AddComponent<AudioSource>(); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>߰<EFBFBD><DFB0>Ұſ<D2B0><C5BF><EFBFBD> -> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ҽ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE>
|
2026-02-03 14:41:49 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// <20>ִϸ<D6B4><CFB8>̼<EFBFBD> <20>̺<EFBFBD>Ʈ<EFBFBD><C6AE><EFBFBD><EFBFBD> ȣ<><C8A3><EFBFBD><EFBFBD> <20>Լ<EFBFBD>
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="comboIndex"><3E><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><EFBFBD> <20><>ȣ (0~2)</param>
|
2026-02-12 15:23:25 +00:00
|
|
|
|
public void PlaySlashEffect(int comboIndex) // <20>Լ<EFBFBD><D4BC><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ұſ<D2B0><C5BF><EFBFBD> -> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> PlaySlashEffect<63><74>
|
2026-02-03 14:41:49 +00:00
|
|
|
|
{
|
|
|
|
|
|
// 1. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
2026-02-12 15:23:25 +00:00
|
|
|
|
if (swingSounds.Length > comboIndex && swingSounds[comboIndex] != null) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ұſ<D2B0><C5BF><EFBFBD> -> <20>ش<EFBFBD> <20>ε<EFBFBD><CEB5><EFBFBD><EFBFBD><EFBFBD> <20>Ҹ<EFBFBD><D2B8><EFBFBD> <20>ִٸ<D6B4>
|
2026-02-03 14:41:49 +00:00
|
|
|
|
{
|
2026-02-12 15:23:25 +00:00
|
|
|
|
_audioSource.PlayOneShot(swingSounds[comboIndex]); // <20><><EFBFBD><EFBFBD><EFBFBD>Ұſ<D2B0><C5BF><EFBFBD> -> <20>ش<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ŭ<><C5AC><EFBFBD><EFBFBD>
|
2026-02-03 14:41:49 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 2. <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD>
|
2026-02-12 15:23:25 +00:00
|
|
|
|
if (slashEffects.Length > comboIndex && slashEffects[comboIndex] != null && slashSpawnPoint != null) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ұſ<D2B0><C5BF><EFBFBD> -> <20>ش<EFBFBD> <20>ε<EFBFBD><CEB5><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> <20><><EFBFBD><EFBFBD> <20><>ġ<EFBFBD><C4A1> <20>ִٸ<D6B4>
|
2026-02-03 14:41:49 +00:00
|
|
|
|
{
|
2026-02-12 15:23:25 +00:00
|
|
|
|
GameObject slash = Instantiate(slashEffects[comboIndex], slashSpawnPoint.position, slashSpawnPoint.rotation); // <20><><EFBFBD><EFBFBD><EFBFBD>Ұſ<D2B0><C5BF><EFBFBD> -> <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> <20><><EFBFBD><EFBFBD> <20><>ġ<EFBFBD><C4A1>
|
|
|
|
|
|
Destroy(slash, 1.0f); // <20>ı<EFBFBD><C4B1>Ұſ<D2B0><C5BF><EFBFBD> -> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> 1<><31> <20>ڿ<EFBFBD>
|
2026-02-03 14:41:49 +00:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|