feat: IngameUI의 캐릭터 stat 변경 부분 적용되도록 수정
This commit is contained in:
@@ -65,11 +65,11 @@ MonoBehaviour:
|
|||||||
m_OnCullStateChanged:
|
m_OnCullStateChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
m_Sprite: {fileID: 0}
|
m_Sprite: {fileID: 21300000, guid: 7155d9d3c459a1945a29adc40045dc25, type: 3}
|
||||||
m_Type: 0
|
m_Type: 3
|
||||||
m_PreserveAspect: 0
|
m_PreserveAspect: 0
|
||||||
m_FillCenter: 1
|
m_FillCenter: 1
|
||||||
m_FillMethod: 4
|
m_FillMethod: 0
|
||||||
m_FillAmount: 1
|
m_FillAmount: 1
|
||||||
m_FillClockwise: 1
|
m_FillClockwise: 1
|
||||||
m_FillOrigin: 0
|
m_FillOrigin: 0
|
||||||
@@ -310,6 +310,7 @@ MonoBehaviour:
|
|||||||
monsterHp: {fileID: 5427279369348982334}
|
monsterHp: {fileID: 5427279369348982334}
|
||||||
monsterHpBar: {fileID: 713119143775663342}
|
monsterHpBar: {fileID: 713119143775663342}
|
||||||
monsterImage: {fileID: 3115676712305369735}
|
monsterImage: {fileID: 3115676712305369735}
|
||||||
|
character: {fileID: 0}
|
||||||
--- !u!1 &2837283741072849140
|
--- !u!1 &2837283741072849140
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -870,11 +871,11 @@ MonoBehaviour:
|
|||||||
m_OnCullStateChanged:
|
m_OnCullStateChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
m_Sprite: {fileID: 0}
|
m_Sprite: {fileID: 21300000, guid: 7155d9d3c459a1945a29adc40045dc25, type: 3}
|
||||||
m_Type: 0
|
m_Type: 3
|
||||||
m_PreserveAspect: 0
|
m_PreserveAspect: 0
|
||||||
m_FillCenter: 1
|
m_FillCenter: 1
|
||||||
m_FillMethod: 4
|
m_FillMethod: 0
|
||||||
m_FillAmount: 1
|
m_FillAmount: 1
|
||||||
m_FillClockwise: 1
|
m_FillClockwise: 1
|
||||||
m_FillOrigin: 0
|
m_FillOrigin: 0
|
||||||
|
|||||||
@@ -28,6 +28,9 @@ namespace TON
|
|||||||
private VariableJoystick joystick;
|
private VariableJoystick joystick;
|
||||||
public Rigidbody2D rb;
|
public Rigidbody2D rb;
|
||||||
|
|
||||||
|
public event System.Action<float, float> OnHPChanged;
|
||||||
|
public event System.Action<float, float> OnSPChanged;
|
||||||
|
|
||||||
|
|
||||||
public void Start()
|
public void Start()
|
||||||
{
|
{
|
||||||
@@ -35,7 +38,6 @@ namespace TON
|
|||||||
joystick = ControllerUI.Instance.joystick;
|
joystick = ControllerUI.Instance.joystick;
|
||||||
ControllerUI.Instance.linkedCharactor = this;
|
ControllerUI.Instance.linkedCharactor = this;
|
||||||
|
|
||||||
|
|
||||||
attackCollider.EnableCollider(false); // 기본 공격 Enable 비활성화
|
attackCollider.EnableCollider(false); // 기본 공격 Enable 비활성화
|
||||||
|
|
||||||
Initialize();
|
Initialize();
|
||||||
@@ -49,6 +51,9 @@ namespace TON
|
|||||||
|
|
||||||
currentHP = maxHP = playerData.hp;
|
currentHP = maxHP = playerData.hp;
|
||||||
currentSP = maxSP = playerData.mp;
|
currentSP = maxSP = playerData.mp;
|
||||||
|
|
||||||
|
OnHPChanged?.Invoke(currentHP, maxHP);
|
||||||
|
OnSPChanged?.Invoke(currentSP, maxSP);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -170,6 +175,14 @@ namespace TON
|
|||||||
|
|
||||||
public void SkillAttack(string skillId)
|
public void SkillAttack(string skillId)
|
||||||
{
|
{
|
||||||
|
SkillBase skillBase = SkillDataManager.Singleton.GetSkillInstance(skillId);
|
||||||
|
// 스킬을 사용할 수 있는 스킬포인트가 있는지 판단
|
||||||
|
// 스킬 포인트가 부족하다면 스킬을 수행하지 못함
|
||||||
|
if (currentSP < skillBase.SkillData.mpConsumption) return;
|
||||||
|
|
||||||
|
currentSP -= skillBase.SkillData.mpConsumption;
|
||||||
|
OnSPChanged?.Invoke(currentSP, maxSP);
|
||||||
|
|
||||||
// 스킬 매니저에서 스킬을 쏠 수 있는지 여부를 판단
|
// 스킬 매니저에서 스킬을 쏠 수 있는지 여부를 판단
|
||||||
bool canExecute = SkillDataManager.Singleton.CanExecuteSkill(skillId);
|
bool canExecute = SkillDataManager.Singleton.CanExecuteSkill(skillId);
|
||||||
if (canExecute)
|
if (canExecute)
|
||||||
@@ -189,6 +202,8 @@ namespace TON
|
|||||||
currentHP -= damage;
|
currentHP -= damage;
|
||||||
currentHP = Mathf.Clamp(currentHP, 0, maxHP);
|
currentHP = Mathf.Clamp(currentHP, 0, maxHP);
|
||||||
|
|
||||||
|
OnHPChanged?.Invoke(currentHP, maxHP);
|
||||||
|
|
||||||
// 체력이 0 아래로 떨어지고 현 상태가 IsAlive 일때만 동작하도록 함
|
// 체력이 0 아래로 떨어지고 현 상태가 IsAlive 일때만 동작하도록 함
|
||||||
if (currentHP <= 0f && prevHP > 0)
|
if (currentHP <= 0f && prevHP > 0)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -15,12 +15,5 @@ namespace TON
|
|||||||
linkedCharactor = GetComponent<CharacterBase>();
|
linkedCharactor = GetComponent<CharacterBase>();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Start()
|
|
||||||
{
|
|
||||||
IngameUI.Instance.SetHP(linkedCharactor.currentHP, linkedCharactor.maxHP);
|
|
||||||
IngameUI.Instance.SetSP(linkedCharactor.currentSP, linkedCharactor.maxSP);
|
|
||||||
IngameUI.Instance.SetPlayerImage(PlayerDataManager.Singleton.player.type);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -42,10 +42,17 @@ namespace TON
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 선택된 캐릭터에 맞는 오브젝트를 생성하거나 적용하는 코드 작성
|
// 선택된 캐릭터에 맞는 오브젝트를 생성하거나 적용하는 코드 작성
|
||||||
PlayerSpawner.SpawnPlayerCharacter();
|
if (!PlayerSpawner.SpawnPlayerCharacter())
|
||||||
|
{
|
||||||
|
Debug.LogError("Failed to spawn player character!");
|
||||||
|
// 에러 UI를 표시하거나 씬을 다시 로드하는 등의 처리
|
||||||
|
// UIManager.Show<ErrorUI>(UIList.ErrorUI);
|
||||||
|
// 또는 SceneManager.LoadScene("ErrorScene"); 등
|
||||||
|
yield break;
|
||||||
|
}
|
||||||
|
|
||||||
SkillDataManager.Singleton.Initalize();
|
SkillDataManager.Singleton.Initalize();
|
||||||
StageManager.Singleton.StartStage(stageId);
|
StageManager.Singleton.StartStage(stageId);
|
||||||
|
|
||||||
UIManager.Show<IngameUI>(UIList.IngameUI);
|
UIManager.Show<IngameUI>(UIList.IngameUI);
|
||||||
UIManager.Show<OptionUI>(UIList.OptionUI);
|
UIManager.Show<OptionUI>(UIList.OptionUI);
|
||||||
UIManager.Show<ControllerUI>(UIList.ControllerUI);
|
UIManager.Show<ControllerUI>(UIList.ControllerUI);
|
||||||
|
|||||||
@@ -21,37 +21,44 @@ namespace TON
|
|||||||
public Image monsterImage;
|
public Image monsterImage;
|
||||||
|
|
||||||
|
|
||||||
private float currentHP;
|
|
||||||
private float maxHP;
|
|
||||||
private float currentSP;
|
|
||||||
private float maxSP;
|
|
||||||
private string playerType;
|
private string playerType;
|
||||||
|
|
||||||
|
[SerializeField] private CharacterBase character;
|
||||||
|
|
||||||
|
|
||||||
private void OnEnable()
|
private void OnEnable()
|
||||||
{
|
{
|
||||||
|
character = GameObject.FindWithTag("Player").GetComponent<CharacterBase>();
|
||||||
|
playerType = PlayerDataManager.Singleton.player.type;
|
||||||
|
|
||||||
|
if (character != null)
|
||||||
|
{
|
||||||
|
character.OnHPChanged += UpdateHPBar;
|
||||||
|
character.OnSPChanged += UpdateSPBar;
|
||||||
|
}
|
||||||
|
|
||||||
// UI가 활성화될 때 저장된 값들로 업데이트
|
// UI가 활성화될 때 저장된 값들로 업데이트
|
||||||
RefreshUI();
|
RefreshUI();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetHP(float current, float max)
|
private void OnDisable()
|
||||||
{
|
{
|
||||||
currentHP = current;
|
if (character != null)
|
||||||
maxHP = max;
|
|
||||||
if (gameObject.activeInHierarchy)
|
|
||||||
{
|
{
|
||||||
hpBar.fillAmount = current / max;
|
character.OnHPChanged -= UpdateHPBar;
|
||||||
|
character.OnSPChanged -= UpdateSPBar;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetSP(float current, float max)
|
private void UpdateHPBar(float current, float max)
|
||||||
{
|
{
|
||||||
currentSP = current;
|
hpBar.fillAmount = current / max;
|
||||||
maxSP = max;
|
}
|
||||||
if (gameObject.activeInHierarchy)
|
|
||||||
|
private void UpdateSPBar(float current, float max)
|
||||||
{
|
{
|
||||||
spBar.fillAmount = current / max;
|
spBar.fillAmount = current / max;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
public void SetPlayerImage(string type)
|
public void SetPlayerImage(string type)
|
||||||
{
|
{
|
||||||
@@ -64,8 +71,6 @@ namespace TON
|
|||||||
|
|
||||||
private void RefreshUI()
|
private void RefreshUI()
|
||||||
{
|
{
|
||||||
if (maxHP > 0) SetHP(currentHP, maxHP);
|
|
||||||
if (maxSP > 0) SetSP(currentSP, maxSP);
|
|
||||||
if (!string.IsNullOrEmpty(playerType)) UpdatePlayerImage();
|
if (!string.IsNullOrEmpty(playerType)) UpdatePlayerImage();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user