I have read the documentation on Google Analytics page, but seems I can not understand how it affect the data collected by GA.
I have this case:
In my game (iOS and Android), there are 5 characters. I want to know how many user are using each of these characters.
For example, in some time the User A using character 1. It sends the data to GA, and in the GA reports it will show that there is just 1 user using Character 1.
As soon as the User A change the character into character 5, the GA report will say there are 1 user using character 5, and none for the others characters.
What kind of scope level must I use? I guess it is "User Scope", but I dont know if it is right or not.
In your case, you'd want to create a Character custom dimension with User scope.
The scope of a custom dimension in Google Analytics determines how long the value, like 'Character 1', will continue to be applied to data in your reports.
When you choose User scope, it means that when a send a Character value, like 'Character 1', it will be applied to all of that users' hits (i.e., any hits received from that client ID), across any subsequent sessions, until they change their character and you send a new value.
By contrast, if you select hit scope, 'Character 1' would only be applied to the very next screen view or event. It's too narrow a scope for the analysis you want.
Session scope is still too narrow -- 'Character 1' would be applied to all hits (screen views, events, in-app purchases, etc.) within a single GA session, but the value would be cleared if a user quit the game and restarted it (i.e., started a new session).