Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
S
SSBookMinigames
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
SSBookMinigames
Commits
de16be72
Commit
de16be72
authored
Apr 13, 2026
by
Yousef Sameh
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
user_model avatar ID added
parent
a0f231ad
Changes
7
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
136 additions
and
24 deletions
+136
-24
.gitignore
My project/.gitignore
+99
-1
UserService.cs
My project/Assets/App/Infrastructure/User/UserService.cs
+11
-10
UserModel.cs
My project/Assets/App/Models/UserModel.cs
+4
-1
HomeController.cs
My project/Assets/App/UI/HomeController.cs
+0
-2
LeaderboardController.cs
My project/Assets/App/UI/LeaderboardController.cs
+1
-1
LoginPageAnimation.cs
My project/Assets/AppUI/Scripts/LoginPageAnimation.cs
+2
-2
SelectImage.cs
My project/Assets/AppUI/Scripts/SelectImage.cs
+19
-7
No files found.
My project/.gitignore
View file @
de16be72
UserSettings/
\ No newline at end of file
# This .gitignore file should be placed at the root of your Unity project directory
#
# Get latest from https://github.com/github/gitignore/blob/main/Unity.gitignore
#
.utmp/
/[Ll]ibrary/
/[Tt]emp/
/[Oo]bj/
/[Bb]uild/
/[Bb]uilds/
/[Ll]ogs/
/[Uu]ser[Ss]ettings/
*.log
# By default unity supports Blender asset imports, *.blend1 blender files do not need to be commited to version control.
*.blend1
*.blend1.meta
# MemoryCaptures can get excessive in size.
# They also could contain extremely sensitive data
/[Mm]emoryCaptures/
# Recordings can get excessive in size
/[Rr]ecordings/
# Uncomment this line if you wish to ignore the asset store tools plugin
# /[Aa]ssets/AssetStoreTools*
# Autogenerated Jetbrains Rider plugin
/[Aa]ssets/Plugins/Editor/JetBrains*
# Jetbrains Rider personal-layer settings
*.DotSettings.user
# Visual Studio cache directory
.vs/
# Gradle cache directory
.gradle/
# Autogenerated VS/MD/Consulo solution and project files
ExportedObj/
.consulo/
*.csproj
*.unityproj
*.sln
*.suo
*.tmp
*.user
*.userprefs
*.pidb
*.booproj
*.svd
*.pdb
*.mdb
*.opendb
*.VC.db
# Unity3D generated meta files
*.pidb.meta
*.pdb.meta
*.mdb.meta
# Unity3D generated file on crash reports
sysinfo.txt
# Mono auto generated files
mono_crash.*
# Builds
*.apk
*.aab
*.unitypackage
*.unitypackage.meta
*.app
# Crashlytics generated file
crashlytics-build.properties
# TestRunner generated files
InitTestScene*.unity*
# Addressables default ignores, before user customizations
/ServerData
/[Aa]ssets/StreamingAssets/aa*
/[Aa]ssets/AddressableAssetsData/link.xml*
/[Aa]ssets/Addressables_Temp*
# By default, Addressables content builds will generate addressables_content_state.bin
# files in platform-specific subfolders, for example:
# /Assets/AddressableAssetsData/OSX/addressables_content_state.bin
/[Aa]ssets/AddressableAssetsData/*/*.bin*
# Visual Scripting auto-generated files
/[Aa]ssets/Unity.VisualScripting.Generated/VisualScripting.Flow/UnitOptions.db
/[Aa]ssets/Unity.VisualScripting.Generated/VisualScripting.Flow/UnitOptions.db.meta
/[Aa]ssets/Unity.VisualScripting.Generated/VisualScripting.Core/Property Providers
/[Aa]ssets/Unity.VisualScripting.Generated/VisualScripting.Core/Property Providers.meta
# Auto-generated scenes by play mode tests
/[Aa]ssets/[Ii]nit[Tt]est[Ss]cene*.unity*
My project/Assets/App/Infrastructure/User/UserService.cs
View file @
de16be72
...
...
@@ -194,12 +194,12 @@ public class UserService
}
public
async
UniTask
<
OneOf
<
UserResult
,
ErrorResult
>>
UpdateProfile
(
string
username
,
int
grade
,
int
term
,
int
curriculum
,
string
email
=
null
)
string
username
=
null
,
int
?
grade
=
null
,
int
?
term
=
null
,
int
?
curriculum
=
null
,
int
?
avatarId
=
null
,
string
email
=
null
)
{
try
{
...
...
@@ -211,9 +211,10 @@ public class UserService
var
update
=
CurrentUser
.
Clone
()
as
User
;
if
(
username
!=
null
)
update
.
Username
=
username
;
if
(
email
!=
null
)
update
.
Email
=
email
;
update
.
Grade
=
grade
;
update
.
Term
=
term
;
update
.
Curriculum
=
curriculum
;
if
(
avatarId
.
HasValue
)
update
.
AvatarId
=
avatarId
.
Value
;
if
(
grade
.
HasValue
)
update
.
Grade
=
grade
.
Value
;
if
(
term
.
HasValue
)
update
.
Term
=
term
.
Value
;
if
(
curriculum
.
HasValue
)
update
.
Curriculum
=
curriculum
.
Value
;
await
client
.
From
<
User
>()
...
...
My project/Assets/App/Models/UserModel.cs
View file @
de16be72
...
...
@@ -40,6 +40,9 @@ public class User : BaseModel, ICloneable
[
Column
(
"term"
)]
public
int
Term
{
get
;
set
;
}
[
Column
(
"avatar_id"
)]
public
int
AvatarId
{
get
;
set
;
}
/// <summary>
/// Creates a deep copy of the user object.
/// </summary>
...
...
My project/Assets/App/UI/HomeController.cs
View file @
de16be72
...
...
@@ -55,8 +55,6 @@ public class HomeController : MonoBehaviour
SetPlayButtonsEnabled
(
false
);
OnUserChange
(
UserService
.
Instance
.
CurrentUser
);
}
private
void
OnUserChange
(
User
user
)
...
...
My project/Assets/App/UI/LeaderboardController.cs
View file @
de16be72
My project/Assets/AppUI/Scripts/LoginPageAnimation.cs
View file @
de16be72
My project/Assets/AppUI/Scripts/SelectImage.cs
View file @
de16be72
using
System
;
using
UnityEngine
;
using
UnityEngine.UIElements
;
...
...
@@ -15,16 +14,29 @@ public class SelectImage : MonoBehaviour
void
Start
()
{
Index
=
PlayerPrefs
.
GetInt
(
"ProfileImageIndex"
,
0
);
profileImage
.
currentSprite
=
profileImage
.
profileImages
[
Index
];
Images
=
UIDocument
.
rootVisualElement
.
Q
<
ToggleButtonGroup
>(
"Images"
);
SureImage
=
UIDocument
.
rootVisualElement
.
Q
<
Button
>(
"SureImage"
);
Images
.
RegisterValueChangedCallback
(
OnValueChanged
);
SureImage
.
clicked
+=
SureImage_clicked
;
UserService
.
Instance
.
OnUserChanged
+=
OnUserChange
;
OnUserChange
(
UserService
.
Instance
.
CurrentUser
);
}
private
void
OnUserChange
(
User
user
)
{
if
(
user
==
null
)
{
Index
=
0
;
profileImage
.
currentSprite
=
profileImage
.
profileImages
[
Index
];
}
else
{
var
index
=
user
.
AvatarId
;
profileImage
.
currentSprite
=
profileImage
.
profileImages
[
index
];
}
}
private
void
OnValueChanged
(
ChangeEvent
<
ToggleButtonGroupState
>
evt
)
...
...
@@ -49,10 +61,10 @@ public class SelectImage : MonoBehaviour
}
}
private
void
SureImage_clicked
()
private
async
void
SureImage_clicked
()
{
profileImage
.
currentSprite
=
profileImage
.
profileImages
[
Index
];
PlayerPrefs
.
SetInt
(
"ProfileImageIndex"
,
Index
);
await
UserService
.
Instance
.
UpdateProfile
(
avatarId
:
Index
);
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment