Unity 내배캠 TIL

Unity 게임 개발 최종 팀 프로젝트(11주차 3일)

오늘도즐겨 2024. 12. 4. 21:12

🔥 12월 4일 수요일 목표 🔥

🔍 팀 프로젝트 EnemyTurn일때  - PlayableUnitUI 닫아주는 기능 세팅하기

🔍 팀 프로젝트  Unit Health Bar - Unit HP Point 포지션값 넣어주기

 

📌미리 만들어둔 팀원의 메서드를 활용하기 (GameManager Script)

public void SubscribePhaseEvent(GamePhase phase, Action onPhaseEntered)
{
    if (!OnPhaseEntered.ContainsKey(phase))
        OnPhaseEntered.Add(phase, null);
    
    OnPhaseEntered[phase] += onPhaseEntered;
}

 

📌미리 만들어둔 팀원의 메서드를 활용하기 (UIBattleCanvas Scripts)

private void Start()
{
	GameManager gameManager = GameManager.Instance;
	gameManager.SubscribePhaseEvent(GamePhase.EnemyTurn, uiPlayableUnitPanel.Close);
}

 

패널을 닫아줄 메소드라 따로 이름을 지어 넣어줄 필요가 없어보여, Action 구독해줄 메소드를 람다식으로 구현함!

Close가 메서드여서, Action에  바로 넣어줄 수 있어서, 람다식을 삭제해도 됨!

 

📌Unit HP bar 포지션값 넣어주기

[SerializeField] private GameObject unit;
void Start()
{
	transform.position = unit.transform.position + new Vector3(0, 2f, 0);
}

일단 강제로 GameObject로 Unit을 인스펙터창에서 삽입 해줌!

// TODO : Unit은 부모오브젝트가 될 것이니, 부모오브젝트에 Transform을 받아오는 방법으로 구현하기

 

이전에 hpPoint를 이용하려 인스펙터창에서 설정해둔 hpPoint의 트랜스 폼 값을 가져옴

hpPoint.transform.LookAt(mainCam.transform);

❓이상한 값이 들어온다......ㅎ(아 모르겠다 하ㅏ~~~)

Vector3 targetPosition = mainCam.transform.position;
targetPosition.y = transform.position.y;  // 높이(y축)만 맞추어 수평으로 바라보게 함
transform.LookAt(targetPosition);

녜????????????? 하하하하하핳ㅎ.....

심지어 위에서 내려다 보는 느낌이라

UI도 위에서 내려보는 느낌이 되어버렸는데,

어떻게 수정하면 좋을지 더 생각 해봐야겠다!

❓일단 문제, targetPosition 을 만들어 X축은 고정되게 만들어줬다.

그래서 이상 한거 잖아???

 

그럼 저 targetPosition을 굳이 만들어 줄 필요도 없네?ㅋㅋㅋㅋ그냥 넣어보자!

transform.LookAt(mainCam.transform);//항상 카메라를 바라보게 함!
transform.Rotate(0, 180f, 0);

뭐야 너무 간단하잖아?

💡 혼자 너무 어렵게 생각했나??........유니티 내부 함수 활용 💚

 

 

📌 선택되지 않은 Unit과 선택된 유닛의 HPbar투명도 조절하기

 

📌 UnitHealthSystem -Health구독시스템 만들어주기

 

 

🔥 12월 5일 목요일 목표 🔥

🔍 팀 프로젝트  Unit Health Bar - 선택되지 않은 Unit과 선택된 유닛의 HPbar투명도 조절하기

🔍 팀 프로젝트  Unit Health Bar - UnitHealthSystem -Health구독시스템 만들어주기

🔍 팀 프로젝트  게임해보기