Unity 매뉴얼 스크립팅 API - 한국어 해설
소개
Unity에서 사용하는 게임 분석 서비스는 성능과 플레이어 행동을 이해하는데 도움을 줍니다. 이 문서에서는 이벤트 추적과 사용자 지정 이벤트에 대한 설명과 예제를 제공합니다.
애널리틱스 이벤트
스탠다드 이벤트와 커스텀 이벤트
- 스탠다드 이벤트: 필수 또는 옵션 파라미터가 있는 미리 정의된 이벤트입니다.
- 커스텀 이벤트: 개발자가 정의한 이벤트로, 추가 정보를 포함할 수 있습니다.
두 이벤트 모두 Dictionary<string, object>
형태로 파라미터 값을 전달할 수 있습니다. 이 때, 각 파라미터의 이름과 데이터 타입을 일관성 있게 유지해야 합니다. 예를 들어 스테이지 이름을 숫자로 보내면 안 됩니다.
키와 값의 조건
- 커스텀 파라미터의 키는 “unity”로 시작해서는 안 됩니다.
- 전달할 수 있는 최대 파라미터 수는 10개입니다.
- 각각의 키 이름과 문자열 값은 100자를 넘을 수 없으며, 총 길이는 500자를 넘어서는 안 됩니다.
메모리 효율성
파라미터 사전을 클래스 멤버로 생성하여 재사용할 수 있습니다. 이렇게 하면 가비지 컬렉션을 줄이고 성능을 향상시킬 수 있습니다.
커스텀 이벤트 예제
아래는 커스텀 이벤트를 전송하는 C# 클래스 예제입니다.
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Analytics;
public class MyCustomAnalyticsEvent : MonoBehaviour {
private const string Name = "my_custom_event";
private Dictionary<string, object> parameters
= new Dictionary<string, object>();
void Start(){
// 파라미터 정의 및 기본값 설정
parameters.Add("character_class", "Unknown");
parameters.Add("health", 0);
parameters.Add("xp", 0);
parameters.Add("world_x", 0);
parameters.Add("world_y", 0);
parameters.Add("world_z", 0);
}
public bool Dispatch(string characterClass,
int health,
int experience,
Vector3 location){
// 특정 이벤트에 대한 파라미터 값 설정
parameters["character_class"] = characterClass;
parameters["health"] = health;
parameters["xp"] = experience;
parameters["world_x"] = location.x;
parameters["world_y"] = location.y;
parameters["world_z"] = location.z;
// 이벤트 전송
AnalyticsResult result
= AnalyticsEvent.Custom(Name, parameters);
return result == AnalyticsResult.Ok;
}
}
이 예제는 커스텀 파라미터를 설정하고 이벤트를 전송하는 방법을 보여줍니다. Dispatch
메서드는 파라미터를 업데이트하고 이벤트를 전송합니다.
활용 예제
다음은 위의 예제를 응용한 다양한 상황입니다:
예제 이름 | 설명 |
---|---|
캐릭터 레벨 추적 | 캐릭터의 레벨이 올라갈 때 추적 |
플레이 시간 분석 | 플레이어의 세션 시간 기록 |
아이템 사용 통계 | 특정 아이템 사용 시 이벤트 발생 |
퀘스트 완료 알림 | 퀘스트 완료 시 데이터 전송 |
사용자 행동 분석 | 클릭, 이동 등 사용자 행동 패턴 추적 |
시스템 오류 추적 | 에러 발생 시 마무리 이벤트 발생 |
다양한 등급의 유저 분류 | 유저 등급 분류에 따른 이벤트 차별화 |
이와 같은 예제를 통해 이벤트 추적 기능을 다양한 방식으로 활용할 수 있습니다. 이를 통해 더 나은 게임 경험과 사용자 분석이 가능해집니다.