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
c1d2bd70
Commit
c1d2bd70
authored
Apr 11, 2026
by
Yousef Sameh
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Bug fixes, I don't know a lot of things
parent
d4ba32ba
Changes
47
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
47 changed files
with
4069 additions
and
657 deletions
+4069
-657
SupabaseAuthentication.cs
.../Assets/App/Infrastructure/Auth/SupabaseAuthentication.cs
+3
-0
AppRouter.cs
My project/Assets/App/Infrastructure/Core/AppRouter.cs
+24
-17
LeaderboardService.cs
...sets/App/Infrastructure/Leaderboard/LeaderboardService.cs
+4
-2
UserService.cs
My project/Assets/App/Infrastructure/User/UserService.cs
+24
-28
UserModel.cs
My project/Assets/App/Models/UserModel.cs
+93
-4
HomeController.cs
My project/Assets/App/UI/HomeController.cs
+3
-2
LeaderboardController.cs
My project/Assets/App/UI/LeaderboardController.cs
+91
-33
LoginController.cs
My project/Assets/App/UI/LoginController.cs
+15
-1
ProfileController.cs
My project/Assets/App/UI/ProfileController.cs
+30
-1
Mainmenu.uxml
My project/Assets/AppUI/NewAppUI/Mainmenu.uxml
+11
-11
Boot.unity
My project/Assets/AppUI/NewAppUI/Scene/Boot.unity
+47
-9
LoginPageAnimation.cs
My project/Assets/AppUI/Scripts/LoginPageAnimation.cs
+0
-2
CircleWipeYellow.meta
.../Assets/EasyTransitions/Transitions/CircleWipeYellow.meta
+8
-0
CircleIN.controller
...nsitions/Transitions/CircleWipeYellow/CircleIN.controller
+72
-0
CircleIN.controller.meta
...ons/Transitions/CircleWipeYellow/CircleIN.controller.meta
+8
-0
CircleIN.prefab
...yTransitions/Transitions/CircleWipeYellow/CircleIN.prefab
+235
-0
CircleIN.prefab.meta
...sitions/Transitions/CircleWipeYellow/CircleIN.prefab.meta
+7
-0
CircleIn.anim
...asyTransitions/Transitions/CircleWipeYellow/CircleIn.anim
+215
-0
CircleIn.anim.meta
...ansitions/Transitions/CircleWipeYellow/CircleIn.anim.meta
+8
-0
CircleOUT.controller
...sitions/Transitions/CircleWipeYellow/CircleOUT.controller
+72
-0
CircleOUT.controller.meta
...ns/Transitions/CircleWipeYellow/CircleOUT.controller.meta
+8
-0
CircleOUT.prefab
...Transitions/Transitions/CircleWipeYellow/CircleOUT.prefab
+235
-0
CircleOUT.prefab.meta
...itions/Transitions/CircleWipeYellow/CircleOUT.prefab.meta
+7
-0
CircleOut.anim
...syTransitions/Transitions/CircleWipeYellow/CircleOut.anim
+179
-0
CircleOut.anim.meta
...nsitions/Transitions/CircleWipeYellow/CircleOut.anim.meta
+8
-0
CircleWipeYellow.asset
...tions/Transitions/CircleWipeYellow/CircleWipeYellow.asset
+29
-0
CircleWipeYellow.asset.meta
.../Transitions/CircleWipeYellow/CircleWipeYellow.asset.meta
+8
-0
PolygonScifi_01_A.mat
...t/Assets/PolygonSciFiCity/Materials/PolygonScifi_01_A.mat
+1
-1
Env V2.prefab
My project/Assets/Prefabs/CS/Env V2.prefab
+106
-322
Canvas.prefab
My project/Assets/Prefabs/MCQ/Canvas.prefab
+26
-26
MCQ.unity
My project/Assets/Scenes/MCQ/MCQ.unity
+66
-0
CsGameManager.cs
My project/Assets/ScienceStreet/CS/Scripts/CsGameManager.cs
+2
-4
CsSentence.cs
My project/Assets/ScienceStreet/CS/Scripts/CsSentence.cs
+151
-185
ChallengeManager.cs
...sets/ScienceStreet/Features/Challenge/ChallengeManager.cs
+0
-1
ChallengeManager.prefab
.../ScienceStreet/Features/Challenge/ChallengeManager.prefab
+1
-1
McqGameManager.cs
...roject/Assets/ScienceStreet/MCQ/Scripts/McqGameManager.cs
+1
-1
BaseGameManager.cs
...ct/Assets/ScienceStreet/Shared/Scripts/BaseGameManager.cs
+18
-0
HapticManager.cs
...ject/Assets/ScienceStreet/Shared/Scripts/HapticManager.cs
+51
-0
HapticManager.cs.meta
...Assets/ScienceStreet/Shared/Scripts/HapticManager.cs.meta
+2
-0
0 (1).unity
My project/Assets/_Recovery/0 (1).unity
+719
-0
0 (1).unity.meta
My project/Assets/_Recovery/0 (1).unity.meta
+7
-0
0 (2).unity
My project/Assets/_Recovery/0 (2).unity
+719
-0
0 (2).unity.meta
My project/Assets/_Recovery/0 (2).unity.meta
+7
-0
0.unity
My project/Assets/_Recovery/0.unity
+719
-0
0.unity.meta
My project/Assets/_Recovery/0.unity.meta
+7
-0
spritescience.png.meta
My project/Assets/spritescience.png.meta
+19
-3
ProjectSettings.asset
My project/ProjectSettings/ProjectSettings.asset
+3
-3
No files found.
My project/Assets/App/Infrastructure/Auth/SupabaseAuthentication.cs
View file @
c1d2bd70
...
...
@@ -30,15 +30,18 @@ public class SupabaseAuthentication
try
{
await
client
.
Auth
.
RefreshSession
();
Debug
.
Log
(
"[Auth] Session refreshed successfully"
+
$" (Auth ID at
{
client
.
Auth
.
CurrentUser
.
Id
}
)"
);
return
new
Success
();
}
catch
{
Debug
.
LogError
(
"[Auth] Session refresh failed, falling back to anonymous"
);
// Refresh failed — fall through to anonymous
}
}
var
session
=
await
client
.
Auth
.
SignInAnonymously
();
Debug
.
Log
(
"[Auth] Signed in anonymously"
+
$" (user ID:
{
session
?.
User
.
Id
}
)"
);
return
session
?.
User
!=
null
?
new
Success
()
:
"Anonymous sign in failed"
;
...
...
My project/Assets/App/Infrastructure/Core/AppRouter.cs
View file @
c1d2bd70
using
System
;
using
Cysharp.Threading.Tasks
;
using
EasyTransition
;
using
Supabase.Gotrue
;
using
Supabase.Gotrue.Interfaces
;
using
UnityEngine
;
...
...
@@ -13,6 +14,7 @@ public class AppRouter : MonoBehaviour
[
Header
(
"Splash UI (Boot Scene Only)"
)]
[
SerializeField
]
private
GameObject
splashScreen
;
[
SerializeField
]
private
GameObject
errorPanel
;
public
TransitionSettings
transitionSettings
;
private
bool
_booted
;
...
...
@@ -26,6 +28,8 @@ public class AppRouter : MonoBehaviour
_instance
=
this
;
DontDestroyOnLoad
(
gameObject
);
Application
.
targetFrameRate
=
Screen
.
currentResolution
.
refreshRate
;
}
private
async
void
Start
()
...
...
@@ -38,8 +42,10 @@ public class AppRouter : MonoBehaviour
private
async
UniTask
Boot
()
{
// 1. Try cache first — instant
// var cached = UserService.Instance.LoadFromCache();
TransitionManager
.
Instance
().
onTransitionCutPointReached
+=
HideSplash
;
// 2. Init Supabase
bool
ready
=
await
SupabaseManager
.
Instance
.
Initialize
();
...
...
@@ -61,15 +67,22 @@ public class AppRouter : MonoBehaviour
}
// 4. Refresh from network
var
profileResult
=
await
UserService
.
Instance
.
GetCurrentUser
();
profileResult
.
Switch
(
success
=>
GoToHome
(),
error
=>
{
// if (cached != null) GoToHome(); // stale cache, still usable
GoToLogin
();
}
);
var
profileResult
=
UserService
.
Instance
.
GetCurrentUser
();
var
prof
=
await
profileResult
;
prof
.
Switch
(
async
success
=>
{
TransitionManager
.
Instance
().
Transition
(
"MainMenu"
,
transitionSettings
,
0f
);
UserService
.
Instance
.
StartListening
();
},
error
=>
{
Debug
.
LogError
(
$"[Boot] Failed to load user profile:
{
error
}
"
);
GoToLogin
();
}
);
}
// ─── Auth State Listener (Safety Net Only) ───────────────────────
...
...
@@ -96,19 +109,13 @@ public class AppRouter : MonoBehaviour
// ─── Navigation ──────────────────────────────────────────────────
public
async
static
void
GoToLogin
()
{
if
(
SceneManager
.
GetActiveScene
().
name
!=
"Login"
)
await
SceneManager
.
LoadSceneAsync
(
"Login"
);
HideSplash
();
TransitionManager
.
Instance
().
Transition
(
"Login"
,
_instance
.
transitionSettings
,
0f
);
}
public
async
static
void
GoToHome
()
{
if
(
SceneManager
.
GetActiveScene
().
name
!=
"MainMenu"
)
await
SceneManager
.
LoadSceneAsync
(
"MainMenu"
);
TransitionManager
.
Instance
().
Transition
(
"MainMenu"
,
_instance
.
transitionSettings
,
0f
);
UserService
.
Instance
.
StartListening
();
HideSplash
();
}
public
static
async
void
Logout
()
...
...
My project/Assets/App/Infrastructure/Leaderboard/LeaderboardService.cs
View file @
c1d2bd70
...
...
@@ -4,15 +4,17 @@ using Cysharp.Threading.Tasks;
using
OneOf
;
using
Supabase
;
public
class
LeaderboardService
:
Singleton
<
LeaderboardService
>
public
class
LeaderboardService
{
private
static
LeaderboardService
_instance
;
public
static
LeaderboardService
Instance
=>
_instance
??=
new
LeaderboardService
();
private
Client
supabase
=>
SupabaseManager
.
Instance
.
Supabase
();
public
async
UniTask
<
OneOf
<
List
<
LeaderboardPlayerModel
>,
string
>>
LoadTop100Players
()
{
try
{
// Queries the 'leaderboard' view directly
var
response
=
await
supabase
.
From
<
LeaderboardPlayerModel
>()
...
...
My project/Assets/App/Infrastructure/User/UserService.cs
View file @
c1d2bd70
...
...
@@ -6,6 +6,7 @@ using Newtonsoft.Json;
using
OneOf
;
using
Supabase.Realtime
;
using
Supabase.Realtime.PostgresChanges
;
using
Unity.VisualScripting
;
using
UnityEngine
;
public
class
UserService
...
...
@@ -111,46 +112,47 @@ public class UserService
try
{
var
client
=
SupabaseManager
.
Instance
.
Supabase
();
var
authUser
=
client
?.
Auth
.
CurrentUser
;
if
(
client
==
null
)
return
new
ErrorResult
(
"Supabase client not initialized"
);
var
authUser
=
client
?.
Auth
.
CurrentUser
;
if
(
authUser
==
null
)
return
new
ErrorResult
(
"Not authenticated"
);
var
response
=
await
client
.
From
<
User
>()
.
Where
(
x
=>
x
.
Id
==
authUser
.
Id
)
.
Get
();
.
Single
();
if
(
response
?.
Models
==
null
||
response
.
Models
.
Count
==
0
)
return
new
ErrorResult
(
"
P
rofile not found"
);
if
(
response
==
null
)
return
new
ErrorResult
(
"
User p
rofile not found"
);
var
oldUser
=
CurrentUser
;
CurrentUser
=
response
.
Models
[
0
];
CurrentUser
=
response
;
IsFromCache
=
false
;
SaveToCache
(
CurrentUser
);
//
SaveToCache(CurrentUser);
if
(
oldUser
!=
null
&&
oldUser
.
Rank
!=
CurrentUser
.
Rank
)
OnRankChanged
?.
Invoke
(
oldUser
.
Rank
,
CurrentUser
.
Rank
);
//
if (oldUser != null && oldUser.Rank != CurrentUser.Rank)
//
OnRankChanged?.Invoke(oldUser.Rank, CurrentUser.Rank);
if
(
oldUser
!=
null
&&
oldUser
.
Points
!=
CurrentUser
.
Points
)
OnPointsChanged
?.
Invoke
(
oldUser
.
Points
,
CurrentUser
.
Points
);
//
if (oldUser != null && oldUser.Points != CurrentUser.Points)
//
OnPointsChanged?.Invoke(oldUser.Points, CurrentUser.Points);
OnUserChanged
?.
Invoke
(
CurrentUser
);
return
new
UserResult
(
CurrentUser
);
}
catch
(
Exception
ex
)
{
Debug
.
LogError
(
$"[UserService] GetCurrentUser failed:
{
ex
.
Message
}
"
);
Debug
.
LogError
(
$"[UserService] GetCurrentUser failed:
{
ex
.
Message
}
+
{
ex
.
StackTrace
}
"
);
return
new
ErrorResult
(
ex
.
Message
);
}
}
public
async
UniTask
<
OneOf
<
UserResult
,
ErrorResult
>>
CreateProfile
(
string
username
,
string
grade
=
null
,
string
sex
=
null
,
string
curriculum
=
null
,
string
term
=
null
)
int
grade
,
string
sex
,
int
curriculum
,
int
term
)
{
try
{
...
...
@@ -180,11 +182,9 @@ public class UserService
}
public
async
UniTask
<
OneOf
<
UserResult
,
ErrorResult
>>
UpdateProfile
(
string
username
=
null
,
string
grade
=
null
,
string
sex
=
null
,
string
curriculum
=
null
,
string
term
=
null
)
string
username
,
int
grade
,
int
term
)
{
try
{
...
...
@@ -193,16 +193,13 @@ public class UserService
if
(
authUser
==
null
)
return
new
ErrorResult
(
"Not authenticated"
);
var
update
=
new
User
()
;
var
update
=
CurrentUser
.
Clone
()
as
User
;
if
(
username
!=
null
)
update
.
Username
=
username
;
if
(
grade
!=
null
)
update
.
Grade
=
grade
;
if
(
sex
!=
null
)
update
.
Sex
=
sex
;
if
(
curriculum
!=
null
)
update
.
Curriculum
=
curriculum
;
if
(
term
!=
null
)
update
.
Term
=
term
;
update
.
Grade
=
grade
;
update
.
Term
=
term
;
await
client
.
From
<
User
>()
.
Where
(
x
=>
x
.
Id
==
authUser
.
Id
)
.
Update
(
update
);
return
await
GetCurrentUser
();
...
...
@@ -223,6 +220,5 @@ public class UserService
IsFromCache
=
false
;
PlayerPrefs
.
DeleteKey
(
CACHE_KEY
);
PlayerPrefs
.
Save
();
OnUserChanged
?.
Invoke
(
null
);
}
}
\ No newline at end of file
My project/Assets/App/Models/UserModel.cs
View file @
c1d2bd70
using
System
;
using
Supabase.Postgrest.Attributes
;
using
Supabase.Postgrest.Models
;
using
System.Collections.Generic
;
using
System.Linq
;
[Table("users")]
public
class
User
:
BaseModel
public
class
User
:
BaseModel
,
ICloneable
{
[
PrimaryKey
(
"id"
)]
public
string
Id
{
get
;
set
;
}
...
...
@@ -24,14 +26,101 @@ public class User : BaseModel
public
DateTime
UpdatedAt
{
get
;
set
;
}
[
Column
(
"grade"
)]
public
string
Grade
{
get
;
set
;
}
public
int
Grade
{
get
;
set
;
}
[
Column
(
"sex"
)]
public
string
Sex
{
get
;
set
;
}
[
Column
(
"curriculum"
)]
public
string
Curriculum
{
get
;
set
;
}
public
int
Curriculum
{
get
;
set
;
}
[
Column
(
"term"
)]
public
string
Term
{
get
;
set
;
}
public
int
Term
{
get
;
set
;
}
/// <summary>
/// Creates a deep copy of the user object.
/// </summary>
public
object
Clone
()
{
// MemberwiseClone works perfectly here as all fields are value types or strings
return
this
.
MemberwiseClone
();
}
/// <summary>
/// Typed helper for Cloning.
/// </summary>
public
User
DeepCopy
()
{
return
(
User
)
this
.
Clone
();
}
/// <summary>
/// Updates this instance with values from another user object.
/// Useful for refreshing the 'CurrentPlayer' after an API update.
/// </summary>
public
void
CopyFrom
(
User
other
)
{
if
(
other
==
null
)
return
;
this
.
Username
=
other
.
Username
;
this
.
Rank
=
other
.
Rank
;
this
.
Points
=
other
.
Points
;
this
.
Grade
=
other
.
Grade
;
this
.
Sex
=
other
.
Sex
;
this
.
Curriculum
=
other
.
Curriculum
;
this
.
Term
=
other
.
Term
;
this
.
UpdatedAt
=
DateTime
.
UtcNow
;
}
}
public
static
class
EducationManager
{
// 1. Grade Mapping (Formal Egyptian)
private
static
readonly
Dictionary
<
int
,
string
>
GradeMap
=
new
Dictionary
<
int
,
string
>
{
{
7
,
"الصف الأول الإعدادي"
},
{
8
,
"الصف الثاني الإعدادي"
},
{
9
,
"الصف الثالث الإعدادي"
},
{
10
,
"الصف الأول الثانوي"
},
{
11
,
"الصف الثاني الثانوي"
},
{
12
,
"الصف الثالث الثانوي"
}
};
// 2. Term Mapping
private
static
readonly
Dictionary
<
int
,
string
>
TermMap
=
new
Dictionary
<
int
,
string
>
{
{
1
,
"الفصل الدراسي الأول"
},
{
2
,
"الفصل الدراسي الثاني"
}
};
// 3. Curriculum Mapping (Egyptian Arabic vs Languages)
private
static
readonly
Dictionary
<
int
,
string
>
CurriculumMap
=
new
Dictionary
<
int
,
string
>
{
{
1
,
"مصري عربي"
},
{
2
,
"مصري لغات"
}
};
// --- Generic Getters ---
public
static
string
GetGradeName
(
int
id
)
=>
GradeMap
.
GetValueOrDefault
(
id
,
"صف غير معروف"
);
public
static
string
GetTermName
(
int
id
)
=>
TermMap
.
GetValueOrDefault
(
id
,
"فصل غير معروف"
);
public
static
string
GetCurriculumName
(
int
id
)
=>
CurriculumMap
.
GetValueOrDefault
(
id
,
"منهج غير معروف"
);
// --- Generic ID Lookups ---
public
static
int
GetGradeId
(
string
name
)
=>
GradeMap
.
FirstOrDefault
(
x
=>
x
.
Value
==
name
.
Trim
()).
Key
;
public
static
int
GetTermId
(
string
name
)
=>
TermMap
.
FirstOrDefault
(
x
=>
x
.
Value
==
name
.
Trim
()).
Key
;
public
static
int
GetCurriculumId
(
string
name
)
=>
CurriculumMap
.
FirstOrDefault
(
x
=>
x
.
Value
==
name
.
Trim
()).
Key
;
// --- Lists for UI Dropdowns ---
public
static
List
<
string
>
GradeList
=>
GradeMap
.
Values
.
ToList
();
public
static
List
<
string
>
TermList
=>
TermMap
.
Values
.
ToList
();
public
static
List
<
string
>
CurriculumList
=>
CurriculumMap
.
Values
.
ToList
();
}
\ No newline at end of file
My project/Assets/App/UI/HomeController.cs
View file @
c1d2bd70
...
...
@@ -39,15 +39,16 @@ public class HomeController : MonoBehaviour
nextRankProgressBar
=
root
.
Q
<
CustomProgressBar
>(
"NextRankProgressBar"
);
UserService
.
Instance
.
OnUserChanged
+=
OnUserChange
;
OnUserChange
(
UserService
.
Instance
.
CurrentUser
);
challengeButton
=
root
.
Q
<
Button
>(
"Challenge"
);
challengeButton
.
clicked
+=
OnChallengeButtonClicked
;
OnUserChange
(
UserService
.
Instance
.
CurrentUser
);
}
private
void
OnUserChange
(
User
user
)
{
print
(
$"[HomeController] Updating user info:
{
user
?.
Username
}
, Rank:
{
user
?.
Rank
}
, Points:
{
user
?.
Points
}
"
)
;
if
(
user
==
null
)
return
;
username
.
text
=
user
.
Username
;
xp
.
text
=
user
.
Points
.
ToString
();
...
...
My project/Assets/App/UI/LeaderboardController.cs
View file @
c1d2bd70
using
System
;
using
System.Collections.Generic
;
using
System.Threading
;
// Required for CancellationTokenSource
using
Cysharp.Threading.Tasks
;
using
UnityEngine
;
using
UnityEngine.UIElements
;
public
class
LeaderboardController
:
MonoBehaviour
public
class
LeaderboardController
:
MonoBehaviour
,
IDisposable
{
[
SerializeField
]
private
UIDocument
leaderboardDocument
;
private
ScrollView
leaderboardScrollView
;
private
VisualElement
root
;
// Stores the active cancellation token
private
CancellationTokenSource
_loadCts
;
void
Awake
()
{
var
root
=
leaderboardDocument
.
rootVisualElement
;
root
=
leaderboardDocument
.
rootVisualElement
;
leaderboardScrollView
=
root
.
Q
<
ScrollView
>(
"Leaderboard"
);
UserService
.
Instance
.
OnUserChanged
+=
_
=>
LoadLeaderboard
();
// Fixed Event Subscription: Use a named method to avoid memory leaks!
UserService
.
Instance
.
OnUserChanged
+=
OnUserChanged
;
LoadLeaderboard
().
Forget
();
}
private
void
OnUserChanged
(
object
user
)
{
LoadLeaderboard
().
Forget
();
}
private
async
UniTask
LoadLeaderboard
()
{
if
(
UserService
.
Instance
.
CurrentUser
==
null
)
return
;
// 1. Cancel and dispose the previous task if it is still running
if
(
_loadCts
!=
null
)
{
_loadCts
.
Cancel
();
_loadCts
.
Dispose
();
}
// 2. Create a new cancellation token for this specific run
_loadCts
=
new
CancellationTokenSource
();
var
token
=
_loadCts
.
Token
;
// Clear existing entries
leaderboardScrollView
.
Clear
();
// Load top 100 players
await
UniTask
.
WaitUntil
(()
=>
UserService
.
Instance
.
CurrentUser
!=
null
);
var
result
=
await
LeaderboardService
.
Instance
.
LoadTop100Players
();
try
{
// Note: If you can edit LeaderboardService, update LoadTop100Players()
// to accept this CancellationToken to cancel the actual web request!
// Example: await LeaderboardService.Instance.LoadTop100Players(token);
var
result
=
await
LeaderboardService
.
Instance
.
LoadTop100Players
();
// 3. Check if a newer request cancelled this one while we were waiting
if
(
token
.
IsCancellationRequested
)
return
;
result
.
Switch
(
(
List
<
LeaderboardPlayerModel
>
players
)
=>
{
for
(
int
i
=
0
;
i
<
players
.
Count
;
i
++)
result
.
Switch
(
(
List
<
LeaderboardPlayerModel
>
players
)
=>
{
if
(
i
<
3
)
ApplyTopThree
(
i
,
players
[
i
]);
var
player
=
players
[
i
];
var
entry
=
new
CustomLeaderboardSlot
for
(
int
i
=
0
;
i
<
players
.
Count
;
i
++)
{
PlayerName
=
player
.
UserName
,
Rank
=
AppUtils
.
RankToArabic
(
player
.
Rank
),
XP
=
player
.
Points
.
ToString
(),
Index
=
player
.
Position
.
ToString
(),
IsOwner
=
player
.
Id
==
UserService
.
Instance
.
CurrentUser
?.
Id
};
leaderboardScrollView
.
Add
(
entry
);
if
(
i
<
3
)
ApplyTopThree
(
i
,
players
[
i
]);
var
player
=
players
[
i
];
var
entry
=
new
CustomLeaderboardSlot
{
PlayerName
=
player
.
UserName
,
Rank
=
AppUtils
.
RankToArabic
(
player
.
Rank
),
XP
=
player
.
Points
.
ToString
(),
Index
=
player
.
Position
.
ToString
(),
IsOwner
=
player
.
Id
==
UserService
.
Instance
.
CurrentUser
?.
Id
};
leaderboardScrollView
.
Add
(
entry
);
}
},
(
string
error
)
=>
{
var
errorLabel
=
new
Label
(
$"Error loading leaderboard:
{
error
}
"
);
leaderboardScrollView
.
Add
(
errorLabel
);
}
},
(
string
error
)
=>
{
var
errorLabel
=
new
Label
(
$"Error loading leaderboard:
{
error
}
"
);
leaderboardScrollView
.
Add
(
errorLabel
);
}
);
);
}
catch
(
OperationCanceledException
)
{
// Standard UniTask exception when an operation is cancelled. Safe to ignore.
}
}
private
void
ApplyTopThree
(
int
index
,
LeaderboardPlayerModel
player
)
{
var
root
=
leaderboardDocument
.
rootVisualElement
.
Q
<
VisualElement
>(
"Leaderboard"
);
Label
name
;
Label
xp
;
...
...
@@ -84,6 +121,27 @@ public class LeaderboardController : MonoBehaviour
name
.
text
=
player
.
UserName
;
xp
.
text
=
player
.
Points
.
ToString
();
}
}
public
void
Dispose
()
{
// Now safely removes the event listener
if
(
UserService
.
Instance
!=
null
)
{
UserService
.
Instance
.
OnUserChanged
-=
OnUserChanged
;
}
// Cancel any pending load when this object is destroyed/disposed
if
(
_loadCts
!=
null
)
{
_loadCts
.
Cancel
();
_loadCts
.
Dispose
();
_loadCts
=
null
;
}
}
// Good practice in Unity to ensure Dispose runs if the GameObject is destroyed
private
void
OnDestroy
()
{
Dispose
();
}
}
\ No newline at end of file
My project/Assets/App/UI/LoginController.cs
View file @
c1d2bd70
...
...
@@ -42,7 +42,21 @@ public class LoginController : MonoBehaviour
return
;
}
var
signUp
=
await
UserService
.
Instance
.
CreateProfile
(
username
.
text
,
curriculum
.
value
,
grade
.
value
,
sex
.
value
,
term
.
value
);
// Check if all fields are filled
if
(
string
.
IsNullOrEmpty
(
username
.
text
)
||
grade
.
value
==
null
||
sex
.
value
==
null
||
term
.
value
==
null
||
curriculum
.
value
==
null
)
{
Debug
.
LogError
(
"Please fill in all fields"
);
return
;
}
var
signUp
=
await
UserService
.
Instance
.
CreateProfile
(
username
:
username
.
text
,
grade
:
EducationManager
.
GetGradeId
(
grade
.
value
),
sex
:
sex
.
value
,
term
:
EducationManager
.
GetTermId
(
term
.
value
),
curriculum
:
EducationManager
.
GetCurriculumId
(
curriculum
.
value
)
);
signUp
.
Switch
(
user
=>
{
AppRouter
.
GoToHome
();
...
...
My project/Assets/App/UI/ProfileController.cs
View file @
c1d2bd70
...
...
@@ -7,13 +7,26 @@ public class ProfileController : MonoBehaviour
private
Label
name
;
private
Button
logoutButton
;
private
Button
updateProfileButton
;
private
TextField
UsernameLabel
;
private
DropdownField
Grade
;
private
DropdownField
Term
;
void
Awake
()
{
var
root
=
profileDocument
.
rootVisualElement
.
Q
(
"Settings"
);
name
=
root
.
Q
<
Label
>(
"Username"
);
logoutButton
=
root
.
Q
<
Button
>(
"LogoutButton"
);
logoutButton
.
clicked
+=
()
=>
AppRouter
.
Logout
();
logoutButton
.
clicked
+=
AppRouter
.
Logout
;
updateProfileButton
=
root
.
Q
<
Button
>(
"UpdateProfile"
);
updateProfileButton
.
clicked
+=
UpdateProfile
;
UsernameLabel
=
root
.
Q
<
TextField
>(
"Name"
);
Grade
=
root
.
Q
<
DropdownField
>(
"Grade"
);
Term
=
root
.
Q
<
DropdownField
>(
"Term"
);
UserService
.
Instance
.
OnUserChanged
+=
OnUserChange
;
OnUserChange
(
UserService
.
Instance
.
CurrentUser
);
...
...
@@ -21,11 +34,27 @@ public class ProfileController : MonoBehaviour
private
void
OnUserChange
(
User
user
)
{
if
(
user
==
null
)
return
;
name
.
text
=
user
.
Username
;
UsernameLabel
.
value
=
user
.
Username
;
Grade
.
value
=
EducationManager
.
GetGradeName
(
user
.
Grade
);
Term
.
value
=
EducationManager
.
GetTermName
(
user
.
Term
);
}
private
void
UpdateProfile
()
{
UserService
.
Instance
.
UpdateProfile
(
username
:
UsernameLabel
.
value
,
grade
:
EducationManager
.
GetGradeId
(
Grade
.
value
),
term
:
EducationManager
.
GetTermId
(
Term
.
value
)
);
}
private
void
OnDestroy
()
{
UserService
.
Instance
.
OnUserChanged
-=
OnUserChange
;
logoutButton
.
clicked
-=
AppRouter
.
Logout
;
updateProfileButton
.
clicked
-=
UpdateProfile
;
}
}
My project/Assets/AppUI/NewAppUI/Mainmenu.uxml
View file @
c1d2bd70
...
...
@@ -23,26 +23,26 @@
<ui:VisualElement style="flex-grow: 0; height: 100px; width: 100px; background-color: rgba(48, 48, 208, 0); align-items: center; justify-content: center; margin-right: 0; margin-left: 30px; border-top-left-radius: 25px; border-top-right-radius: 25px; border-bottom-right-radius: 25px; border-bottom-left-radius: 25px;">
<ui:Label text="✏️" name="icon" class="emoji" style="padding-left: 0; padding-top: 0; padding-right: 0; padding-bottom: 0; font-size: 50px;"/>
</ui:VisualElement>
<ui:TextField label="" placeholder-text="" name="
TextField" hide-placeholder-on-focus="true" value="" class="text-bold" style="margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0; padding-top: 0; padding-right: 0; padding-bottom: 0; padding-left: 0; width: auto; flex-grow: 1; -unity-text-align: upper-right; font-size: 40px; color: rgb(66, 66, 66); border-top-width: 0; border-right-width: 0; border-bottom-width: 0; border-left-width: 0; height: 100%; border-top-left-radius: 25px; border-top-right-radius: 25px; border-bottom-right-radius: 25px; border-bottom-left-radius: 25px; flex-direction: column-reverse
;"/>
<ui:TextField label="" placeholder-text="" name="
Name" hide-placeholder-on-focus="true" value="يوسف" class="text-bold" style="margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0; padding-top: 0; padding-right: 0; padding-bottom: 0; padding-left: 0; width: auto; flex-grow: 1; -unity-text-align: upper-right; font-size: 40px; color: rgb(0, 0, 0); border-top-width: 0; border-right-width: 0; border-bottom-width: 0; border-left-width: 0; height: 100%; border-top-left-radius: 25px; border-top-right-radius: 25px; border-bottom-right-radius: 25px; border-bottom-left-radius: 25px; flex-direction: column-reverse; display: flex
;"/>
</ui:VisualElement>
<ui:VisualElement name="Line" style="flex-grow: 0; width: 100%; background-color: rgba(0, 0, 0, 0.1); height: 2px; margin-top: 25px; margin-bottom: 25px;"/>
<ui:Button text="" name="
Grade" class="row-btn
">
<ui:Button text="" name="
" class="row-btn" style="display: flex;
">
<ui:VisualElement style="flex-grow: 0; height: 100px; width: 100px; background-color: rgba(0, 137, 107, 0.15); align-items: center; justify-content: center; margin-right: 0; margin-left: 30px; border-top-left-radius: 25px; border-top-right-radius: 25px; border-bottom-right-radius: 25px; border-bottom-left-radius: 25px;">
<ui:Label text="🎓" name="icon" class="emoji" style="padding-left: 0; padding-top: 0; padding-right: 0; padding-bottom: 0; font-size: 50px;"/>
</ui:VisualElement>
<ui:Label text="المرحلة الدراسية" class="text-bold-black" style="color: rgb(66, 66, 66);"/>
<ui:DropdownField label="" choices="الصف الأول الإعدادي,الصف الثاني الإعدادي,الصف الثالث الإعدادي,الصف الأول الثانوي,الصف الثاني الثانوي,الصف الثالث الثانوي"
style="margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0; position: absolute; flex-grow: 0; height: 100%; width: 100%; font-size: 26px; -unity-font-definition: url("project://database/Assets/ALArcade/Hakwaty%20Font/TSHakwaty-DemiBold.otf?fileID=12800000&guid=566b773a07b3d064aa1f4c6ef7b6f6fa&type=3#TSHakwaty-DemiBold"); -unity-text-generator: advanced; color: rgb(48, 48, 208)
;"/>
<ui:Label text="المرحلة الدراسية"
name=""
class="text-bold-black" style="color: rgb(66, 66, 66);"/>
<ui:DropdownField label="" choices="الصف الأول الإعدادي,الصف الثاني الإعدادي,الصف الثالث الإعدادي,الصف الأول الثانوي,الصف الثاني الثانوي,الصف الثالث الثانوي"
name="Grade" style="margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0; position: absolute; flex-grow: 0; height: 100%; width: 100%; font-size: 26px; -unity-font-definition: url("project://database/Assets/ALArcade/Hakwaty%20Font/TSHakwaty-DemiBold.otf?fileID=12800000&guid=566b773a07b3d064aa1f4c6ef7b6f6fa&type=3#TSHakwaty-DemiBold"); -unity-text-generator: advanced; color: rgb(48, 48, 208); display: flex; opacity: 1
;"/>
</ui:Button>
<ui:VisualElement name="Line" style="flex-grow: 0; width: 100%; background-color: rgba(0, 0, 0, 0.1); height: 2px; margin-top: 25px; margin-bottom: 25px;"/>
<ui:Button text="" name="
School
" class="row-btn">
<ui:Button text="" name="" class="row-btn">
<ui:VisualElement style="flex-grow: 0; height: 100px; width: 100px; background-color: rgba(0, 137, 107, 0.15); align-items: center; justify-content: center; margin-right: 0; margin-left: 30px; border-top-left-radius: 25px; border-top-right-radius: 25px; border-bottom-right-radius: 25px; border-bottom-left-radius: 25px;">
<ui:Label text="🏫" name="icon" class="emoji" style="padding-left: 0; padding-top: 0; padding-right: 0; padding-bottom: 0; font-size: 50px;"/>
</ui:VisualElement>
<ui:Label text="ال
مدرسة
" class="text-bold-black" style="color: rgb(66, 66, 66);"/>
<ui:DropdownField label="" choices="
مدرسة 1,مدرسة 2" style="margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0; position: absolute; flex-grow: 0; height: 100%; width: 100%; font-size: 26px; -unity-font-definition: url("project://database/Assets/ALArcade/Hakwaty%20Font/TSHakwaty-DemiBold.otf?fileID=12800000&guid=566b773a07b3d064aa1f4c6ef7b6f6fa&type=3#TSHakwaty-DemiBold"); -unity-text-generator: advanced; color: rgb(48, 48, 208)
;"/>
<ui:Label text="ال
فصل الدراسي" name="
" class="text-bold-black" style="color: rgb(66, 66, 66);"/>
<ui:DropdownField label="" choices="
الفصل الدراسي الأول,الفصل الدراسي الثاني" name="Term" style="margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0; position: absolute; flex-grow: 0; height: 100%; width: 100%; font-size: 26px; -unity-font-definition: url("project://database/Assets/ALArcade/Hakwaty%20Font/TSHakwaty-DemiBold.otf?fileID=12800000&guid=566b773a07b3d064aa1f4c6ef7b6f6fa&type=3#TSHakwaty-DemiBold"); -unity-text-generator: advanced; color: rgb(48, 48, 208); display: flex; opacity: 1
;"/>
</ui:Button>
<ui:VisualElement name="Line" style="flex-grow: 0; width: 100%; background-color: rgba(0, 0, 0, 0.1); height: 2px; margin-top: 25px; margin-bottom: 25px;"/>
<ui:Button text="" name="
SaveButton" class="action-btn
">
<ui:Button text="" name="
UpdateProfile" class="action-btn" style="display: flex;
">
<ui:Label text="حفظ" class="text-bold-black" style="color: rgb(255, 255, 255); font-size: 55px;"/>
</ui:Button>
</ui:VisualElement>
...
...
@@ -230,10 +230,10 @@
</ui:VisualElement>
</ui:VisualElement>
</ui:VisualElement>
<ui:VisualElement name="Leader
board
" style="flex-grow: 0; width: 100%; height: 100%;">
<ui:VisualElement name="
Header
" style="height: 847px; margin-bottom: 54px; flex-shrink: 0;">
<ui:VisualElement name="Leader
BoardRoot
" style="flex-grow: 0; width: 100%; height: 100%;">
<ui:VisualElement name="
Top3
" style="height: 847px; margin-bottom: 54px; flex-shrink: 0;">
<ui:VisualElement name="Padding" class="padding" style="flex-grow: 1; padding-bottom: 0; overflow: visible; translate: 0% 0;">
<ui:VisualElement name="FilterRank" style="flex-grow: 0; justify-content: space-around; flex-direction: row-reverse; margin-bottom: 75px;">
<ui:VisualElement name="FilterRank" style="flex-grow: 0; justify-content: space-around; flex-direction: row-reverse; margin-bottom: 75px;
display: none;
">
<ui:ToggleButtonGroup label="">
<ui:Button text="الكل" language-direction="RTL" name="All" class="filter-rank-button"/>
<ui:Button text="هاوي" language-direction="RTL" name="Geek" class="filter-rank-button"/>
...
...
My project/Assets/AppUI/NewAppUI/Scene/Boot.unity
View file @
c1d2bd70
...
...
@@ -166,6 +166,7 @@ MonoBehaviour:
m_EditorClassIdentifier
:
Assembly-CSharp::AppRouter
splashScreen
:
{
fileID
:
90795484556287063
}
errorPanel
:
{
fileID
:
0
}
transitionSettings
:
{
fileID
:
11400000
,
guid
:
91673b50629b1ae4f938d0b25135d085
,
type
:
2
}
---
!u!1
&787965442
GameObject
:
m_ObjectHideFlags
:
0
...
...
@@ -301,6 +302,51 @@ SpriteRenderer:
m_SpriteTileMode
:
0
m_WasSpriteAssigned
:
1
m_SpriteSortPoint
:
0
---
!u!1
&877571984
GameObject
:
m_ObjectHideFlags
:
0
m_CorrespondingSourceObject
:
{
fileID
:
0
}
m_PrefabInstance
:
{
fileID
:
0
}
m_PrefabAsset
:
{
fileID
:
0
}
serializedVersion
:
6
m_Component
:
-
component
:
{
fileID
:
877571986
}
-
component
:
{
fileID
:
877571985
}
m_Layer
:
0
m_Name
:
TransitionManager
m_TagString
:
Untagged
m_Icon
:
{
fileID
:
0
}
m_NavMeshLayer
:
0
m_StaticEditorFlags
:
0
m_IsActive
:
1
---
!u!114
&877571985
MonoBehaviour
:
m_ObjectHideFlags
:
0
m_CorrespondingSourceObject
:
{
fileID
:
0
}
m_PrefabInstance
:
{
fileID
:
0
}
m_PrefabAsset
:
{
fileID
:
0
}
m_GameObject
:
{
fileID
:
877571984
}
m_Enabled
:
1
m_EditorHideFlags
:
0
m_Script
:
{
fileID
:
11500000
,
guid
:
61430b0086307cc4da3ccc8d39ae88da
,
type
:
3
}
m_Name
:
m_EditorClassIdentifier
:
Assembly-CSharp::EasyTransition.TransitionManager
transitionTemplate
:
{
fileID
:
5276914992623515724
,
guid
:
616d511151a6c554caddf1c754e4f91d
,
type
:
3
}
---
!u!4
&877571986
Transform
:
m_ObjectHideFlags
:
0
m_CorrespondingSourceObject
:
{
fileID
:
0
}
m_PrefabInstance
:
{
fileID
:
0
}
m_PrefabAsset
:
{
fileID
:
0
}
m_GameObject
:
{
fileID
:
877571984
}
serializedVersion
:
2
m_LocalRotation
:
{
x
:
0
,
y
:
0
,
z
:
0
,
w
:
1
}
m_LocalPosition
:
{
x
:
540
,
y
:
1199.9999
,
z
:
0
}
m_LocalScale
:
{
x
:
1
,
y
:
1
,
z
:
1
}
m_ConstrainProportionsScale
:
0
m_Children
:
[]
m_Father
:
{
fileID
:
0
}
m_LocalEulerAnglesHint
:
{
x
:
0
,
y
:
0
,
z
:
0
}
---
!u!1
&1239670919
GameObject
:
m_ObjectHideFlags
:
0
...
...
@@ -311,7 +357,6 @@ GameObject:
m_Component
:
-
component
:
{
fileID
:
1239670922
}
-
component
:
{
fileID
:
1239670921
}
-
component
:
{
fileID
:
1239670920
}
-
component
:
{
fileID
:
1239670923
}
m_Layer
:
0
m_Name
:
Main Camera
...
...
@@ -320,14 +365,6 @@ GameObject:
m_NavMeshLayer
:
0
m_StaticEditorFlags
:
0
m_IsActive
:
1
---
!u!81
&1239670920
AudioListener
:
m_ObjectHideFlags
:
0
m_CorrespondingSourceObject
:
{
fileID
:
0
}
m_PrefabInstance
:
{
fileID
:
0
}
m_PrefabAsset
:
{
fileID
:
0
}
m_GameObject
:
{
fileID
:
1239670919
}
m_Enabled
:
1
---
!u!20
&1239670921
Camera
:
m_ObjectHideFlags
:
0
...
...
@@ -717,3 +754,4 @@ SceneRoots:
m_Roots
:
-
{
fileID
:
1239670922
}
-
{
fileID
:
284121876
}
-
{
fileID
:
877571986
}
My project/Assets/AppUI/Scripts/LoginPageAnimation.cs
View file @
c1d2bd70
...
...
@@ -9,8 +9,6 @@ public class LoginPageAnimation : MonoBehaviour
void
Start
()
{
Application
.
targetFrameRate
=
60
;
ContantPanel
=
loginPage
.
rootVisualElement
.
Q
<
VisualElement
>(
"ContantPanel"
);
ContantPanel
.
schedule
.
Execute
(()
=>
...
...
My project/Assets/EasyTransitions/Transitions/CircleWipeYellow.meta
0 → 100644
View file @
c1d2bd70
fileFormatVersion: 2
guid: 84a2aeffecfa57d48a61c4a34884a826
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
My project/Assets/EasyTransitions/Transitions/CircleWipeYellow/CircleIN.controller
0 → 100644
View file @
c1d2bd70
%YAML
1.1
%TAG
!u!
tag:unity3d.com,2011:
---
!u!1107
&-8058688858190119908
AnimatorStateMachine
:
serializedVersion
:
6
m_ObjectHideFlags
:
1
m_CorrespondingSourceObject
:
{
fileID
:
0
}
m_PrefabInstance
:
{
fileID
:
0
}
m_PrefabAsset
:
{
fileID
:
0
}
m_Name
:
Base Layer
m_ChildStates
:
-
serializedVersion
:
1
m_State
:
{
fileID
:
90610720364735581
}
m_Position
:
{
x
:
200
,
y
:
0
,
z
:
0
}
m_ChildStateMachines
:
[]
m_AnyStateTransitions
:
[]
m_EntryTransitions
:
[]
m_StateMachineTransitions
:
{}
m_StateMachineBehaviours
:
[]
m_AnyStatePosition
:
{
x
:
50
,
y
:
20
,
z
:
0
}
m_EntryPosition
:
{
x
:
50
,
y
:
120
,
z
:
0
}
m_ExitPosition
:
{
x
:
800
,
y
:
120
,
z
:
0
}
m_ParentStateMachinePosition
:
{
x
:
800
,
y
:
20
,
z
:
0
}
m_DefaultState
:
{
fileID
:
90610720364735581
}
---
!u!91
&9100000
AnimatorController
:
m_ObjectHideFlags
:
0
m_CorrespondingSourceObject
:
{
fileID
:
0
}
m_PrefabInstance
:
{
fileID
:
0
}
m_PrefabAsset
:
{
fileID
:
0
}
m_Name
:
CircleIN
serializedVersion
:
5
m_AnimatorParameters
:
[]
m_AnimatorLayers
:
-
serializedVersion
:
5
m_Name
:
Base Layer
m_StateMachine
:
{
fileID
:
-8058688858190119908
}
m_Mask
:
{
fileID
:
0
}
m_Motions
:
[]
m_Behaviours
:
[]
m_BlendingMode
:
0
m_SyncedLayerIndex
:
-1
m_DefaultWeight
:
0
m_IKPass
:
0
m_SyncedLayerAffectsTiming
:
0
m_Controller
:
{
fileID
:
9100000
}
---
!u!1102
&90610720364735581
AnimatorState
:
serializedVersion
:
6
m_ObjectHideFlags
:
1
m_CorrespondingSourceObject
:
{
fileID
:
0
}
m_PrefabInstance
:
{
fileID
:
0
}
m_PrefabAsset
:
{
fileID
:
0
}
m_Name
:
CircleIn
m_Speed
:
1
m_CycleOffset
:
0
m_Transitions
:
[]
m_StateMachineBehaviours
:
[]
m_Position
:
{
x
:
50
,
y
:
50
,
z
:
0
}
m_IKOnFeet
:
0
m_WriteDefaultValues
:
1
m_Mirror
:
0
m_SpeedParameterActive
:
0
m_MirrorParameterActive
:
0
m_CycleOffsetParameterActive
:
0
m_TimeParameterActive
:
0
m_Motion
:
{
fileID
:
7400000
,
guid
:
b3b10db47bfd72745bc9d0db14665364
,
type
:
2
}
m_Tag
:
m_SpeedParameter
:
m_MirrorParameter
:
m_CycleOffsetParameter
:
m_TimeParameter
:
My project/Assets/EasyTransitions/Transitions/CircleWipeYellow/CircleIN.controller.meta
0 → 100644
View file @
c1d2bd70
fileFormatVersion: 2
guid: e89950a82bacc8749a9fc95f4ecfeb8c
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 9100000
userData:
assetBundleName:
assetBundleVariant:
My project/Assets/EasyTransitions/Transitions/CircleWipeYellow/CircleIN.prefab
0 → 100644
View file @
c1d2bd70
%YAML
1.1
%TAG
!u!
tag:unity3d.com,2011:
---
!u!1
&939772201543363290
GameObject
:
m_ObjectHideFlags
:
0
m_CorrespondingSourceObject
:
{
fileID
:
0
}
m_PrefabInstance
:
{
fileID
:
0
}
m_PrefabAsset
:
{
fileID
:
0
}
serializedVersion
:
6
m_Component
:
-
component
:
{
fileID
:
939772201543363291
}
-
component
:
{
fileID
:
939772201543363289
}
-
component
:
{
fileID
:
3538668148282501483
}
m_Layer
:
5
m_Name
:
BG
m_TagString
:
Untagged
m_Icon
:
{
fileID
:
0
}
m_NavMeshLayer
:
0
m_StaticEditorFlags
:
0
m_IsActive
:
1
---
!u!224
&939772201543363291
RectTransform
:
m_ObjectHideFlags
:
0
m_CorrespondingSourceObject
:
{
fileID
:
0
}
m_PrefabInstance
:
{
fileID
:
0
}
m_PrefabAsset
:
{
fileID
:
0
}
m_GameObject
:
{
fileID
:
939772201543363290
}
m_LocalRotation
:
{
x
:
-0
,
y
:
-0
,
z
:
-0
,
w
:
1
}
m_LocalPosition
:
{
x
:
0
,
y
:
0
,
z
:
0
}
m_LocalScale
:
{
x
:
1
,
y
:
1
,
z
:
1
}
m_ConstrainProportionsScale
:
0
m_Children
:
[]
m_Father
:
{
fileID
:
7987928246961044090
}
m_LocalEulerAnglesHint
:
{
x
:
0
,
y
:
0
,
z
:
0
}
m_AnchorMin
:
{
x
:
0.5
,
y
:
0.5
}
m_AnchorMax
:
{
x
:
0.5
,
y
:
0.5
}
m_AnchoredPosition
:
{
x
:
0
,
y
:
0
}
m_SizeDelta
:
{
x
:
5000
,
y
:
5000
}
m_Pivot
:
{
x
:
0.5
,
y
:
0.5
}
---
!u!222
&939772201543363289
CanvasRenderer
:
m_ObjectHideFlags
:
0
m_CorrespondingSourceObject
:
{
fileID
:
0
}
m_PrefabInstance
:
{
fileID
:
0
}
m_PrefabAsset
:
{
fileID
:
0
}
m_GameObject
:
{
fileID
:
939772201543363290
}
m_CullTransparentMesh
:
1
---
!u!114
&3538668148282501483
MonoBehaviour
:
m_ObjectHideFlags
:
0
m_CorrespondingSourceObject
:
{
fileID
:
0
}
m_PrefabInstance
:
{
fileID
:
0
}
m_PrefabAsset
:
{
fileID
:
0
}
m_GameObject
:
{
fileID
:
939772201543363290
}
m_Enabled
:
1
m_EditorHideFlags
:
0
m_Script
:
{
fileID
:
11500000
,
guid
:
a798db68994659e4f9c30463aa5d5ae3
,
type
:
3
}
m_Name
:
m_EditorClassIdentifier
:
m_Material
:
{
fileID
:
0
}
m_Color
:
{
r
:
0.99607843
,
g
:
0.84313726
,
b
:
0
,
a
:
1
}
m_RaycastTarget
:
1
m_RaycastPadding
:
{
x
:
0
,
y
:
0
,
z
:
0
,
w
:
0
}
m_Maskable
:
1
m_OnCullStateChanged
:
m_PersistentCalls
:
m_Calls
:
[]
m_Sprite
:
{
fileID
:
0
}
m_Type
:
0
m_PreserveAspect
:
0
m_FillCenter
:
1
m_FillMethod
:
4
m_FillAmount
:
1
m_FillClockwise
:
1
m_FillOrigin
:
0
m_UseSpriteMesh
:
0
m_PixelsPerUnitMultiplier
:
1
---
!u!1
&3068447116946115738
GameObject
:
m_ObjectHideFlags
:
0
m_CorrespondingSourceObject
:
{
fileID
:
0
}
m_PrefabInstance
:
{
fileID
:
0
}
m_PrefabAsset
:
{
fileID
:
0
}
serializedVersion
:
6
m_Component
:
-
component
:
{
fileID
:
2771212925527886026
}
-
component
:
{
fileID
:
163540810164161873
}
m_Layer
:
5
m_Name
:
CircleIN
m_TagString
:
Untagged
m_Icon
:
{
fileID
:
2800000
,
guid
:
0a9be0e727574c34d9695b80b72cd877
,
type
:
3
}
m_NavMeshLayer
:
0
m_StaticEditorFlags
:
0
m_IsActive
:
1
---
!u!224
&2771212925527886026
RectTransform
:
m_ObjectHideFlags
:
0
m_CorrespondingSourceObject
:
{
fileID
:
0
}
m_PrefabInstance
:
{
fileID
:
0
}
m_PrefabAsset
:
{
fileID
:
0
}
m_GameObject
:
{
fileID
:
3068447116946115738
}
m_LocalRotation
:
{
x
:
-0
,
y
:
-0
,
z
:
-0
,
w
:
1
}
m_LocalPosition
:
{
x
:
0
,
y
:
0
,
z
:
0
}
m_LocalScale
:
{
x
:
1
,
y
:
1
,
z
:
1
}
m_ConstrainProportionsScale
:
0
m_Children
:
-
{
fileID
:
7987928246961044090
}
m_Father
:
{
fileID
:
0
}
m_LocalEulerAnglesHint
:
{
x
:
0
,
y
:
0
,
z
:
0
}
m_AnchorMin
:
{
x
:
0
,
y
:
0
}
m_AnchorMax
:
{
x
:
1
,
y
:
1
}
m_AnchoredPosition
:
{
x
:
0
,
y
:
0
}
m_SizeDelta
:
{
x
:
0
,
y
:
0
}
m_Pivot
:
{
x
:
0.5
,
y
:
0.5
}
---
!u!222
&163540810164161873
CanvasRenderer
:
m_ObjectHideFlags
:
0
m_CorrespondingSourceObject
:
{
fileID
:
0
}
m_PrefabInstance
:
{
fileID
:
0
}
m_PrefabAsset
:
{
fileID
:
0
}
m_GameObject
:
{
fileID
:
3068447116946115738
}
m_CullTransparentMesh
:
1
---
!u!1
&3744250235544716902
GameObject
:
m_ObjectHideFlags
:
0
m_CorrespondingSourceObject
:
{
fileID
:
0
}
m_PrefabInstance
:
{
fileID
:
0
}
m_PrefabAsset
:
{
fileID
:
0
}
serializedVersion
:
6
m_Component
:
-
component
:
{
fileID
:
7987928246961044090
}
-
component
:
{
fileID
:
3594378176535709764
}
-
component
:
{
fileID
:
1478739632749817636
}
-
component
:
{
fileID
:
1049235724732627530
}
-
component
:
{
fileID
:
6505739098132124525
}
m_Layer
:
5
m_Name
:
Circle
m_TagString
:
Untagged
m_Icon
:
{
fileID
:
0
}
m_NavMeshLayer
:
0
m_StaticEditorFlags
:
0
m_IsActive
:
1
---
!u!224
&7987928246961044090
RectTransform
:
m_ObjectHideFlags
:
0
m_CorrespondingSourceObject
:
{
fileID
:
0
}
m_PrefabInstance
:
{
fileID
:
0
}
m_PrefabAsset
:
{
fileID
:
0
}
m_GameObject
:
{
fileID
:
3744250235544716902
}
m_LocalRotation
:
{
x
:
-0
,
y
:
-0
,
z
:
-0
,
w
:
1
}
m_LocalPosition
:
{
x
:
0
,
y
:
0
,
z
:
0
}
m_LocalScale
:
{
x
:
1
,
y
:
1
,
z
:
1
}
m_ConstrainProportionsScale
:
0
m_Children
:
-
{
fileID
:
939772201543363291
}
m_Father
:
{
fileID
:
2771212925527886026
}
m_LocalEulerAnglesHint
:
{
x
:
0
,
y
:
0
,
z
:
0
}
m_AnchorMin
:
{
x
:
0.5
,
y
:
0.5
}
m_AnchorMax
:
{
x
:
0.5
,
y
:
0.5
}
m_AnchoredPosition
:
{
x
:
0
,
y
:
0
}
m_SizeDelta
:
{
x
:
4000
,
y
:
4000
}
m_Pivot
:
{
x
:
0.5
,
y
:
0.5
}
---
!u!222
&3594378176535709764
CanvasRenderer
:
m_ObjectHideFlags
:
0
m_CorrespondingSourceObject
:
{
fileID
:
0
}
m_PrefabInstance
:
{
fileID
:
0
}
m_PrefabAsset
:
{
fileID
:
0
}
m_GameObject
:
{
fileID
:
3744250235544716902
}
m_CullTransparentMesh
:
1
---
!u!114
&1478739632749817636
MonoBehaviour
:
m_ObjectHideFlags
:
0
m_CorrespondingSourceObject
:
{
fileID
:
0
}
m_PrefabInstance
:
{
fileID
:
0
}
m_PrefabAsset
:
{
fileID
:
0
}
m_GameObject
:
{
fileID
:
3744250235544716902
}
m_Enabled
:
1
m_EditorHideFlags
:
0
m_Script
:
{
fileID
:
11500000
,
guid
:
fe87c0e1cc204ed48ad3b37840f39efc
,
type
:
3
}
m_Name
:
m_EditorClassIdentifier
:
m_Material
:
{
fileID
:
0
}
m_Color
:
{
r
:
1
,
g
:
1
,
b
:
1
,
a
:
0.003921569
}
m_RaycastTarget
:
1
m_RaycastPadding
:
{
x
:
0
,
y
:
0
,
z
:
0
,
w
:
0
}
m_Maskable
:
1
m_OnCullStateChanged
:
m_PersistentCalls
:
m_Calls
:
[]
m_Sprite
:
{
fileID
:
21300000
,
guid
:
8142b3efe82b5904397d3e29ec3e5a1e
,
type
:
3
}
m_Type
:
0
m_PreserveAspect
:
0
m_FillCenter
:
1
m_FillMethod
:
4
m_FillAmount
:
1
m_FillClockwise
:
1
m_FillOrigin
:
0
m_UseSpriteMesh
:
0
m_PixelsPerUnitMultiplier
:
1
---
!u!114
&1049235724732627530
MonoBehaviour
:
m_ObjectHideFlags
:
0
m_CorrespondingSourceObject
:
{
fileID
:
0
}
m_PrefabInstance
:
{
fileID
:
0
}
m_PrefabAsset
:
{
fileID
:
0
}
m_GameObject
:
{
fileID
:
3744250235544716902
}
m_Enabled
:
1
m_EditorHideFlags
:
0
m_Script
:
{
fileID
:
11500000
,
guid
:
31a19414c41e5ae4aae2af33fee712f6
,
type
:
3
}
m_Name
:
m_EditorClassIdentifier
:
m_ShowMaskGraphic
:
1
---
!u!95
&6505739098132124525
Animator
:
serializedVersion
:
7
m_ObjectHideFlags
:
0
m_CorrespondingSourceObject
:
{
fileID
:
0
}
m_PrefabInstance
:
{
fileID
:
0
}
m_PrefabAsset
:
{
fileID
:
0
}
m_GameObject
:
{
fileID
:
3744250235544716902
}
m_Enabled
:
1
m_Avatar
:
{
fileID
:
0
}
m_Controller
:
{
fileID
:
9100000
,
guid
:
d9de229cfae180543b2d3755a04aad15
,
type
:
2
}
m_CullingMode
:
0
m_UpdateMode
:
0
m_ApplyRootMotion
:
0
m_LinearVelocityBlending
:
0
m_StabilizeFeet
:
0
m_AnimatePhysics
:
0
m_WarningMessage
:
m_HasTransformHierarchy
:
1
m_AllowConstantClipSamplingOptimization
:
1
m_KeepAnimatorStateOnDisable
:
0
m_WriteDefaultValuesOnDisable
:
0
My project/Assets/EasyTransitions/Transitions/CircleWipeYellow/CircleIN.prefab.meta
0 → 100644
View file @
c1d2bd70
fileFormatVersion: 2
guid: 8a11c1b430147c54da4a12a028abd208
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
My project/Assets/EasyTransitions/Transitions/CircleWipeYellow/CircleIn.anim
0 → 100644
View file @
c1d2bd70
%YAML
1.1
%TAG
!u!
tag:unity3d.com,2011:
---
!u!74
&7400000
AnimationClip
:
m_ObjectHideFlags
:
0
m_CorrespondingSourceObject
:
{
fileID
:
0
}
m_PrefabInstance
:
{
fileID
:
0
}
m_PrefabAsset
:
{
fileID
:
0
}
m_Name
:
CircleIn
serializedVersion
:
6
m_Legacy
:
0
m_Compressed
:
0
m_UseHighQualityCurve
:
1
m_RotationCurves
:
[]
m_CompressedRotationCurves
:
[]
m_EulerCurves
:
[]
m_PositionCurves
:
[]
m_ScaleCurves
:
[]
m_FloatCurves
:
-
curve
:
serializedVersion
:
2
m_Curve
:
-
serializedVersion
:
3
time
:
0
value
:
4000
inSlope
:
0
outSlope
:
0
tangentMode
:
136
weightedMode
:
0
inWeight
:
0.33333334
outWeight
:
0.33333334
-
serializedVersion
:
3
time
:
0.95
value
:
0
inSlope
:
0
outSlope
:
0
tangentMode
:
136
weightedMode
:
0
inWeight
:
0.33333334
outWeight
:
0.33333334
-
serializedVersion
:
3
time
:
1
value
:
0
inSlope
:
0
outSlope
:
0
tangentMode
:
136
weightedMode
:
0
inWeight
:
0.33333334
outWeight
:
0.33333334
m_PreInfinity
:
2
m_PostInfinity
:
2
m_RotationOrder
:
4
attribute
:
m_SizeDelta.x
path
:
classID
:
224
script
:
{
fileID
:
0
}
-
curve
:
serializedVersion
:
2
m_Curve
:
-
serializedVersion
:
3
time
:
0
value
:
4000
inSlope
:
0
outSlope
:
0
tangentMode
:
136
weightedMode
:
0
inWeight
:
0.33333334
outWeight
:
0.33333334
-
serializedVersion
:
3
time
:
0.95
value
:
0
inSlope
:
0
outSlope
:
0
tangentMode
:
136
weightedMode
:
0
inWeight
:
0.33333334
outWeight
:
0.33333334
-
serializedVersion
:
3
time
:
1
value
:
0
inSlope
:
0
outSlope
:
0
tangentMode
:
136
weightedMode
:
0
inWeight
:
0.33333334
outWeight
:
0.33333334
m_PreInfinity
:
2
m_PostInfinity
:
2
m_RotationOrder
:
4
attribute
:
m_SizeDelta.y
path
:
classID
:
224
script
:
{
fileID
:
0
}
m_PPtrCurves
:
[]
m_SampleRate
:
60
m_WrapMode
:
0
m_Bounds
:
m_Center
:
{
x
:
0
,
y
:
0
,
z
:
0
}
m_Extent
:
{
x
:
0
,
y
:
0
,
z
:
0
}
m_ClipBindingConstant
:
genericBindings
:
-
serializedVersion
:
2
path
:
0
attribute
:
1967290853
script
:
{
fileID
:
0
}
typeID
:
224
customType
:
28
isPPtrCurve
:
0
-
serializedVersion
:
2
path
:
0
attribute
:
38095219
script
:
{
fileID
:
0
}
typeID
:
224
customType
:
28
isPPtrCurve
:
0
pptrCurveMapping
:
[]
m_AnimationClipSettings
:
serializedVersion
:
2
m_AdditiveReferencePoseClip
:
{
fileID
:
0
}
m_AdditiveReferencePoseTime
:
0
m_StartTime
:
0
m_StopTime
:
1
m_OrientationOffsetY
:
0
m_Level
:
0
m_CycleOffset
:
0
m_HasAdditiveReferencePose
:
0
m_LoopTime
:
0
m_LoopBlend
:
0
m_LoopBlendOrientation
:
0
m_LoopBlendPositionY
:
0
m_LoopBlendPositionXZ
:
0
m_KeepOriginalOrientation
:
0
m_KeepOriginalPositionY
:
1
m_KeepOriginalPositionXZ
:
0
m_HeightFromFeet
:
0
m_Mirror
:
0
m_EditorCurves
:
-
curve
:
serializedVersion
:
2
m_Curve
:
-
serializedVersion
:
3
time
:
0
value
:
4000
inSlope
:
0
outSlope
:
0
tangentMode
:
136
weightedMode
:
0
inWeight
:
0.33333334
outWeight
:
0.33333334
-
serializedVersion
:
3
time
:
0.95
value
:
0
inSlope
:
0
outSlope
:
0
tangentMode
:
136
weightedMode
:
0
inWeight
:
0.33333334
outWeight
:
0.33333334
-
serializedVersion
:
3
time
:
1
value
:
0
inSlope
:
0
outSlope
:
0
tangentMode
:
136
weightedMode
:
0
inWeight
:
0.33333334
outWeight
:
0.33333334
m_PreInfinity
:
2
m_PostInfinity
:
2
m_RotationOrder
:
4
attribute
:
m_SizeDelta.x
path
:
classID
:
224
script
:
{
fileID
:
0
}
-
curve
:
serializedVersion
:
2
m_Curve
:
-
serializedVersion
:
3
time
:
0
value
:
4000
inSlope
:
0
outSlope
:
0
tangentMode
:
136
weightedMode
:
0
inWeight
:
0.33333334
outWeight
:
0.33333334
-
serializedVersion
:
3
time
:
0.95
value
:
0
inSlope
:
0
outSlope
:
0
tangentMode
:
136
weightedMode
:
0
inWeight
:
0.33333334
outWeight
:
0.33333334
-
serializedVersion
:
3
time
:
1
value
:
0
inSlope
:
0
outSlope
:
0
tangentMode
:
136
weightedMode
:
0
inWeight
:
0.33333334
outWeight
:
0.33333334
m_PreInfinity
:
2
m_PostInfinity
:
2
m_RotationOrder
:
4
attribute
:
m_SizeDelta.y
path
:
classID
:
224
script
:
{
fileID
:
0
}
m_EulerEditorCurves
:
[]
m_HasGenericRootTransform
:
0
m_HasMotionFloatCurves
:
0
m_Events
:
[]
My project/Assets/EasyTransitions/Transitions/CircleWipeYellow/CircleIn.anim.meta
0 → 100644
View file @
c1d2bd70
fileFormatVersion: 2
guid: 56c3cd9db57e2c64b8e0731da280e47a
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:
My project/Assets/EasyTransitions/Transitions/CircleWipeYellow/CircleOUT.controller
0 → 100644
View file @
c1d2bd70
%YAML
1.1
%TAG
!u!
tag:unity3d.com,2011:
---
!u!1102
&-7731583994473939599
AnimatorState
:
serializedVersion
:
6
m_ObjectHideFlags
:
1
m_CorrespondingSourceObject
:
{
fileID
:
0
}
m_PrefabInstance
:
{
fileID
:
0
}
m_PrefabAsset
:
{
fileID
:
0
}
m_Name
:
CircleOut
m_Speed
:
1
m_CycleOffset
:
0
m_Transitions
:
[]
m_StateMachineBehaviours
:
[]
m_Position
:
{
x
:
50
,
y
:
50
,
z
:
0
}
m_IKOnFeet
:
0
m_WriteDefaultValues
:
1
m_Mirror
:
0
m_SpeedParameterActive
:
0
m_MirrorParameterActive
:
0
m_CycleOffsetParameterActive
:
0
m_TimeParameterActive
:
0
m_Motion
:
{
fileID
:
7400000
,
guid
:
e26925c0f0bb7d74a8cd74b74a6e6133
,
type
:
2
}
m_Tag
:
m_SpeedParameter
:
m_MirrorParameter
:
m_CycleOffsetParameter
:
m_TimeParameter
:
---
!u!91
&9100000
AnimatorController
:
m_ObjectHideFlags
:
0
m_CorrespondingSourceObject
:
{
fileID
:
0
}
m_PrefabInstance
:
{
fileID
:
0
}
m_PrefabAsset
:
{
fileID
:
0
}
m_Name
:
CircleOUT
serializedVersion
:
5
m_AnimatorParameters
:
[]
m_AnimatorLayers
:
-
serializedVersion
:
5
m_Name
:
Base Layer
m_StateMachine
:
{
fileID
:
3635527894982078535
}
m_Mask
:
{
fileID
:
0
}
m_Motions
:
[]
m_Behaviours
:
[]
m_BlendingMode
:
0
m_SyncedLayerIndex
:
-1
m_DefaultWeight
:
0
m_IKPass
:
0
m_SyncedLayerAffectsTiming
:
0
m_Controller
:
{
fileID
:
9100000
}
---
!u!1107
&3635527894982078535
AnimatorStateMachine
:
serializedVersion
:
6
m_ObjectHideFlags
:
1
m_CorrespondingSourceObject
:
{
fileID
:
0
}
m_PrefabInstance
:
{
fileID
:
0
}
m_PrefabAsset
:
{
fileID
:
0
}
m_Name
:
Base Layer
m_ChildStates
:
-
serializedVersion
:
1
m_State
:
{
fileID
:
-7731583994473939599
}
m_Position
:
{
x
:
200
,
y
:
0
,
z
:
0
}
m_ChildStateMachines
:
[]
m_AnyStateTransitions
:
[]
m_EntryTransitions
:
[]
m_StateMachineTransitions
:
{}
m_StateMachineBehaviours
:
[]
m_AnyStatePosition
:
{
x
:
50
,
y
:
20
,
z
:
0
}
m_EntryPosition
:
{
x
:
50
,
y
:
120
,
z
:
0
}
m_ExitPosition
:
{
x
:
800
,
y
:
120
,
z
:
0
}
m_ParentStateMachinePosition
:
{
x
:
800
,
y
:
20
,
z
:
0
}
m_DefaultState
:
{
fileID
:
-7731583994473939599
}
My project/Assets/EasyTransitions/Transitions/CircleWipeYellow/CircleOUT.controller.meta
0 → 100644
View file @
c1d2bd70
fileFormatVersion: 2
guid: 44b0fae03633f2e4cb299e4ebf4c2005
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 9100000
userData:
assetBundleName:
assetBundleVariant:
My project/Assets/EasyTransitions/Transitions/CircleWipeYellow/CircleOUT.prefab
0 → 100644
View file @
c1d2bd70
%YAML
1.1
%TAG
!u!
tag:unity3d.com,2011:
---
!u!1
&1249853659853146663
GameObject
:
m_ObjectHideFlags
:
0
m_CorrespondingSourceObject
:
{
fileID
:
0
}
m_PrefabInstance
:
{
fileID
:
0
}
m_PrefabAsset
:
{
fileID
:
0
}
serializedVersion
:
6
m_Component
:
-
component
:
{
fileID
:
2141563140782837367
}
-
component
:
{
fileID
:
4145577395262098412
}
m_Layer
:
5
m_Name
:
CircleOUT
m_TagString
:
Untagged
m_Icon
:
{
fileID
:
2800000
,
guid
:
0a9be0e727574c34d9695b80b72cd877
,
type
:
3
}
m_NavMeshLayer
:
0
m_StaticEditorFlags
:
0
m_IsActive
:
1
---
!u!224
&2141563140782837367
RectTransform
:
m_ObjectHideFlags
:
0
m_CorrespondingSourceObject
:
{
fileID
:
0
}
m_PrefabInstance
:
{
fileID
:
0
}
m_PrefabAsset
:
{
fileID
:
0
}
m_GameObject
:
{
fileID
:
1249853659853146663
}
m_LocalRotation
:
{
x
:
-0
,
y
:
-0
,
z
:
-0
,
w
:
1
}
m_LocalPosition
:
{
x
:
0
,
y
:
0
,
z
:
0
}
m_LocalScale
:
{
x
:
1
,
y
:
1
,
z
:
1
}
m_ConstrainProportionsScale
:
0
m_Children
:
-
{
fileID
:
1389609922629737571
}
m_Father
:
{
fileID
:
0
}
m_LocalEulerAnglesHint
:
{
x
:
0
,
y
:
0
,
z
:
0
}
m_AnchorMin
:
{
x
:
0
,
y
:
0
}
m_AnchorMax
:
{
x
:
1
,
y
:
1
}
m_AnchoredPosition
:
{
x
:
0
,
y
:
0
}
m_SizeDelta
:
{
x
:
0
,
y
:
0
}
m_Pivot
:
{
x
:
0.5
,
y
:
0.5
}
---
!u!222
&4145577395262098412
CanvasRenderer
:
m_ObjectHideFlags
:
0
m_CorrespondingSourceObject
:
{
fileID
:
0
}
m_PrefabInstance
:
{
fileID
:
0
}
m_PrefabAsset
:
{
fileID
:
0
}
m_GameObject
:
{
fileID
:
1249853659853146663
}
m_CullTransparentMesh
:
1
---
!u!1
&3630158743669971944
GameObject
:
m_ObjectHideFlags
:
0
m_CorrespondingSourceObject
:
{
fileID
:
0
}
m_PrefabInstance
:
{
fileID
:
0
}
m_PrefabAsset
:
{
fileID
:
0
}
serializedVersion
:
6
m_Component
:
-
component
:
{
fileID
:
1389609922629737571
}
-
component
:
{
fileID
:
265977753472327582
}
-
component
:
{
fileID
:
6725442676785990326
}
-
component
:
{
fileID
:
5704601290349139442
}
-
component
:
{
fileID
:
5280856268953975849
}
m_Layer
:
5
m_Name
:
Circle
m_TagString
:
Untagged
m_Icon
:
{
fileID
:
0
}
m_NavMeshLayer
:
0
m_StaticEditorFlags
:
0
m_IsActive
:
1
---
!u!224
&1389609922629737571
RectTransform
:
m_ObjectHideFlags
:
0
m_CorrespondingSourceObject
:
{
fileID
:
0
}
m_PrefabInstance
:
{
fileID
:
0
}
m_PrefabAsset
:
{
fileID
:
0
}
m_GameObject
:
{
fileID
:
3630158743669971944
}
m_LocalRotation
:
{
x
:
-0
,
y
:
-0
,
z
:
-0
,
w
:
1
}
m_LocalPosition
:
{
x
:
0
,
y
:
0
,
z
:
0
}
m_LocalScale
:
{
x
:
1
,
y
:
1
,
z
:
1
}
m_ConstrainProportionsScale
:
0
m_Children
:
-
{
fileID
:
8102041105475503462
}
m_Father
:
{
fileID
:
2141563140782837367
}
m_LocalEulerAnglesHint
:
{
x
:
0
,
y
:
0
,
z
:
0
}
m_AnchorMin
:
{
x
:
0.5
,
y
:
0.5
}
m_AnchorMax
:
{
x
:
0.5
,
y
:
0.5
}
m_AnchoredPosition
:
{
x
:
0
,
y
:
0
}
m_SizeDelta
:
{
x
:
1306.0024
,
y
:
1306.0024
}
m_Pivot
:
{
x
:
0.5
,
y
:
0.5
}
---
!u!222
&265977753472327582
CanvasRenderer
:
m_ObjectHideFlags
:
0
m_CorrespondingSourceObject
:
{
fileID
:
0
}
m_PrefabInstance
:
{
fileID
:
0
}
m_PrefabAsset
:
{
fileID
:
0
}
m_GameObject
:
{
fileID
:
3630158743669971944
}
m_CullTransparentMesh
:
1
---
!u!114
&6725442676785990326
MonoBehaviour
:
m_ObjectHideFlags
:
0
m_CorrespondingSourceObject
:
{
fileID
:
0
}
m_PrefabInstance
:
{
fileID
:
0
}
m_PrefabAsset
:
{
fileID
:
0
}
m_GameObject
:
{
fileID
:
3630158743669971944
}
m_Enabled
:
1
m_EditorHideFlags
:
0
m_Script
:
{
fileID
:
11500000
,
guid
:
fe87c0e1cc204ed48ad3b37840f39efc
,
type
:
3
}
m_Name
:
m_EditorClassIdentifier
:
m_Material
:
{
fileID
:
0
}
m_Color
:
{
r
:
1
,
g
:
1
,
b
:
1
,
a
:
0.003921569
}
m_RaycastTarget
:
1
m_RaycastPadding
:
{
x
:
0
,
y
:
0
,
z
:
0
,
w
:
0
}
m_Maskable
:
1
m_OnCullStateChanged
:
m_PersistentCalls
:
m_Calls
:
[]
m_Sprite
:
{
fileID
:
21300000
,
guid
:
8142b3efe82b5904397d3e29ec3e5a1e
,
type
:
3
}
m_Type
:
0
m_PreserveAspect
:
0
m_FillCenter
:
1
m_FillMethod
:
4
m_FillAmount
:
1
m_FillClockwise
:
1
m_FillOrigin
:
0
m_UseSpriteMesh
:
0
m_PixelsPerUnitMultiplier
:
1
---
!u!114
&5704601290349139442
MonoBehaviour
:
m_ObjectHideFlags
:
0
m_CorrespondingSourceObject
:
{
fileID
:
0
}
m_PrefabInstance
:
{
fileID
:
0
}
m_PrefabAsset
:
{
fileID
:
0
}
m_GameObject
:
{
fileID
:
3630158743669971944
}
m_Enabled
:
1
m_EditorHideFlags
:
0
m_Script
:
{
fileID
:
11500000
,
guid
:
31a19414c41e5ae4aae2af33fee712f6
,
type
:
3
}
m_Name
:
m_EditorClassIdentifier
:
m_ShowMaskGraphic
:
1
---
!u!95
&5280856268953975849
Animator
:
serializedVersion
:
7
m_ObjectHideFlags
:
0
m_CorrespondingSourceObject
:
{
fileID
:
0
}
m_PrefabInstance
:
{
fileID
:
0
}
m_PrefabAsset
:
{
fileID
:
0
}
m_GameObject
:
{
fileID
:
3630158743669971944
}
m_Enabled
:
1
m_Avatar
:
{
fileID
:
0
}
m_Controller
:
{
fileID
:
9100000
,
guid
:
30ef97a731270634d91871af30e7affa
,
type
:
2
}
m_CullingMode
:
0
m_UpdateMode
:
0
m_ApplyRootMotion
:
0
m_LinearVelocityBlending
:
0
m_StabilizeFeet
:
0
m_AnimatePhysics
:
0
m_WarningMessage
:
m_HasTransformHierarchy
:
1
m_AllowConstantClipSamplingOptimization
:
1
m_KeepAnimatorStateOnDisable
:
0
m_WriteDefaultValuesOnDisable
:
0
---
!u!1
&4418937180279055598
GameObject
:
m_ObjectHideFlags
:
0
m_CorrespondingSourceObject
:
{
fileID
:
0
}
m_PrefabInstance
:
{
fileID
:
0
}
m_PrefabAsset
:
{
fileID
:
0
}
serializedVersion
:
6
m_Component
:
-
component
:
{
fileID
:
8102041105475503462
}
-
component
:
{
fileID
:
6571677461745954185
}
-
component
:
{
fileID
:
4365356750969482775
}
m_Layer
:
5
m_Name
:
BG
m_TagString
:
Untagged
m_Icon
:
{
fileID
:
0
}
m_NavMeshLayer
:
0
m_StaticEditorFlags
:
0
m_IsActive
:
1
---
!u!224
&8102041105475503462
RectTransform
:
m_ObjectHideFlags
:
0
m_CorrespondingSourceObject
:
{
fileID
:
0
}
m_PrefabInstance
:
{
fileID
:
0
}
m_PrefabAsset
:
{
fileID
:
0
}
m_GameObject
:
{
fileID
:
4418937180279055598
}
m_LocalRotation
:
{
x
:
-0
,
y
:
-0
,
z
:
-0
,
w
:
1
}
m_LocalPosition
:
{
x
:
0
,
y
:
0
,
z
:
0
}
m_LocalScale
:
{
x
:
1
,
y
:
1
,
z
:
1
}
m_ConstrainProportionsScale
:
0
m_Children
:
[]
m_Father
:
{
fileID
:
1389609922629737571
}
m_LocalEulerAnglesHint
:
{
x
:
0
,
y
:
0
,
z
:
0
}
m_AnchorMin
:
{
x
:
0.5
,
y
:
0.5
}
m_AnchorMax
:
{
x
:
0.5
,
y
:
0.5
}
m_AnchoredPosition
:
{
x
:
0
,
y
:
0
}
m_SizeDelta
:
{
x
:
5000
,
y
:
5000
}
m_Pivot
:
{
x
:
0.5
,
y
:
0.5
}
---
!u!222
&6571677461745954185
CanvasRenderer
:
m_ObjectHideFlags
:
0
m_CorrespondingSourceObject
:
{
fileID
:
0
}
m_PrefabInstance
:
{
fileID
:
0
}
m_PrefabAsset
:
{
fileID
:
0
}
m_GameObject
:
{
fileID
:
4418937180279055598
}
m_CullTransparentMesh
:
1
---
!u!114
&4365356750969482775
MonoBehaviour
:
m_ObjectHideFlags
:
0
m_CorrespondingSourceObject
:
{
fileID
:
0
}
m_PrefabInstance
:
{
fileID
:
0
}
m_PrefabAsset
:
{
fileID
:
0
}
m_GameObject
:
{
fileID
:
4418937180279055598
}
m_Enabled
:
1
m_EditorHideFlags
:
0
m_Script
:
{
fileID
:
11500000
,
guid
:
a798db68994659e4f9c30463aa5d5ae3
,
type
:
3
}
m_Name
:
m_EditorClassIdentifier
:
m_Material
:
{
fileID
:
0
}
m_Color
:
{
r
:
0.99607843
,
g
:
0.84313726
,
b
:
0
,
a
:
1
}
m_RaycastTarget
:
1
m_RaycastPadding
:
{
x
:
0
,
y
:
0
,
z
:
0
,
w
:
0
}
m_Maskable
:
1
m_OnCullStateChanged
:
m_PersistentCalls
:
m_Calls
:
[]
m_Sprite
:
{
fileID
:
0
}
m_Type
:
0
m_PreserveAspect
:
0
m_FillCenter
:
1
m_FillMethod
:
4
m_FillAmount
:
1
m_FillClockwise
:
1
m_FillOrigin
:
0
m_UseSpriteMesh
:
0
m_PixelsPerUnitMultiplier
:
1
My project/Assets/EasyTransitions/Transitions/CircleWipeYellow/CircleOUT.prefab.meta
0 → 100644
View file @
c1d2bd70
fileFormatVersion: 2
guid: deb5bd0b59632a4408edb7165fa7fd85
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
My project/Assets/EasyTransitions/Transitions/CircleWipeYellow/CircleOut.anim
0 → 100644
View file @
c1d2bd70
%YAML
1.1
%TAG
!u!
tag:unity3d.com,2011:
---
!u!74
&7400000
AnimationClip
:
m_ObjectHideFlags
:
0
m_CorrespondingSourceObject
:
{
fileID
:
0
}
m_PrefabInstance
:
{
fileID
:
0
}
m_PrefabAsset
:
{
fileID
:
0
}
m_Name
:
CircleOut
serializedVersion
:
6
m_Legacy
:
0
m_Compressed
:
0
m_UseHighQualityCurve
:
1
m_RotationCurves
:
[]
m_CompressedRotationCurves
:
[]
m_EulerCurves
:
[]
m_PositionCurves
:
[]
m_ScaleCurves
:
[]
m_FloatCurves
:
-
curve
:
serializedVersion
:
2
m_Curve
:
-
serializedVersion
:
3
time
:
0
value
:
0
inSlope
:
0
outSlope
:
0
tangentMode
:
136
weightedMode
:
0
inWeight
:
0.33333334
outWeight
:
0.33333334
-
serializedVersion
:
3
time
:
1
value
:
4000
inSlope
:
0
outSlope
:
0
tangentMode
:
136
weightedMode
:
0
inWeight
:
0.33333334
outWeight
:
0.33333334
m_PreInfinity
:
2
m_PostInfinity
:
2
m_RotationOrder
:
4
attribute
:
m_SizeDelta.x
path
:
classID
:
224
script
:
{
fileID
:
0
}
-
curve
:
serializedVersion
:
2
m_Curve
:
-
serializedVersion
:
3
time
:
0
value
:
0
inSlope
:
0
outSlope
:
0
tangentMode
:
136
weightedMode
:
0
inWeight
:
0.33333334
outWeight
:
0.33333334
-
serializedVersion
:
3
time
:
1
value
:
4000
inSlope
:
0
outSlope
:
0
tangentMode
:
136
weightedMode
:
0
inWeight
:
0.33333334
outWeight
:
0.33333334
m_PreInfinity
:
2
m_PostInfinity
:
2
m_RotationOrder
:
4
attribute
:
m_SizeDelta.y
path
:
classID
:
224
script
:
{
fileID
:
0
}
m_PPtrCurves
:
[]
m_SampleRate
:
60
m_WrapMode
:
0
m_Bounds
:
m_Center
:
{
x
:
0
,
y
:
0
,
z
:
0
}
m_Extent
:
{
x
:
0
,
y
:
0
,
z
:
0
}
m_ClipBindingConstant
:
genericBindings
:
-
serializedVersion
:
2
path
:
0
attribute
:
1967290853
script
:
{
fileID
:
0
}
typeID
:
224
customType
:
28
isPPtrCurve
:
0
-
serializedVersion
:
2
path
:
0
attribute
:
38095219
script
:
{
fileID
:
0
}
typeID
:
224
customType
:
28
isPPtrCurve
:
0
pptrCurveMapping
:
[]
m_AnimationClipSettings
:
serializedVersion
:
2
m_AdditiveReferencePoseClip
:
{
fileID
:
0
}
m_AdditiveReferencePoseTime
:
0
m_StartTime
:
0
m_StopTime
:
1
m_OrientationOffsetY
:
0
m_Level
:
0
m_CycleOffset
:
0
m_HasAdditiveReferencePose
:
0
m_LoopTime
:
0
m_LoopBlend
:
0
m_LoopBlendOrientation
:
0
m_LoopBlendPositionY
:
0
m_LoopBlendPositionXZ
:
0
m_KeepOriginalOrientation
:
0
m_KeepOriginalPositionY
:
1
m_KeepOriginalPositionXZ
:
0
m_HeightFromFeet
:
0
m_Mirror
:
0
m_EditorCurves
:
-
curve
:
serializedVersion
:
2
m_Curve
:
-
serializedVersion
:
3
time
:
0
value
:
0
inSlope
:
0
outSlope
:
0
tangentMode
:
136
weightedMode
:
0
inWeight
:
0.33333334
outWeight
:
0.33333334
-
serializedVersion
:
3
time
:
1
value
:
4000
inSlope
:
0
outSlope
:
0
tangentMode
:
136
weightedMode
:
0
inWeight
:
0.33333334
outWeight
:
0.33333334
m_PreInfinity
:
2
m_PostInfinity
:
2
m_RotationOrder
:
4
attribute
:
m_SizeDelta.x
path
:
classID
:
224
script
:
{
fileID
:
0
}
-
curve
:
serializedVersion
:
2
m_Curve
:
-
serializedVersion
:
3
time
:
0
value
:
0
inSlope
:
0
outSlope
:
0
tangentMode
:
136
weightedMode
:
0
inWeight
:
0.33333334
outWeight
:
0.33333334
-
serializedVersion
:
3
time
:
1
value
:
4000
inSlope
:
0
outSlope
:
0
tangentMode
:
136
weightedMode
:
0
inWeight
:
0.33333334
outWeight
:
0.33333334
m_PreInfinity
:
2
m_PostInfinity
:
2
m_RotationOrder
:
4
attribute
:
m_SizeDelta.y
path
:
classID
:
224
script
:
{
fileID
:
0
}
m_EulerEditorCurves
:
[]
m_HasGenericRootTransform
:
0
m_HasMotionFloatCurves
:
0
m_Events
:
[]
My project/Assets/EasyTransitions/Transitions/CircleWipeYellow/CircleOut.anim.meta
0 → 100644
View file @
c1d2bd70
fileFormatVersion: 2
guid: dfc65f9c8762b744aa1458c3b4b7b3cd
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:
My project/Assets/EasyTransitions/Transitions/CircleWipeYellow/CircleWipeYellow.asset
0 → 100644
View file @
c1d2bd70
%YAML
1.1
%TAG
!u!
tag:unity3d.com,2011:
---
!u!114
&11400000
MonoBehaviour
:
m_ObjectHideFlags
:
0
m_CorrespondingSourceObject
:
{
fileID
:
0
}
m_PrefabInstance
:
{
fileID
:
0
}
m_PrefabAsset
:
{
fileID
:
0
}
m_GameObject
:
{
fileID
:
0
}
m_Enabled
:
1
m_EditorHideFlags
:
0
m_Script
:
{
fileID
:
11500000
,
guid
:
bd0208933b0e3a443a9c1b5975c0fcb7
,
type
:
3
}
m_Name
:
CircleWipeYellow
m_EditorClassIdentifier
:
multiplyColorMaterial
:
{
fileID
:
2100000
,
guid
:
53171468e32441749b007c64337cd3db
,
type
:
2
}
addColorMaterial
:
{
fileID
:
2100000
,
guid
:
65ccb7b6cbefce14eb6f884cfc33ba91
,
type
:
2
}
refrenceResolution
:
{
x
:
1080
,
y
:
2400
}
blockRaycasts
:
1
colorTintMode
:
0
colorTint
:
{
r
:
1
,
g
:
1
,
b
:
1
,
a
:
1
}
isCutoutTransition
:
1
transitionSpeed
:
1
autoAdjustTransitionTime
:
1
flipX
:
0
flipY
:
0
transitionTime
:
1
destroyTime
:
1
transitionIn
:
{
fileID
:
3068447116946115738
,
guid
:
8a11c1b430147c54da4a12a028abd208
,
type
:
3
}
transitionOut
:
{
fileID
:
1249853659853146663
,
guid
:
deb5bd0b59632a4408edb7165fa7fd85
,
type
:
3
}
My project/Assets/EasyTransitions/Transitions/CircleWipeYellow/CircleWipeYellow.asset.meta
0 → 100644
View file @
c1d2bd70
fileFormatVersion: 2
guid: 91673b50629b1ae4f938d0b25135d085
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:
My project/Assets/PolygonSciFiCity/Materials/PolygonScifi_01_A.mat
View file @
c1d2bd70
...
...
@@ -30,7 +30,7 @@ Material:
-
_NORMALMAP
m_InvalidKeywords
:
[]
m_LightmapFlags
:
2
m_EnableInstancingVariants
:
0
m_EnableInstancingVariants
:
1
m_DoubleSidedGI
:
0
m_CustomRenderQueue
:
2000
stringTagMap
:
...
...
My project/Assets/Prefabs/CS/Env V2.prefab
View file @
c1d2bd70
This diff is collapsed.
Click to expand it.
My project/Assets/Prefabs/MCQ/Canvas.prefab
View file @
c1d2bd70
...
...
@@ -1000,7 +1000,7 @@ GameObject:
m_Icon
:
{
fileID
:
0
}
m_NavMeshLayer
:
0
m_StaticEditorFlags
:
0
m_IsActive
:
1
m_IsActive
:
0
---
!u!224
&4090891222954775928
RectTransform
:
m_ObjectHideFlags
:
0
...
...
@@ -1116,10 +1116,10 @@ RectTransform:
m_Children
:
[]
m_Father
:
{
fileID
:
5665338920870028329
}
m_LocalEulerAnglesHint
:
{
x
:
0
,
y
:
0
,
z
:
0
}
m_AnchorMin
:
{
x
:
0
,
y
:
1
}
m_AnchorMax
:
{
x
:
0
,
y
:
1
}
m_AnchoredPosition
:
{
x
:
22.572838
,
y
:
-25.96685
}
m_SizeDelta
:
{
x
:
0
,
y
:
51.9337
}
m_AnchorMin
:
{
x
:
0
,
y
:
0
}
m_AnchorMax
:
{
x
:
0
,
y
:
0
}
m_AnchoredPosition
:
{
x
:
22.572838
,
y
:
0
}
m_SizeDelta
:
{
x
:
51.9337
,
y
:
0
}
m_Pivot
:
{
x
:
0.5
,
y
:
0.5
}
---
!u!222
&1367268893384981932
CanvasRenderer
:
...
...
@@ -1201,8 +1201,8 @@ RectTransform:
m_GameObject
:
{
fileID
:
2131272021462045728
}
m_LocalRotation
:
{
x
:
-0
,
y
:
-0
,
z
:
-0
,
w
:
1
}
m_LocalPosition
:
{
x
:
0
,
y
:
0
,
z
:
0
}
m_LocalScale
:
{
x
:
0.5625
,
y
:
0.5625
,
z
:
0.5625
}
m_ConstrainProportionsScale
:
0
m_LocalScale
:
{
x
:
1
,
y
:
1
,
z
:
1
}
m_ConstrainProportionsScale
:
1
m_Children
:
-
{
fileID
:
5824319550593264318
}
m_Father
:
{
fileID
:
6025958000610179652
}
...
...
@@ -1210,7 +1210,7 @@ RectTransform:
m_AnchorMin
:
{
x
:
0
,
y
:
0
}
m_AnchorMax
:
{
x
:
1
,
y
:
1
}
m_AnchoredPosition
:
{
x
:
0
,
y
:
0
}
m_SizeDelta
:
{
x
:
840
,
y
:
1493.3333
}
m_SizeDelta
:
{
x
:
0
,
y
:
0
}
m_Pivot
:
{
x
:
0.5
,
y
:
0.5
}
---
!u!222
&6783536549641318717
CanvasRenderer
:
...
...
@@ -1529,7 +1529,7 @@ RectTransform:
m_AnchorMin
:
{
x
:
0.5
,
y
:
0.5
}
m_AnchorMax
:
{
x
:
0.5
,
y
:
0.5
}
m_AnchoredPosition
:
{
x
:
-0.00001657
,
y
:
-0.0000009536743
}
m_SizeDelta
:
{
x
:
1340
,
y
:
177.6696
}
m_SizeDelta
:
{
x
:
654.2058
,
y
:
177.6696
}
m_Pivot
:
{
x
:
0.5
,
y
:
0.5
}
---
!u!222
&6056363353609160832
CanvasRenderer
:
...
...
@@ -1562,7 +1562,7 @@ MonoBehaviour:
text
:
"
\u062C\u0627\u0631\u064A
\u062A\u062D\u0645\u064A\u0644
\u0627\u0644\u0644\u0639\u0628\u0629
"
fontStack
:
{
fileID
:
11400000
,
guid
:
0029e5efb4c7a12f1ac9136de794e6dc
,
type
:
2
}
appearance
:
{
fileID
:
11400000
,
guid
:
3a559cf5d653f05ea807e1be5655df92
,
type
:
2
}
fontSize
:
120
fontSize
:
72
baseDirection
:
2
wordWrap
:
1
horizontalAlignment
:
1
...
...
@@ -3222,10 +3222,10 @@ RectTransform:
m_Children
:
[]
m_Father
:
{
fileID
:
5665338920870028329
}
m_LocalEulerAnglesHint
:
{
x
:
0
,
y
:
0
,
z
:
0
}
m_AnchorMin
:
{
x
:
0
,
y
:
1
}
m_AnchorMax
:
{
x
:
0
,
y
:
1
}
m_AnchoredPosition
:
{
x
:
83.71851
,
y
:
-25.96685
}
m_SizeDelta
:
{
x
:
0
,
y
:
51.9337
}
m_AnchorMin
:
{
x
:
0
,
y
:
0
}
m_AnchorMax
:
{
x
:
0
,
y
:
0
}
m_AnchoredPosition
:
{
x
:
83.71851
,
y
:
0
}
m_SizeDelta
:
{
x
:
51.9337
,
y
:
0
}
m_Pivot
:
{
x
:
0.5
,
y
:
0.5
}
---
!u!222
&6044436298841298018
CanvasRenderer
:
...
...
@@ -3406,10 +3406,10 @@ RectTransform:
m_Children
:
[]
m_Father
:
{
fileID
:
5665338920870028329
}
m_LocalEulerAnglesHint
:
{
x
:
0
,
y
:
0
,
z
:
0
}
m_AnchorMin
:
{
x
:
0
,
y
:
1
}
m_AnchorMax
:
{
x
:
0
,
y
:
1
}
m_AnchoredPosition
:
{
x
:
267.15555
,
y
:
-25.96685
}
m_SizeDelta
:
{
x
:
0
,
y
:
51.9337
}
m_AnchorMin
:
{
x
:
0
,
y
:
0
}
m_AnchorMax
:
{
x
:
0
,
y
:
0
}
m_AnchoredPosition
:
{
x
:
267.15555
,
y
:
0
}
m_SizeDelta
:
{
x
:
51.9337
,
y
:
0
}
m_Pivot
:
{
x
:
0.5
,
y
:
0.5
}
---
!u!222
&7681831561278972478
CanvasRenderer
:
...
...
@@ -3793,10 +3793,10 @@ RectTransform:
m_Children
:
[]
m_Father
:
{
fileID
:
5665338920870028329
}
m_LocalEulerAnglesHint
:
{
x
:
0
,
y
:
0
,
z
:
0
}
m_AnchorMin
:
{
x
:
0
,
y
:
1
}
m_AnchorMax
:
{
x
:
0
,
y
:
1
}
m_AnchoredPosition
:
{
x
:
206.00986
,
y
:
-25.96685
}
m_SizeDelta
:
{
x
:
0
,
y
:
51.9337
}
m_AnchorMin
:
{
x
:
0
,
y
:
0
}
m_AnchorMax
:
{
x
:
0
,
y
:
0
}
m_AnchoredPosition
:
{
x
:
206.00986
,
y
:
0
}
m_SizeDelta
:
{
x
:
51.9337
,
y
:
0
}
m_Pivot
:
{
x
:
0.5
,
y
:
0.5
}
---
!u!222
&8749602556167845090
CanvasRenderer
:
...
...
@@ -4052,10 +4052,10 @@ RectTransform:
m_Children
:
[]
m_Father
:
{
fileID
:
5665338920870028329
}
m_LocalEulerAnglesHint
:
{
x
:
0
,
y
:
0
,
z
:
0
}
m_AnchorMin
:
{
x
:
0
,
y
:
1
}
m_AnchorMax
:
{
x
:
0
,
y
:
1
}
m_AnchoredPosition
:
{
x
:
144.8642
,
y
:
-25.96685
}
m_SizeDelta
:
{
x
:
0
,
y
:
51.9337
}
m_AnchorMin
:
{
x
:
0
,
y
:
0
}
m_AnchorMax
:
{
x
:
0
,
y
:
0
}
m_AnchoredPosition
:
{
x
:
144.8642
,
y
:
0
}
m_SizeDelta
:
{
x
:
51.9337
,
y
:
0
}
m_Pivot
:
{
x
:
0.5
,
y
:
0.5
}
---
!u!222
&8187631058268110602
CanvasRenderer
:
...
...
My project/Assets/Scenes/MCQ/MCQ.unity
View file @
c1d2bd70
...
...
@@ -119,6 +119,51 @@ NavMeshSettings:
debug
:
m_Flags
:
0
m_NavMeshData
:
{
fileID
:
0
}
---
!u!1
&113035168
GameObject
:
m_ObjectHideFlags
:
0
m_CorrespondingSourceObject
:
{
fileID
:
0
}
m_PrefabInstance
:
{
fileID
:
0
}
m_PrefabAsset
:
{
fileID
:
0
}
serializedVersion
:
6
m_Component
:
-
component
:
{
fileID
:
113035170
}
-
component
:
{
fileID
:
113035169
}
m_Layer
:
0
m_Name
:
TransitionManager
m_TagString
:
Untagged
m_Icon
:
{
fileID
:
0
}
m_NavMeshLayer
:
0
m_StaticEditorFlags
:
0
m_IsActive
:
1
---
!u!114
&113035169
MonoBehaviour
:
m_ObjectHideFlags
:
0
m_CorrespondingSourceObject
:
{
fileID
:
0
}
m_PrefabInstance
:
{
fileID
:
0
}
m_PrefabAsset
:
{
fileID
:
0
}
m_GameObject
:
{
fileID
:
113035168
}
m_Enabled
:
1
m_EditorHideFlags
:
0
m_Script
:
{
fileID
:
11500000
,
guid
:
61430b0086307cc4da3ccc8d39ae88da
,
type
:
3
}
m_Name
:
m_EditorClassIdentifier
:
Assembly-CSharp::EasyTransition.TransitionManager
transitionTemplate
:
{
fileID
:
5276914992623515724
,
guid
:
616d511151a6c554caddf1c754e4f91d
,
type
:
3
}
---
!u!4
&113035170
Transform
:
m_ObjectHideFlags
:
0
m_CorrespondingSourceObject
:
{
fileID
:
0
}
m_PrefabInstance
:
{
fileID
:
0
}
m_PrefabAsset
:
{
fileID
:
0
}
m_GameObject
:
{
fileID
:
113035168
}
serializedVersion
:
2
m_LocalRotation
:
{
x
:
0
,
y
:
0
,
z
:
0
,
w
:
1
}
m_LocalPosition
:
{
x
:
0
,
y
:
0
,
z
:
0
}
m_LocalScale
:
{
x
:
1
,
y
:
1
,
z
:
1
}
m_ConstrainProportionsScale
:
0
m_Children
:
[]
m_Father
:
{
fileID
:
0
}
m_LocalEulerAnglesHint
:
{
x
:
0
,
y
:
0
,
z
:
0
}
---
!u!1
&603037695
GameObject
:
m_ObjectHideFlags
:
0
...
...
@@ -668,6 +713,26 @@ PrefabInstance:
serializedVersion
:
3
m_TransformParent
:
{
fileID
:
603037698
}
m_Modifications
:
-
target
:
{
fileID
:
5575199186091687107
,
guid
:
34182cd83d7c1f44ebd466464e1a4db5
,
type
:
3
}
propertyPath
:
UVModule.mode
value
:
0
objectReference
:
{
fileID
:
0
}
-
target
:
{
fileID
:
5575199186091687107
,
guid
:
34182cd83d7c1f44ebd466464e1a4db5
,
type
:
3
}
propertyPath
:
UVModule.tilesX
value
:
4
objectReference
:
{
fileID
:
0
}
-
target
:
{
fileID
:
5575199186091687107
,
guid
:
34182cd83d7c1f44ebd466464e1a4db5
,
type
:
3
}
propertyPath
:
UVModule.tilesY
value
:
4
objectReference
:
{
fileID
:
0
}
-
target
:
{
fileID
:
5575199186091687107
,
guid
:
34182cd83d7c1f44ebd466464e1a4db5
,
type
:
3
}
propertyPath
:
UVModule.enabled
value
:
1
objectReference
:
{
fileID
:
0
}
-
target
:
{
fileID
:
5575199186091687107
,
guid
:
34182cd83d7c1f44ebd466464e1a4db5
,
type
:
3
}
propertyPath
:
UVModule.animationType
value
:
0
objectReference
:
{
fileID
:
0
}
-
target
:
{
fileID
:
6955428004947038011
,
guid
:
34182cd83d7c1f44ebd466464e1a4db5
,
type
:
3
}
propertyPath
:
m_LocalPosition.x
value
:
-0.08737
...
...
@@ -730,3 +795,4 @@ SceneRoots:
-
{
fileID
:
1878716307
}
-
{
fileID
:
2024194357
}
-
{
fileID
:
1015746448
}
-
{
fileID
:
113035170
}
My project/Assets/ScienceStreet/CS/Scripts/CsGameManager.cs
View file @
c1d2bd70
...
...
@@ -414,7 +414,7 @@ namespace com.al_arcade.cs
if
(
question
.
words
==
null
||
question
.
words
.
Length
==
0
)
return
;
ClearWordButtons
();
_groupFraming
.
CenterOffset
=
new
Vector2
(
0f
,
-
0.
1
f
);
_groupFraming
.
CenterOffset
=
new
Vector2
(
0f
,
-
0.
2
f
);
var
sentenceObj
=
new
GameObject
(
"FullQuestion"
);
sentenceObj
.
transform
.
SetParent
(
wordContainer
);
...
...
@@ -444,11 +444,9 @@ namespace com.al_arcade.cs
.
OnComplete
(()
=>
Destroy
(
child
.
gameObject
));
}
if
(
_targetGroup
.
Targets
.
Count
>
2
)
while
(
_targetGroup
.
Targets
.
Count
>
1
)
{
_targetGroup
.
RemoveMember
(
_targetGroup
.
Targets
[
1
].
Object
);
_targetGroup
.
RemoveMember
(
_targetGroup
.
Targets
[
1
].
Object
);
_targetGroup
.
RemoveMember
(
_targetGroup
.
Targets
[
1
].
Object
);
}
_groupFraming
.
CenterOffset
=
new
Vector2
(
0f
,
-
0.8f
);
...
...
My project/Assets/ScienceStreet/CS/Scripts/CsSentence.cs
View file @
c1d2bd70
This diff is collapsed.
Click to expand it.
My project/Assets/ScienceStreet/Features/Challenge/ChallengeManager.cs
View file @
c1d2bd70
...
...
@@ -113,7 +113,6 @@ public class ChallengeManager : MonoBehaviour
await
UniTask
.
WaitForSeconds
(
0.5f
);
baseGameManager
.
StartGame
();
currentGame
.
OnGameCompleted
+=
OnGameCompleted
;
}
...
...
My project/Assets/ScienceStreet/Features/Challenge/ChallengeManager.prefab
View file @
c1d2bd70
...
...
@@ -605,7 +605,7 @@ MonoBehaviour:
-
tf
-
mcq
transitionSettings
:
{
fileID
:
11400000
,
guid
:
057babd6f13132c449650d99e3c4e99c
,
type
:
2
}
winningPoints
:
1
00
winningPoints
:
5
00
timeSavedBonusMultiplier
:
2
penaltiesPerGame
:
c80000009600000064000000
challengeCanvas
:
{
fileID
:
3214242843135042761
}
...
...
My project/Assets/ScienceStreet/MCQ/Scripts/McqGameManager.cs
View file @
c1d2bd70
...
...
@@ -76,7 +76,7 @@ namespace com.al_arcade.mcq
var
filter
=
new
QuestionFilter
()
.
CurriculumId
(
0
)
.
SubjectId
(
0
)
.
GradeId
(
session
.
gradeId
)
.
GradeId
(
0
)
.
Count
(
session
.
questionCount
)
.
Shuffle
(
true
);
...
...
My project/Assets/ScienceStreet/Shared/Scripts/BaseGameManager.cs
View file @
c1d2bd70
...
...
@@ -73,6 +73,8 @@ namespace com.al_arcade.shared
// ─────────────────────────────────────────────────────────────────────
protected
virtual
void
Awake
()
{
onAnswerGiven
.
AddListener
(
HapticFeedback
);
// Subclasses that need extra Awake logic should call base.Awake()
// THEN do their own work.
}
...
...
@@ -283,6 +285,16 @@ namespace com.al_arcade.shared
}
protected
void
HapticFeedback
(
bool
correct
)
{
#if UNITY_ANDROID || UNITY_IOS
if
(
correct
)
HapticManager
.
LightTap
();
else
HapticManager
.
HeavyError
();
#endif
}
protected
virtual
IEnumerator
SharedVictorySequence
()
{
yield
break
;
}
protected
virtual
IEnumerator
SharedLoseSequence
()
{
yield
break
;
}
...
...
@@ -290,5 +302,11 @@ namespace com.al_arcade.shared
protected
virtual
IEnumerator
NoChallengeVictorySequence
()
{
yield
break
;
}
protected
virtual
IEnumerator
NoChallengeLoseSequence
()
{
yield
break
;
}
protected
void
Oestroy
()
{
onAnswerGiven
.
RemoveListener
(
HapticFeedback
);
}
}
}
My project/Assets/ScienceStreet/Shared/Scripts/HapticManager.cs
0 → 100644
View file @
c1d2bd70
using
UnityEngine
;
public
static
class
HapticManager
{
public
static
void
LightTap
()
{
// Only execute on actual mobile hardware
if
(
Application
.
isEditor
)
return
;
#if UNITY_ANDROID
VibrateAndroid
(
50
);
#elif UNITY_IOS
// Handheld.Vibrate is the only built-in option without a native plugin
Handheld
.
Vibrate
();
#endif
}
public
static
void
HeavyError
()
{
if
(
Application
.
isEditor
)
return
;
#if UNITY_ANDROID
VibrateAndroid
(
500
);
#elif UNITY_IOS
Handheld
.
Vibrate
();
#endif
}
private
static
void
VibrateAndroid
(
long
milliseconds
)
{
// CRITICAL: This preprocessor ensures the Editor never touches this block
#if UNITY_ANDROID && !UNITY_EDITOR
try
{
using
(
AndroidJavaClass
unityPlayer
=
new
AndroidJavaClass
(
"com.unity3d.player.UnityPlayer"
))
using
(
AndroidJavaObject
currentActivity
=
unityPlayer
.
GetStatic
<
AndroidJavaObject
>(
"currentActivity"
))
using
(
AndroidJavaObject
vibrator
=
currentActivity
.
Call
<
AndroidJavaObject
>(
"getSystemService"
,
"vibrator"
))
{
if
(
vibrator
!=
null
)
{
vibrator
.
Call
(
"vibrate"
,
milliseconds
);
}
}
}
catch
(
System
.
Exception
ex
)
{
Debug
.
LogWarning
(
$"Android Haptic Failed:
{
ex
.
Message
}
"
);
}
#endif
}
}
\ No newline at end of file
My project/Assets/ScienceStreet/Shared/Scripts/HapticManager.cs.meta
0 → 100644
View file @
c1d2bd70
fileFormatVersion: 2
guid: 275b09c0cab1fe9468d3006fe44f0cd9
\ No newline at end of file
My project/Assets/_Recovery/0 (1).unity
0 → 100644
View file @
c1d2bd70
This diff is collapsed.
Click to expand it.
My project/Assets/_Recovery/0 (1).unity.meta
0 → 100644
View file @
c1d2bd70
fileFormatVersion: 2
guid: c578a07c286e0b9458c2dfca9c5f4702
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
My project/Assets/_Recovery/0 (2).unity
0 → 100644
View file @
c1d2bd70
This diff is collapsed.
Click to expand it.
My project/Assets/_Recovery/0 (2).unity.meta
0 → 100644
View file @
c1d2bd70
fileFormatVersion: 2
guid: f6cd0726257dd5b498de7a587696aba0
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
My project/Assets/_Recovery/0.unity
0 → 100644
View file @
c1d2bd70
This diff is collapsed.
Click to expand it.
My project/Assets/_Recovery/0.unity.meta
0 → 100644
View file @
c1d2bd70
fileFormatVersion: 2
guid: b9d0cd1c5778d1b479da3c3b554ed822
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
My project/Assets/spritescience.png.meta
View file @
c1d2bd70
...
...
@@ -67,7 +67,7 @@ TextureImporter:
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion:
3
- serializedVersion:
4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
...
...
@@ -80,7 +80,7 @@ TextureImporter:
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion:
3
- serializedVersion:
4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
...
...
@@ -93,7 +93,7 @@ TextureImporter:
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion:
3
- serializedVersion:
4
buildTarget: WebGL
maxTextureSize: 2048
resizeAlgorithm: 0
...
...
@@ -106,10 +106,24 @@ TextureImporter:
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
customData:
physicsShape: []
bones: []
spriteID:
...
...
@@ -119,6 +133,8 @@ TextureImporter:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
...
...
My project/ProjectSettings/ProjectSettings.asset
View file @
c1d2bd70
...
...
@@ -554,13 +554,13 @@ PlayerSettings:
m_Automatic
:
1
-
m_BuildTarget
:
AndroidPlayer
m_APIs
:
150000000b000000
m_Automatic
:
0
m_Automatic
:
1
-
m_BuildTarget
:
WebGLSupport
m_APIs
:
0b000000
m_Automatic
:
0
-
m_BuildTarget
:
WindowsStandaloneSupport
m_APIs
:
1
50000001
200000002000000
m_Automatic
:
0
m_APIs
:
1200000002000000
m_Automatic
:
1
m_BuildTargetVRSettings
:
[]
m_DefaultShaderChunkSizeInMB
:
16
m_DefaultShaderChunkCount
:
0
...
...
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