
오늘 학습 키워드
최종 팀 프로젝트
오늘 학습 한 내용을 나만의 언어로 정리하기
보스 체력바 만들기
- 이벤트 버스를 사용 해 보스의 체력이 변화하면 그에 맞게 HP바가 변경되도록 설정
// StageController.cs
/// <summary>
/// 보스가 생성될 때 한 번 불러주면 됨
/// </summary>
protected void SettingBossHpBar()
{
if (stageData.Stage_id != StageID.Tutorial && stageData.Stage_id != StageID.Village)
{
// 체력바 설정
if (DataManager.Instance.MonsterDataList.TryGetMonsterModelData(stageData.Monster_ids[0],
out var monsterModel))
{
UIManager.Instance.GetUI<HUDUI>().SettingBossHp(monsterModel.health);
EventBus.Subscribe(EventBusKey.ChangeBossHealth, UIManager.Instance.GetUI<HUDUI>().ChangeBossHpBar);
}
// 타이머 설정
UIManager.Instance.GetUI<HUDUI>().SettingMaxTimer(stageData.Time_limit);
}
}
// HUDUI.cs
public void ChangeBossHpBar(object data)
{
int currentHp = (int)data;
bossHpBar.fillAmount = (float)currentHp / maxBossHp;
}- 같은 방법으로 시간 흐름도 보여줌
퍼널 분석을 해보자
- UGS를 사용함
우선 Environment 설정
- Environment 설정 안하면 production에 이벤트 들어가서 겁나 더러워짐

- 우리는 release-v2-0-0 에 데이터를 수집하기로 함
- 그러면 평소에는 그냥 production에 넣는거임
- 유니티 들어가서 Services > General Settings > Environments 감
- Environment를 그냥 production으로 함 (왜냐면 production에 다 넣어놓고 실제로는 release에서 볼거니까)
커스텀 이벤트를 만들자
- 유니티 클라우드에 있는 애널리틱스로 들어감
- 이벤트 관리자 누름
- Add New 해서 Custom Event를 누름

- 이벤트를 작성함
- 그리고 밑에 있는 Event parameters에 Assign Parameter 누름
- 새로 만들고싶은게 있으면 Add New Parameter 누름

- 그러면 일단 UGS 상에서는 이벤트 생성 끝
- 이제 코드를 보면 됨
- 여기서는 예제로 이 이벤트를 사용하겠음

- 여기서 나는 stage_id 를 커스텀 파라미터로 사용함
- 아래는 코드
private void RecordAnalyticsEvent(string eventName, Dictionary<string, object> parameters)
{
if (!IsInit)
{
return;
}
// CustomEvent는 이름으로만 생성한 뒤 파라미터를 하나씩 추가
try
{
var eventToRecord = new CustomEvent(eventName);
foreach (var param in parameters)
{
eventToRecord.Add(param.Key, param.Value);
}
AnalyticsService.Instance.RecordEvent(eventToRecord);
Debug.Log($"Analytics: Logged '{eventName}'.");
}
catch (Exception e)
{
Debug.LogError($"Error recording analytics event '{eventName}': {e}");
}
}
public void LogStageStart(int stageId)
{
RecordAnalyticsEvent("stage_start", new Dictionary<string, object>
{
{ "stage_id", stageId } // 커스텀만 이렇게 직접 넣어주면 됨
});
}- 그리고 여기 LogStageStart 함수를 필요할 때 부르면 됨!
- 그럼 알아서 이벤트가 등록되고, UGS 이벤트 브라우저에서 확인 가능함. (아래처럼)
