40 lines
1.3 KiB
C#
40 lines
1.3 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using Platformer.Core;
|
|
using Platformer.Model;
|
|
using UnityEngine;
|
|
|
|
namespace Platformer.Gameplay
|
|
{
|
|
/// <summary>
|
|
/// Fired when the player has died.
|
|
/// </summary>
|
|
/// <typeparam name="PlayerDeath"></typeparam>
|
|
public class PlayerDeath : Simulation.Event<PlayerDeath>
|
|
{
|
|
PlatformerModel model = Simulation.GetModel<PlatformerModel>();
|
|
|
|
public override void Execute()
|
|
{
|
|
var player = model.player;
|
|
if (player.health.IsAlive)
|
|
{
|
|
player.health.Die();
|
|
model.virtualCamera.Follow = null;
|
|
model.virtualCamera.LookAt = null;
|
|
// player.collider.enabled = false;
|
|
player.controlEnabled = false;
|
|
|
|
if (player.audioSource && player.ouchAudio)
|
|
player.audioSource.PlayOneShot(player.ouchAudio);
|
|
|
|
// PD 지시 2026-05-13 — 사망 모션 시각 위치 보정 y -0.3 (sprite 위로 떠 보이는 현상 정정)
|
|
player.transform.position += new Vector3(0f, -0.3f, 0f);
|
|
|
|
player.animator.SetTrigger("hurt");
|
|
player.animator.SetBool("dead", true);
|
|
Simulation.Schedule<PlayerSpawn>(2);
|
|
}
|
|
}
|
|
}
|
|
} |