Unity 게임 개발 최종 팀 프로젝트(11주차 3일)
🔥 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구독시스템 만들어주기
🔍 팀 프로젝트 게임해보기