Commit a5ccaa97 authored by saad's avatar saad

Merge branch 'NewUI' into pt_minigames

# Conflicts:
#	My project/Assets/_Recovery/0.unity
#	My project/Assets/_Recovery/0.unity.meta
parents 4b75dcda c1d2bd70
...@@ -30,15 +30,18 @@ public class SupabaseAuthentication ...@@ -30,15 +30,18 @@ public class SupabaseAuthentication
try try
{ {
await client.Auth.RefreshSession(); await client.Auth.RefreshSession();
Debug.Log("[Auth] Session refreshed successfully" + $" (Auth ID at {client.Auth.CurrentUser.Id})");
return new Success(); return new Success();
} }
catch catch
{ {
Debug.LogError("[Auth] Session refresh failed, falling back to anonymous");
// Refresh failed — fall through to anonymous // Refresh failed — fall through to anonymous
} }
} }
var session = await client.Auth.SignInAnonymously(); var session = await client.Auth.SignInAnonymously();
Debug.Log("[Auth] Signed in anonymously" + $" (user ID: {session?.User.Id})");
return session?.User != null return session?.User != null
? new Success() ? new Success()
: "Anonymous sign in failed"; : "Anonymous sign in failed";
......
using System; using System;
using Cysharp.Threading.Tasks; using Cysharp.Threading.Tasks;
using EasyTransition;
using Supabase.Gotrue; using Supabase.Gotrue;
using Supabase.Gotrue.Interfaces; using Supabase.Gotrue.Interfaces;
using UnityEngine; using UnityEngine;
...@@ -13,6 +14,7 @@ public class AppRouter : MonoBehaviour ...@@ -13,6 +14,7 @@ public class AppRouter : MonoBehaviour
[Header("Splash UI (Boot Scene Only)")] [Header("Splash UI (Boot Scene Only)")]
[SerializeField] private GameObject splashScreen; [SerializeField] private GameObject splashScreen;
[SerializeField] private GameObject errorPanel; [SerializeField] private GameObject errorPanel;
public TransitionSettings transitionSettings;
private bool _booted; private bool _booted;
...@@ -26,6 +28,8 @@ public class AppRouter : MonoBehaviour ...@@ -26,6 +28,8 @@ public class AppRouter : MonoBehaviour
_instance = this; _instance = this;
DontDestroyOnLoad(gameObject); DontDestroyOnLoad(gameObject);
Application.targetFrameRate = Screen.currentResolution.refreshRate;
} }
private async void Start() private async void Start()
...@@ -38,8 +42,10 @@ public class AppRouter : MonoBehaviour ...@@ -38,8 +42,10 @@ public class AppRouter : MonoBehaviour
private async UniTask Boot() private async UniTask Boot()
{ {
// 1. Try cache first — instant // 1. Try cache first — instant
// var cached = UserService.Instance.LoadFromCache(); // var cached = UserService.Instance.LoadFromCache();
TransitionManager.Instance().onTransitionCutPointReached += HideSplash;
// 2. Init Supabase // 2. Init Supabase
bool ready = await SupabaseManager.Instance.Initialize(); bool ready = await SupabaseManager.Instance.Initialize();
...@@ -61,15 +67,22 @@ public class AppRouter : MonoBehaviour ...@@ -61,15 +67,22 @@ public class AppRouter : MonoBehaviour
} }
// 4. Refresh from network // 4. Refresh from network
var profileResult = await UserService.Instance.GetCurrentUser(); var profileResult = UserService.Instance.GetCurrentUser();
profileResult.Switch(
success => GoToHome(), var prof = await profileResult;
error =>
{ prof.Switch(
// if (cached != null) GoToHome(); // stale cache, still usable async success =>
GoToLogin(); {
} 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) ─────────────────────── // ─── Auth State Listener (Safety Net Only) ───────────────────────
...@@ -96,19 +109,13 @@ public class AppRouter : MonoBehaviour ...@@ -96,19 +109,13 @@ public class AppRouter : MonoBehaviour
// ─── Navigation ────────────────────────────────────────────────── // ─── Navigation ──────────────────────────────────────────────────
public async static void GoToLogin() public async static void GoToLogin()
{ {
if (SceneManager.GetActiveScene().name != "Login") TransitionManager.Instance().Transition("Login", _instance.transitionSettings, 0f);
await SceneManager.LoadSceneAsync("Login");
HideSplash();
} }
public async static void GoToHome() public async static void GoToHome()
{ {
if (SceneManager.GetActiveScene().name != "MainMenu") TransitionManager.Instance().Transition("MainMenu", _instance.transitionSettings, 0f);
await SceneManager.LoadSceneAsync("MainMenu");
UserService.Instance.StartListening(); UserService.Instance.StartListening();
HideSplash();
} }
public static async void Logout() public static async void Logout()
......
...@@ -4,15 +4,17 @@ using Cysharp.Threading.Tasks; ...@@ -4,15 +4,17 @@ using Cysharp.Threading.Tasks;
using OneOf; using OneOf;
using Supabase; 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(); private Client supabase => SupabaseManager.Instance.Supabase();
public async UniTask<OneOf<List<LeaderboardPlayerModel>, string>> LoadTop100Players() public async UniTask<OneOf<List<LeaderboardPlayerModel>, string>> LoadTop100Players()
{ {
try try
{ {
// Queries the 'leaderboard' view directly // Queries the 'leaderboard' view directly
var response = await supabase var response = await supabase
.From<LeaderboardPlayerModel>() .From<LeaderboardPlayerModel>()
......
...@@ -6,6 +6,7 @@ using Newtonsoft.Json; ...@@ -6,6 +6,7 @@ using Newtonsoft.Json;
using OneOf; using OneOf;
using Supabase.Realtime; using Supabase.Realtime;
using Supabase.Realtime.PostgresChanges; using Supabase.Realtime.PostgresChanges;
using Unity.VisualScripting;
using UnityEngine; using UnityEngine;
public class UserService public class UserService
...@@ -111,46 +112,47 @@ public class UserService ...@@ -111,46 +112,47 @@ public class UserService
try try
{ {
var client = SupabaseManager.Instance.Supabase(); 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) if (authUser == null)
return new ErrorResult("Not authenticated"); return new ErrorResult("Not authenticated");
var response = await client var response = await client
.From<User>() .From<User>()
.Where(x => x.Id == authUser.Id) .Where(x => x.Id == authUser.Id)
.Get(); .Single();
if (response?.Models == null || response.Models.Count == 0) if (response == null)
return new ErrorResult("Profile not found"); return new ErrorResult("User profile not found");
var oldUser = CurrentUser; CurrentUser = response;
CurrentUser = response.Models[0];
IsFromCache = false; IsFromCache = false;
SaveToCache(CurrentUser); // SaveToCache(CurrentUser);
if (oldUser != null && oldUser.Rank != CurrentUser.Rank) // if (oldUser != null && oldUser.Rank != CurrentUser.Rank)
OnRankChanged?.Invoke(oldUser.Rank, CurrentUser.Rank); // OnRankChanged?.Invoke(oldUser.Rank, CurrentUser.Rank);
if (oldUser != null && oldUser.Points != CurrentUser.Points) // if (oldUser != null && oldUser.Points != CurrentUser.Points)
OnPointsChanged?.Invoke(oldUser.Points, CurrentUser.Points); // OnPointsChanged?.Invoke(oldUser.Points, CurrentUser.Points);
OnUserChanged?.Invoke(CurrentUser); OnUserChanged?.Invoke(CurrentUser);
return new UserResult(CurrentUser); return new UserResult(CurrentUser);
} }
catch (Exception ex) catch (Exception ex)
{ {
Debug.LogError($"[UserService] GetCurrentUser failed: {ex.Message}"); Debug.LogError($"[UserService] GetCurrentUser failed: {ex.Message} + {ex.StackTrace}");
return new ErrorResult(ex.Message); return new ErrorResult(ex.Message);
} }
} }
public async UniTask<OneOf<UserResult, ErrorResult>> CreateProfile( public async UniTask<OneOf<UserResult, ErrorResult>> CreateProfile(
string username, string username,
string grade = null, int grade,
string sex = null, string sex,
string curriculum = null, int curriculum,
string term = null) int term)
{ {
try try
{ {
...@@ -180,11 +182,9 @@ public class UserService ...@@ -180,11 +182,9 @@ public class UserService
} }
public async UniTask<OneOf<UserResult, ErrorResult>> UpdateProfile( public async UniTask<OneOf<UserResult, ErrorResult>> UpdateProfile(
string username = null, string username,
string grade = null, int grade,
string sex = null, int term)
string curriculum = null,
string term = null)
{ {
try try
{ {
...@@ -193,16 +193,13 @@ public class UserService ...@@ -193,16 +193,13 @@ public class UserService
if (authUser == null) if (authUser == null)
return new ErrorResult("Not authenticated"); return new ErrorResult("Not authenticated");
var update = new User(); var update = CurrentUser.Clone() as User;
if (username != null) update.Username = username; if (username != null) update.Username = username;
if (grade != null) update.Grade = grade; update.Grade = grade;
if (sex != null) update.Sex = sex; update.Term = term;
if (curriculum != null) update.Curriculum = curriculum;
if (term != null) update.Term = term;
await client await client
.From<User>() .From<User>()
.Where(x => x.Id == authUser.Id)
.Update(update); .Update(update);
return await GetCurrentUser(); return await GetCurrentUser();
...@@ -223,6 +220,5 @@ public class UserService ...@@ -223,6 +220,5 @@ public class UserService
IsFromCache = false; IsFromCache = false;
PlayerPrefs.DeleteKey(CACHE_KEY); PlayerPrefs.DeleteKey(CACHE_KEY);
PlayerPrefs.Save(); PlayerPrefs.Save();
OnUserChanged?.Invoke(null);
} }
} }
\ No newline at end of file
using System; using System;
using Supabase.Postgrest.Attributes; using Supabase.Postgrest.Attributes;
using Supabase.Postgrest.Models; using Supabase.Postgrest.Models;
using System.Collections.Generic;
using System.Linq;
[Table("users")] [Table("users")]
public class User : BaseModel public class User : BaseModel, ICloneable
{ {
[PrimaryKey("id")] [PrimaryKey("id")]
public string Id { get; set; } public string Id { get; set; }
...@@ -24,14 +26,101 @@ public class User : BaseModel ...@@ -24,14 +26,101 @@ public class User : BaseModel
public DateTime UpdatedAt { get; set; } public DateTime UpdatedAt { get; set; }
[Column("grade")] [Column("grade")]
public string Grade { get; set; } public int Grade { get; set; }
[Column("sex")] [Column("sex")]
public string Sex { get; set; } public string Sex { get; set; }
[Column("curriculum")] [Column("curriculum")]
public string Curriculum { get; set; } public int Curriculum { get; set; }
[Column("term")] [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
...@@ -39,15 +39,16 @@ public class HomeController : MonoBehaviour ...@@ -39,15 +39,16 @@ public class HomeController : MonoBehaviour
nextRankProgressBar = root.Q<CustomProgressBar>("NextRankProgressBar"); nextRankProgressBar = root.Q<CustomProgressBar>("NextRankProgressBar");
UserService.Instance.OnUserChanged += OnUserChange; UserService.Instance.OnUserChanged += OnUserChange;
OnUserChange(UserService.Instance.CurrentUser);
challengeButton = root.Q<Button>("Challenge"); challengeButton = root.Q<Button>("Challenge");
challengeButton.clicked += OnChallengeButtonClicked; challengeButton.clicked += OnChallengeButtonClicked;
OnUserChange(UserService.Instance.CurrentUser);
} }
private void OnUserChange(User user) 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; username.text = user.Username;
xp.text = user.Points.ToString(); xp.text = user.Points.ToString();
......
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Threading; // Required for CancellationTokenSource
using Cysharp.Threading.Tasks; using Cysharp.Threading.Tasks;
using UnityEngine; using UnityEngine;
using UnityEngine.UIElements; using UnityEngine.UIElements;
public class LeaderboardController : MonoBehaviour public class LeaderboardController : MonoBehaviour, IDisposable
{ {
[SerializeField] private UIDocument leaderboardDocument; [SerializeField] private UIDocument leaderboardDocument;
private ScrollView leaderboardScrollView; private ScrollView leaderboardScrollView;
private VisualElement root;
// Stores the active cancellation token
private CancellationTokenSource _loadCts;
void Awake() void Awake()
{ {
var root = leaderboardDocument.rootVisualElement; root = leaderboardDocument.rootVisualElement;
leaderboardScrollView = root.Q<ScrollView>("Leaderboard"); 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(); LoadLeaderboard().Forget();
} }
private async UniTask LoadLeaderboard() 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 // Clear existing entries
leaderboardScrollView.Clear(); leaderboardScrollView.Clear();
// Load top 100 players try
await UniTask.WaitUntil(() => UserService.Instance.CurrentUser != null); {
var result = await LeaderboardService.Instance.LoadTop100Players(); // 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( result.Switch(
(List<LeaderboardPlayerModel> players) => (List<LeaderboardPlayerModel> players) =>
{
for (int i = 0; i < players.Count; i++)
{ {
if (i < 3) for (int i = 0; i < players.Count; i++)
ApplyTopThree(i, players[i]);
var player = players[i];
var entry = new CustomLeaderboardSlot
{ {
PlayerName = player.UserName, if (i < 3)
Rank = AppUtils.RankToArabic(player.Rank), ApplyTopThree(i, players[i]);
XP = player.Points.ToString(),
Index = player.Position.ToString(), var player = players[i];
IsOwner = player.Id == UserService.Instance.CurrentUser?.Id var entry = new CustomLeaderboardSlot
}; {
PlayerName = player.UserName,
leaderboardScrollView.Add(entry); 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) => }
{ catch (OperationCanceledException)
var errorLabel = new Label($"Error loading leaderboard: {error}"); {
leaderboardScrollView.Add(errorLabel); // Standard UniTask exception when an operation is cancelled. Safe to ignore.
} }
);
} }
private void ApplyTopThree(int index, LeaderboardPlayerModel player) private void ApplyTopThree(int index, LeaderboardPlayerModel player)
{ {
var root = leaderboardDocument.rootVisualElement.Q<VisualElement>("Leaderboard");
Label name; Label name;
Label xp; Label xp;
...@@ -84,6 +121,27 @@ public class LeaderboardController : MonoBehaviour ...@@ -84,6 +121,27 @@ public class LeaderboardController : MonoBehaviour
name.text = player.UserName; name.text = player.UserName;
xp.text = player.Points.ToString(); 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
...@@ -42,7 +42,21 @@ public class LoginController : MonoBehaviour ...@@ -42,7 +42,21 @@ public class LoginController : MonoBehaviour
return; 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 => signUp.Switch(user =>
{ {
AppRouter.GoToHome(); AppRouter.GoToHome();
......
...@@ -7,13 +7,26 @@ public class ProfileController : MonoBehaviour ...@@ -7,13 +7,26 @@ public class ProfileController : MonoBehaviour
private Label name; private Label name;
private Button logoutButton; private Button logoutButton;
private Button updateProfileButton;
private TextField UsernameLabel;
private DropdownField Grade;
private DropdownField Term;
void Awake() void Awake()
{ {
var root = profileDocument.rootVisualElement.Q("Settings"); var root = profileDocument.rootVisualElement.Q("Settings");
name = root.Q<Label>("Username"); name = root.Q<Label>("Username");
logoutButton = root.Q<Button>("LogoutButton"); 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; UserService.Instance.OnUserChanged += OnUserChange;
OnUserChange(UserService.Instance.CurrentUser); OnUserChange(UserService.Instance.CurrentUser);
...@@ -21,11 +34,27 @@ public class ProfileController : MonoBehaviour ...@@ -21,11 +34,27 @@ public class ProfileController : MonoBehaviour
private void OnUserChange(User user) private void OnUserChange(User user)
{ {
if (user == null) return;
name.text = user.Username; 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() private void OnDestroy()
{ {
UserService.Instance.OnUserChanged -= OnUserChange; UserService.Instance.OnUserChanged -= OnUserChange;
logoutButton.clicked -= AppRouter.Logout;
updateProfileButton.clicked -= UpdateProfile;
} }
} }
...@@ -23,26 +23,26 @@ ...@@ -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: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: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: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>
<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: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: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: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:VisualElement>
<ui:Label text="المرحلة الدراسية" class="text-bold-black" style="color: rgb(66, 66, 66);"/> <ui:Label text="المرحلة الدراسية" name="" 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(&quot;project://database/Assets/ALArcade/Hakwaty%20Font/TSHakwaty-DemiBold.otf?fileID=12800000&amp;guid=566b773a07b3d064aa1f4c6ef7b6f6fa&amp;type=3#TSHakwaty-DemiBold&quot;); -unity-text-generator: advanced; color: rgb(48, 48, 208);"/> <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(&quot;project://database/Assets/ALArcade/Hakwaty%20Font/TSHakwaty-DemiBold.otf?fileID=12800000&amp;guid=566b773a07b3d064aa1f4c6ef7b6f6fa&amp;type=3#TSHakwaty-DemiBold&quot;); -unity-text-generator: advanced; color: rgb(48, 48, 208); display: flex; opacity: 1;"/>
</ui:Button> </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: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: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: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:VisualElement>
<ui:Label text="المدرسة" class="text-bold-black" style="color: rgb(66, 66, 66);"/> <ui:Label text="الفصل الدراسي" name="" 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(&quot;project://database/Assets/ALArcade/Hakwaty%20Font/TSHakwaty-DemiBold.otf?fileID=12800000&amp;guid=566b773a07b3d064aa1f4c6ef7b6f6fa&amp;type=3#TSHakwaty-DemiBold&quot;); -unity-text-generator: advanced; color: rgb(48, 48, 208);"/> <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(&quot;project://database/Assets/ALArcade/Hakwaty%20Font/TSHakwaty-DemiBold.otf?fileID=12800000&amp;guid=566b773a07b3d064aa1f4c6ef7b6f6fa&amp;type=3#TSHakwaty-DemiBold&quot;); -unity-text-generator: advanced; color: rgb(48, 48, 208); display: flex; opacity: 1;"/>
</ui:Button> </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: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:Label text="حفظ" class="text-bold-black" style="color: rgb(255, 255, 255); font-size: 55px;"/>
</ui:Button> </ui:Button>
</ui:VisualElement> </ui:VisualElement>
...@@ -230,10 +230,10 @@ ...@@ -230,10 +230,10 @@
</ui:VisualElement> </ui:VisualElement>
</ui:VisualElement> </ui:VisualElement>
</ui:VisualElement> </ui:VisualElement>
<ui:VisualElement name="Leaderboard" style="flex-grow: 0; width: 100%; height: 100%;"> <ui:VisualElement name="LeaderBoardRoot" style="flex-grow: 0; width: 100%; height: 100%;">
<ui:VisualElement name="Header" style="height: 847px; margin-bottom: 54px; flex-shrink: 0;"> <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="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:ToggleButtonGroup label="">
<ui:Button text="الكل" language-direction="RTL" name="All" class="filter-rank-button"/> <ui:Button text="الكل" language-direction="RTL" name="All" class="filter-rank-button"/>
<ui:Button text="هاوي" language-direction="RTL" name="Geek" class="filter-rank-button"/> <ui:Button text="هاوي" language-direction="RTL" name="Geek" class="filter-rank-button"/>
......
...@@ -166,6 +166,7 @@ MonoBehaviour: ...@@ -166,6 +166,7 @@ MonoBehaviour:
m_EditorClassIdentifier: Assembly-CSharp::AppRouter m_EditorClassIdentifier: Assembly-CSharp::AppRouter
splashScreen: {fileID: 90795484556287063} splashScreen: {fileID: 90795484556287063}
errorPanel: {fileID: 0} errorPanel: {fileID: 0}
transitionSettings: {fileID: 11400000, guid: 91673b50629b1ae4f938d0b25135d085, type: 2}
--- !u!1 &787965442 --- !u!1 &787965442
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
...@@ -301,6 +302,51 @@ SpriteRenderer: ...@@ -301,6 +302,51 @@ SpriteRenderer:
m_SpriteTileMode: 0 m_SpriteTileMode: 0
m_WasSpriteAssigned: 1 m_WasSpriteAssigned: 1
m_SpriteSortPoint: 0 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 --- !u!1 &1239670919
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
...@@ -311,7 +357,6 @@ GameObject: ...@@ -311,7 +357,6 @@ GameObject:
m_Component: m_Component:
- component: {fileID: 1239670922} - component: {fileID: 1239670922}
- component: {fileID: 1239670921} - component: {fileID: 1239670921}
- component: {fileID: 1239670920}
- component: {fileID: 1239670923} - component: {fileID: 1239670923}
m_Layer: 0 m_Layer: 0
m_Name: Main Camera m_Name: Main Camera
...@@ -320,14 +365,6 @@ GameObject: ...@@ -320,14 +365,6 @@ GameObject:
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 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 --- !u!20 &1239670921
Camera: Camera:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
...@@ -717,3 +754,4 @@ SceneRoots: ...@@ -717,3 +754,4 @@ SceneRoots:
m_Roots: m_Roots:
- {fileID: 1239670922} - {fileID: 1239670922}
- {fileID: 284121876} - {fileID: 284121876}
- {fileID: 877571986}
...@@ -9,8 +9,6 @@ public class LoginPageAnimation : MonoBehaviour ...@@ -9,8 +9,6 @@ public class LoginPageAnimation : MonoBehaviour
void Start() void Start()
{ {
Application.targetFrameRate = 60;
ContantPanel = loginPage.rootVisualElement.Q<VisualElement>("ContantPanel"); ContantPanel = loginPage.rootVisualElement.Q<VisualElement>("ContantPanel");
ContantPanel.schedule.Execute(() => ContantPanel.schedule.Execute(() =>
......
fileFormatVersion: 2
guid: 84a2aeffecfa57d48a61c4a34884a826
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
%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:
fileFormatVersion: 2
guid: e89950a82bacc8749a9fc95f4ecfeb8c
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 9100000
userData:
assetBundleName:
assetBundleVariant:
%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
fileFormatVersion: 2
guid: 8a11c1b430147c54da4a12a028abd208
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
%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: []
fileFormatVersion: 2
guid: 56c3cd9db57e2c64b8e0731da280e47a
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:
%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}
fileFormatVersion: 2
guid: 44b0fae03633f2e4cb299e4ebf4c2005
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 9100000
userData:
assetBundleName:
assetBundleVariant:
%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
fileFormatVersion: 2
guid: deb5bd0b59632a4408edb7165fa7fd85
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
%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: []
fileFormatVersion: 2
guid: dfc65f9c8762b744aa1458c3b4b7b3cd
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:
%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}
fileFormatVersion: 2
guid: 91673b50629b1ae4f938d0b25135d085
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:
...@@ -30,7 +30,7 @@ Material: ...@@ -30,7 +30,7 @@ Material:
- _NORMALMAP - _NORMALMAP
m_InvalidKeywords: [] m_InvalidKeywords: []
m_LightmapFlags: 2 m_LightmapFlags: 2
m_EnableInstancingVariants: 0 m_EnableInstancingVariants: 1
m_DoubleSidedGI: 0 m_DoubleSidedGI: 0
m_CustomRenderQueue: 2000 m_CustomRenderQueue: 2000
stringTagMap: stringTagMap:
......
This diff is collapsed.
...@@ -1000,7 +1000,7 @@ GameObject: ...@@ -1000,7 +1000,7 @@ GameObject:
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 0
--- !u!224 &4090891222954775928 --- !u!224 &4090891222954775928
RectTransform: RectTransform:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
...@@ -1116,10 +1116,10 @@ RectTransform: ...@@ -1116,10 +1116,10 @@ RectTransform:
m_Children: [] m_Children: []
m_Father: {fileID: 5665338920870028329} m_Father: {fileID: 5665338920870028329}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 22.572838, y: -25.96685} m_AnchoredPosition: {x: 22.572838, y: 0}
m_SizeDelta: {x: 0, y: 51.9337} m_SizeDelta: {x: 51.9337, y: 0}
m_Pivot: {x: 0.5, y: 0.5} m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &1367268893384981932 --- !u!222 &1367268893384981932
CanvasRenderer: CanvasRenderer:
...@@ -1201,8 +1201,8 @@ RectTransform: ...@@ -1201,8 +1201,8 @@ RectTransform:
m_GameObject: {fileID: 2131272021462045728} m_GameObject: {fileID: 2131272021462045728}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0.5625, y: 0.5625, z: 0.5625} m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0 m_ConstrainProportionsScale: 1
m_Children: m_Children:
- {fileID: 5824319550593264318} - {fileID: 5824319550593264318}
m_Father: {fileID: 6025958000610179652} m_Father: {fileID: 6025958000610179652}
...@@ -1210,7 +1210,7 @@ RectTransform: ...@@ -1210,7 +1210,7 @@ RectTransform:
m_AnchorMin: {x: 0, y: 0} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1} m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0} 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} m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &6783536549641318717 --- !u!222 &6783536549641318717
CanvasRenderer: CanvasRenderer:
...@@ -1530,7 +1530,7 @@ RectTransform: ...@@ -1530,7 +1530,7 @@ RectTransform:
m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: -0.00001657, y: -0.0000009536743} 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} m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &6056363353609160832 --- !u!222 &6056363353609160832
CanvasRenderer: CanvasRenderer:
...@@ -1563,7 +1563,7 @@ MonoBehaviour: ...@@ -1563,7 +1563,7 @@ MonoBehaviour:
text: "\u062C\u0627\u0631\u064A \u062A\u062D\u0645\u064A\u0644 \u0627\u0644\u0644\u0639\u0628\u0629" text: "\u062C\u0627\u0631\u064A \u062A\u062D\u0645\u064A\u0644 \u0627\u0644\u0644\u0639\u0628\u0629"
fontStack: {fileID: 11400000, guid: 0029e5efb4c7a12f1ac9136de794e6dc, type: 2} fontStack: {fileID: 11400000, guid: 0029e5efb4c7a12f1ac9136de794e6dc, type: 2}
appearance: {fileID: 11400000, guid: 3a559cf5d653f05ea807e1be5655df92, type: 2} appearance: {fileID: 11400000, guid: 3a559cf5d653f05ea807e1be5655df92, type: 2}
fontSize: 120 fontSize: 72
baseDirection: 2 baseDirection: 2
wordWrap: 1 wordWrap: 1
horizontalAlignment: 1 horizontalAlignment: 1
...@@ -3351,10 +3351,10 @@ RectTransform: ...@@ -3351,10 +3351,10 @@ RectTransform:
m_Children: [] m_Children: []
m_Father: {fileID: 5665338920870028329} m_Father: {fileID: 5665338920870028329}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 83.71851, y: -25.96685} m_AnchoredPosition: {x: 83.71851, y: 0}
m_SizeDelta: {x: 0, y: 51.9337} m_SizeDelta: {x: 51.9337, y: 0}
m_Pivot: {x: 0.5, y: 0.5} m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &6044436298841298018 --- !u!222 &6044436298841298018
CanvasRenderer: CanvasRenderer:
...@@ -3535,10 +3535,10 @@ RectTransform: ...@@ -3535,10 +3535,10 @@ RectTransform:
m_Children: [] m_Children: []
m_Father: {fileID: 5665338920870028329} m_Father: {fileID: 5665338920870028329}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 267.15555, y: -25.96685} m_AnchoredPosition: {x: 267.15555, y: 0}
m_SizeDelta: {x: 0, y: 51.9337} m_SizeDelta: {x: 51.9337, y: 0}
m_Pivot: {x: 0.5, y: 0.5} m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &7681831561278972478 --- !u!222 &7681831561278972478
CanvasRenderer: CanvasRenderer:
...@@ -3997,10 +3997,10 @@ RectTransform: ...@@ -3997,10 +3997,10 @@ RectTransform:
m_Children: [] m_Children: []
m_Father: {fileID: 5665338920870028329} m_Father: {fileID: 5665338920870028329}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 206.00986, y: -25.96685} m_AnchoredPosition: {x: 206.00986, y: 0}
m_SizeDelta: {x: 0, y: 51.9337} m_SizeDelta: {x: 51.9337, y: 0}
m_Pivot: {x: 0.5, y: 0.5} m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &8749602556167845090 --- !u!222 &8749602556167845090
CanvasRenderer: CanvasRenderer:
...@@ -4256,10 +4256,10 @@ RectTransform: ...@@ -4256,10 +4256,10 @@ RectTransform:
m_Children: [] m_Children: []
m_Father: {fileID: 5665338920870028329} m_Father: {fileID: 5665338920870028329}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 144.8642, y: -25.96685} m_AnchoredPosition: {x: 144.8642, y: 0}
m_SizeDelta: {x: 0, y: 51.9337} m_SizeDelta: {x: 51.9337, y: 0}
m_Pivot: {x: 0.5, y: 0.5} m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &8187631058268110602 --- !u!222 &8187631058268110602
CanvasRenderer: CanvasRenderer:
......
...@@ -119,6 +119,51 @@ NavMeshSettings: ...@@ -119,6 +119,51 @@ NavMeshSettings:
debug: debug:
m_Flags: 0 m_Flags: 0
m_NavMeshData: {fileID: 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 --- !u!1 &603037695
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
...@@ -668,6 +713,26 @@ PrefabInstance: ...@@ -668,6 +713,26 @@ PrefabInstance:
serializedVersion: 3 serializedVersion: 3
m_TransformParent: {fileID: 603037698} m_TransformParent: {fileID: 603037698}
m_Modifications: 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} - target: {fileID: 6955428004947038011, guid: 34182cd83d7c1f44ebd466464e1a4db5, type: 3}
propertyPath: m_LocalPosition.x propertyPath: m_LocalPosition.x
value: -0.08737 value: -0.08737
...@@ -730,3 +795,4 @@ SceneRoots: ...@@ -730,3 +795,4 @@ SceneRoots:
- {fileID: 1878716307} - {fileID: 1878716307}
- {fileID: 2024194357} - {fileID: 2024194357}
- {fileID: 1015746448} - {fileID: 1015746448}
- {fileID: 113035170}
...@@ -412,7 +412,7 @@ namespace com.al_arcade.cs ...@@ -412,7 +412,7 @@ namespace com.al_arcade.cs
if (question.words == null || question.words.Length == 0) return; if (question.words == null || question.words.Length == 0) return;
ClearWordButtons(); ClearWordButtons();
_groupFraming.CenterOffset = new Vector2(0f, -0.1f); _groupFraming.CenterOffset = new Vector2(0f, -0.2f);
var sentenceObj = new GameObject("FullQuestion"); var sentenceObj = new GameObject("FullQuestion");
sentenceObj.transform.SetParent(wordContainer); sentenceObj.transform.SetParent(wordContainer);
...@@ -442,11 +442,9 @@ namespace com.al_arcade.cs ...@@ -442,11 +442,9 @@ namespace com.al_arcade.cs
.OnComplete(() => Destroy(child.gameObject)); .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);
_targetGroup.RemoveMember(_targetGroup.Targets[1].Object);
} }
_groupFraming.CenterOffset = new Vector2(0f, -0.8f); _groupFraming.CenterOffset = new Vector2(0f, -0.8f);
......
...@@ -113,7 +113,6 @@ public class ChallengeManager : MonoBehaviour ...@@ -113,7 +113,6 @@ public class ChallengeManager : MonoBehaviour
await UniTask.WaitForSeconds(0.5f); await UniTask.WaitForSeconds(0.5f);
baseGameManager.StartGame(); baseGameManager.StartGame();
currentGame.OnGameCompleted += OnGameCompleted; currentGame.OnGameCompleted += OnGameCompleted;
} }
......
...@@ -605,7 +605,7 @@ MonoBehaviour: ...@@ -605,7 +605,7 @@ MonoBehaviour:
- tf - tf
- mcq - mcq
transitionSettings: {fileID: 11400000, guid: 057babd6f13132c449650d99e3c4e99c, type: 2} transitionSettings: {fileID: 11400000, guid: 057babd6f13132c449650d99e3c4e99c, type: 2}
winningPoints: 100 winningPoints: 500
timeSavedBonusMultiplier: 2 timeSavedBonusMultiplier: 2
penaltiesPerGame: c80000009600000064000000 penaltiesPerGame: c80000009600000064000000
challengeCanvas: {fileID: 3214242843135042761} challengeCanvas: {fileID: 3214242843135042761}
......
...@@ -80,7 +80,7 @@ namespace com.al_arcade.mcq ...@@ -80,7 +80,7 @@ namespace com.al_arcade.mcq
var filter = new QuestionFilter() var filter = new QuestionFilter()
.CurriculumId(0) .CurriculumId(0)
.SubjectId(0) .SubjectId(0)
.GradeId(session.gradeId) .GradeId(0)
.Count(session.questionCount) .Count(session.questionCount)
.Shuffle(true); .Shuffle(true);
......
...@@ -73,6 +73,8 @@ namespace com.al_arcade.shared ...@@ -73,6 +73,8 @@ namespace com.al_arcade.shared
// ───────────────────────────────────────────────────────────────────── // ─────────────────────────────────────────────────────────────────────
protected virtual void Awake() protected virtual void Awake()
{ {
onAnswerGiven.AddListener(HapticFeedback);
// Subclasses that need extra Awake logic should call base.Awake() // Subclasses that need extra Awake logic should call base.Awake()
// THEN do their own work. // THEN do their own work.
} }
...@@ -283,6 +285,16 @@ namespace com.al_arcade.shared ...@@ -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 SharedVictorySequence() { yield break; }
protected virtual IEnumerator SharedLoseSequence() { yield break; } protected virtual IEnumerator SharedLoseSequence() { yield break; }
...@@ -290,5 +302,11 @@ namespace com.al_arcade.shared ...@@ -290,5 +302,11 @@ namespace com.al_arcade.shared
protected virtual IEnumerator NoChallengeVictorySequence() { yield break; } protected virtual IEnumerator NoChallengeVictorySequence() { yield break; }
protected virtual IEnumerator NoChallengeLoseSequence() { yield break; } protected virtual IEnumerator NoChallengeLoseSequence() { yield break; }
protected void Oestroy()
{
onAnswerGiven.RemoveListener(HapticFeedback);
}
} }
} }
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
fileFormatVersion: 2
guid: 275b09c0cab1fe9468d3006fe44f0cd9
\ No newline at end of file
This diff is collapsed.
fileFormatVersion: 2
guid: c578a07c286e0b9458c2dfca9c5f4702
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
This diff is collapsed.
fileFormatVersion: 2
guid: f6cd0726257dd5b498de7a587696aba0
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
...@@ -67,7 +67,7 @@ TextureImporter: ...@@ -67,7 +67,7 @@ TextureImporter:
swizzle: 50462976 swizzle: 50462976
cookieLightType: 0 cookieLightType: 0
platformSettings: platformSettings:
- serializedVersion: 3 - serializedVersion: 4
buildTarget: DefaultTexturePlatform buildTarget: DefaultTexturePlatform
maxTextureSize: 2048 maxTextureSize: 2048
resizeAlgorithm: 0 resizeAlgorithm: 0
...@@ -80,7 +80,7 @@ TextureImporter: ...@@ -80,7 +80,7 @@ TextureImporter:
ignorePlatformSupport: 0 ignorePlatformSupport: 0
androidETC2FallbackOverride: 0 androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0 forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3 - serializedVersion: 4
buildTarget: Standalone buildTarget: Standalone
maxTextureSize: 2048 maxTextureSize: 2048
resizeAlgorithm: 0 resizeAlgorithm: 0
...@@ -93,7 +93,7 @@ TextureImporter: ...@@ -93,7 +93,7 @@ TextureImporter:
ignorePlatformSupport: 0 ignorePlatformSupport: 0
androidETC2FallbackOverride: 0 androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0 forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3 - serializedVersion: 4
buildTarget: WebGL buildTarget: WebGL
maxTextureSize: 2048 maxTextureSize: 2048
resizeAlgorithm: 0 resizeAlgorithm: 0
...@@ -106,10 +106,24 @@ TextureImporter: ...@@ -106,10 +106,24 @@ TextureImporter:
ignorePlatformSupport: 0 ignorePlatformSupport: 0
androidETC2FallbackOverride: 0 androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 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: spriteSheet:
serializedVersion: 2 serializedVersion: 2
sprites: [] sprites: []
outline: [] outline: []
customData:
physicsShape: [] physicsShape: []
bones: [] bones: []
spriteID: spriteID:
...@@ -119,6 +133,8 @@ TextureImporter: ...@@ -119,6 +133,8 @@ TextureImporter:
edges: [] edges: []
weights: [] weights: []
secondaryTextures: [] secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable: {} nameFileIdTable: {}
mipmapLimitGroupName: mipmapLimitGroupName:
pSDRemoveMatte: 0 pSDRemoveMatte: 0
......
...@@ -554,13 +554,13 @@ PlayerSettings: ...@@ -554,13 +554,13 @@ PlayerSettings:
m_Automatic: 1 m_Automatic: 1
- m_BuildTarget: AndroidPlayer - m_BuildTarget: AndroidPlayer
m_APIs: 150000000b000000 m_APIs: 150000000b000000
m_Automatic: 0 m_Automatic: 1
- m_BuildTarget: WebGLSupport - m_BuildTarget: WebGLSupport
m_APIs: 0b000000 m_APIs: 0b000000
m_Automatic: 0 m_Automatic: 0
- m_BuildTarget: WindowsStandaloneSupport - m_BuildTarget: WindowsStandaloneSupport
m_APIs: 150000001200000002000000 m_APIs: 1200000002000000
m_Automatic: 0 m_Automatic: 1
m_BuildTargetVRSettings: [] m_BuildTargetVRSettings: []
m_DefaultShaderChunkSizeInMB: 16 m_DefaultShaderChunkSizeInMB: 16
m_DefaultShaderChunkCount: 0 m_DefaultShaderChunkCount: 0
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment