Skip to content

Commit 7cee5f3

Browse files
authored
Merge pull request #116 from android/refactor/general-cleanup-20260609-2
refactor: resolve obsolete APIs, optimize achievements, and modernize object lookups
2 parents 34b50ae + 6b78906 commit 7cee5f3

8 files changed

Lines changed: 77 additions & 53 deletions

File tree

trivialkart/trivialkart-unity/Assets/Scripts/Controller/Game/CarMove.cs

Lines changed: 24 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Copyright 2022 Google LLC
1+
// Copyright 2022 Google LLC
22
//
33
// Licensed under the Apache License, Version 2.0 (the "License");
44
// you may not use this file except in compliance with the License.
@@ -38,15 +38,13 @@ public class CarMove : MonoBehaviour
3838
private const float NoVelocity = 0.01f;
3939
private const float TurboVelocity = 1.5f;
4040

41-
private int _clickCounter;
42-
private float _firstClickTime;
43-
private const float ClickDelay = 0.15f;
4441

4542
private const int NORMAL_SPEED = 1;
4643
private const int TURBO_SPEED = 2;
4744

4845
// Achievement for going this far
49-
private const float ACHIEVEMENT_DISTANCE = 100.0f;
46+
private const float ACHIEVEMENT_DRIVE_DISTANCE = 100.0f;
47+
private bool _driveAchievementUnlocked = false;
5048

5149
private InputAction _garageAction;
5250
private InputAction _pgsAction;
@@ -58,10 +56,8 @@ public class CarMove : MonoBehaviour
5856

5957
private void Start()
6058
{
61-
_clickCounter = 0;
62-
_firstClickTime = 0f;
63-
_gameManger = FindObjectOfType<GameManager>();
64-
_pgsController = FindObjectOfType<PGSController>();
59+
_gameManger = FindFirstObjectByType<GameManager>();
60+
_pgsController = FindFirstObjectByType<PGSController>();
6561
// Get the carObj corresponding to the car game object the script attached to.
6662
_carObj = CarList.GetCarByName(carName);
6763
_rigidbody2D = GetComponent<Rigidbody2D>();
@@ -93,23 +89,31 @@ private void FixedUpdate()
9389
newDistance += GameDataController.GetGameData().distanceTraveled;
9490
GameDataController.GetGameData().distanceTraveled = newDistance;
9591
#if PLAY_GAMES_SERVICES
96-
CheckDistanceAchievement(newDistance);
92+
if (!_driveAchievementUnlocked)
93+
{
94+
CheckDistanceAchievement(newDistance);
95+
}
9796
#endif
9897
_odometerText.text = newDistance.ToString("N1", CultureInfo.CurrentCulture);
9998
}
10099

101100
#if PLAY_GAMES_SERVICES
102101
private void CheckDistanceAchievement(float newDistance)
103102
{
104-
if (_pgsController.CurrentSignInStatus == PGSController.PgsSigninStatus.PgsSigninLoggedIn)
103+
if (_pgsController != null &&
104+
newDistance >= ACHIEVEMENT_DRIVE_DISTANCE &&
105+
_pgsController.CurrentSignInStatus == PGSController.PgsSigninStatus.PgsSigninLoggedIn)
105106
{
106107
var achievementManager = _pgsController.AchievementManager;
107-
if (!achievementManager.GetAchievementUnlocked(
108-
PGSAchievementManager.TrivialKartAchievements.Tk_Achievement_Distance) &&
109-
newDistance >= ACHIEVEMENT_DISTANCE)
108+
if (achievementManager != null)
110109
{
111-
achievementManager.UnlockAchievement(
112-
PGSAchievementManager.TrivialKartAchievements.Tk_Achievement_Distance);
110+
if (!achievementManager.GetAchievementUnlocked(
111+
PGSAchievementManager.TrivialKartAchievements.Tk_Achievement_Drive))
112+
{
113+
achievementManager.UnlockAchievement(
114+
PGSAchievementManager.TrivialKartAchievements.Tk_Achievement_Drive);
115+
}
116+
_driveAchievementUnlocked = true;
113117
}
114118
}
115119
}
@@ -119,7 +123,10 @@ private void Update()
119123
{
120124
#if PLAY_GAMES_SERVICES
121125
// Checks to see if we are due to update the distance traveled leaderboard
122-
_pgsController.UpdateLeaderboard();
126+
if (_pgsController != null)
127+
{
128+
_pgsController.UpdateLeaderboard();
129+
}
123130
#endif
124131
// Use keys to control menu/gameplay
125132
if (_garageAction.WasPressedThisFrame())
@@ -174,7 +181,6 @@ private void ProcessClickAction(int clicks)
174181
break;
175182
}
176183
}
177-
_clickCounter = 0;
178184
}
179185

180186
private void Drive()

trivialkart/trivialkart-unity/Assets/Scripts/Controller/PGS/AchievementsPageController.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Copyright 2022 Google LLC
1+
// Copyright 2022 Google LLC
22
//
33
// Licensed under the Apache License, Version 2.0 (the "License");
44
// you may not use this file except in compliance with the License.
@@ -24,7 +24,7 @@ public class AchievementsPageController : MonoBehaviour
2424

2525
void Awake()
2626
{
27-
_pgsController = FindObjectOfType<PGSController>();
27+
_pgsController = FindFirstObjectByType<PGSController>();
2828
}
2929

3030
// Refresh the page when it becomes active
@@ -49,7 +49,7 @@ private void RefreshPage()
4949
#if PLAY_GAMES_SERVICES
5050
string achievementString = "Achievements\n";
5151
achievementString += GenerateAchievementString(
52-
PGSAchievementManager.TrivialKartAchievements.Tk_Achievement_Distance);
52+
PGSAchievementManager.TrivialKartAchievements.Tk_Achievement_Drive);
5353
achievementString += GenerateAchievementString(
5454
PGSAchievementManager.TrivialKartAchievements.Tk_Achievement_Truck);
5555
Text achievementText = this.achievementText.GetComponent<Text>();

trivialkart/trivialkart-unity/Assets/Scripts/Controller/PGS/FriendsPageController.cs

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Copyright 2022 Google LLC
1+
// Copyright 2022 Google LLC
22
//
33
// Licensed under the Apache License, Version 2.0 (the "License");
44
// you may not use this file except in compliance with the License.
@@ -178,15 +178,20 @@ private void LoadAdditionalFriends()
178178
// the string listing all the user's friends, comma-delimited
179179
private void AddFriendsFromList()
180180
{
181-
foreach (var friend in Social.localUser.friends)
181+
var localUser = PlayGamesPlatform.Instance.localUser;
182+
if (localUser != null && localUser.friends != null)
182183
{
183-
if (string.IsNullOrEmpty(_friendsList))
184+
foreach (var friend in localUser.friends)
184185
{
185-
_friendsList = friend.userName;
186-
}
187-
else
188-
{
189-
_friendsList += (", " + friend.userName);
186+
if (friend == null) continue;
187+
if (string.IsNullOrEmpty(_friendsList))
188+
{
189+
_friendsList = friend.userName;
190+
}
191+
else
192+
{
193+
_friendsList += (", " + friend.userName);
194+
}
190195
}
191196
}
192197
}

trivialkart/trivialkart-unity/Assets/Scripts/Controller/PGS/LeaderboardPageController.cs

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Copyright 2022 Google LLC
1+
// Copyright 2022 Google LLC
22
//
33
// Licensed under the Apache License, Version 2.0 (the "License");
44
// you may not use this file except in compliance with the License.
@@ -91,7 +91,7 @@ private void ReportDistanceLeaderboard()
9191
// an error condition
9292
_timeSinceLastLeaderboardUpdate = 0f;
9393
long reportedDistance = (long)GameDataController.GetGameData().distanceTraveled;
94-
Social.ReportScore(reportedDistance, GPGSIds.leaderboard_tk_leaderboard_distance,
94+
PlayGamesPlatform.Instance.ReportScore(reportedDistance, GPGSIds.leaderboard_tk_leaderboard_distance,
9595
(bool success) =>
9696
{
9797
if (success)
@@ -166,15 +166,15 @@ private void GenerateScoreStrings(Text lbText, LeaderboardScoreData data)
166166
IList<string> userIds = new List<string>();
167167
// Create list of userIds to use with LoadUsers to
168168
// try and retrieve user names
169-
foreach (IScore scores in data.Scores)
169+
foreach (PlayGamesScore scores in data.Scores)
170170
{
171171
userIds.Add(scores.userID);
172172
}
173173

174-
Social.LoadUsers(userIds.ToArray(), (users) =>
174+
PlayGamesPlatform.Instance.LoadUsers(userIds.ToArray(), (users) =>
175175
{
176-
foreach(IScore score in data.Scores) {
177-
IUserProfile user = FindUser(users, score.userID);
176+
foreach(PlayGamesScore score in data.Scores) {
177+
PlayGamesUserProfile user = FindUser(users, score.userID);
178178
string userName = (user != null) ? user.userName : "unknown";
179179
string scoreString = String.Format("#{0} - {1} by {2}\n",
180180
score.rank.ToString(), score.value.ToString(), userName);
@@ -185,11 +185,12 @@ private void GenerateScoreStrings(Text lbText, LeaderboardScoreData data)
185185
});
186186
}
187187

188-
private static IUserProfile FindUser(IUserProfile[] users, string userID)
188+
private static PlayGamesUserProfile FindUser(Array users, string userID)
189189
{
190-
foreach (IUserProfile user in users)
190+
if (users == null) return null;
191+
foreach (PlayGamesUserProfile user in users)
191192
{
192-
if (user.id.Equals(userID))
193+
if (user != null && user.id.Equals(userID))
193194
{
194195
return user;
195196
}

trivialkart/trivialkart-unity/Assets/Scripts/Controller/PGS/PGSAchievementManager.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ public class PGSAchievementManager : MonoBehaviour
2727
public enum TrivialKartAchievements
2828
{
2929
// Achievement for driving more than a certain distance
30-
Tk_Achievement_Distance = 0,
30+
Tk_Achievement_Drive = 0,
3131
// Achievement for purchasing the truck
3232
Tk_Achievement_Truck = 1
3333
}
@@ -108,8 +108,8 @@ public string GetAchievementName(TrivialKartAchievements achievementId)
108108
public void UnlockAchievement(TrivialKartAchievements achievementId)
109109
{
110110
#if PLAY_GAMES_SERVICES
111-
Social.ReportProgress(_achievementInfo[(int) achievementId].achievementId,
112-
100.0f, (bool success) => {
111+
PlayGamesPlatform.Instance.ReportProgress(_achievementInfo[(int) achievementId].achievementId,
112+
100.0, (bool success) => {
113113
if (success)
114114
{
115115
_achievementInfo[(int) achievementId].achievementUnlocked = true;

trivialkart/trivialkart-unity/Assets/Scripts/Controller/PurchaseController.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ private void Start()
2828
// Placeholder prices
2929
const float currentPrice = 0.01f;
3030
const string priceString = "$0.01";
31-
var uiPriceChangeController = FindObjectOfType<UIPriceChangeController>();
31+
var uiPriceChangeController = FindFirstObjectByType<UIPriceChangeController>();
3232
if (uiPriceChangeController != null)
3333
{
3434
foreach (var coin in CoinList.List)

trivialkart/trivialkart-unity/Assets/Scripts/GameManager.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ public void Awake()
9696
GameDataController.LoadGameData();
9797
_cloudLoadMessageActive = false;
9898
#if PLAY_GAMES_SERVICES
99-
_pgsController = FindObjectOfType<PGSController>();
99+
_pgsController = FindFirstObjectByType<PGSController>();
100100
_pgsController.SetLocalSaveDataReady();
101101
_cloudStatus = CloudStatus.CloudStatus_WaitingForInit;
102102
// Display a please wait message while PGS signin and cloud save

trivialkart/trivialkart-unity/Assets/Scripts/Objects/GameData.cs

Lines changed: 22 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Copyright 2022 Google LLC
1+
// Copyright 2022 Google LLC
22
//
33
// Licensed under the Apache License, Version 2.0 (the "License");
44
// you may not use this file except in compliance with the License.
@@ -62,8 +62,8 @@ public class GameData
6262
private const int InitialCoinAmount = 20;
6363
private const int TotalCarCount = 4;
6464
private const int TotalBackgroundCount = 2;
65-
private PlayerController _playerController = Object.FindObjectOfType<PlayerController>();
66-
private GameObject _backgroundImages = GameObject.Find("Background/backGroundImages").gameObject;
65+
private PlayerController _playerController;
66+
private GameObject _backgroundImages;
6767

6868

6969
public GameData()
@@ -125,7 +125,7 @@ public void IncreaseCoinsOwned(int increaseAmount)
125125

126126
private void UpdateCoinText()
127127
{
128-
Object.FindObjectOfType<StorePageController>().SetCoinsBasedOnGameData();
128+
Object.FindFirstObjectByType<StorePageController>().SetCoinsBasedOnGameData();
129129
}
130130

131131
// Update coins when player purchases coins.
@@ -147,7 +147,7 @@ public void PurchaseCar(CarList.Car car)
147147
}
148148

149149
carIndexToOwnership[(int) car.Name] = Ownership.Owned;
150-
Object.FindObjectOfType<CarStorePageController>()?.RefreshPage();
150+
Object.FindFirstObjectByType<CarStorePageController>()?.RefreshPage();
151151
}
152152

153153
#if PLAY_GAMES_SERVICES
@@ -157,7 +157,7 @@ private void CheckTruckAchievement(CarName carName)
157157
{
158158
if (carName == CarName.Truck)
159159
{
160-
var pgsController = Object.FindObjectOfType<PGSController>();
160+
var pgsController = Object.FindFirstObjectByType<PGSController>();
161161
if (pgsController.CurrentSignInStatus ==
162162
PGSController.PgsSigninStatus.PgsSigninLoggedIn)
163163
{
@@ -186,7 +186,11 @@ public bool CheckCarOwnership(CarList.Car car)
186186
public void UpdateCarInUse(CarList.Car targetCar)
187187
{
188188
carInUseName = targetCar.Name;
189-
_playerController.UpdateCarInUse();
189+
if (_playerController == null)
190+
{
191+
_playerController = Object.FindFirstObjectByType<PlayerController>();
192+
}
193+
_playerController?.UpdateCarInUse();
190194
}
191195

192196
// Check if the user owns a specific background.
@@ -201,9 +205,17 @@ public void UpdateBackgroundInUse(BackgroundList.Background targetBackground)
201205
{
202206
backgroundInUseName = targetBackground.Name;
203207

204-
foreach (Transform background in _backgroundImages.transform)
208+
if (_backgroundImages == null)
205209
{
206-
background.gameObject.GetComponent<SpriteRenderer>().sprite = targetBackground.ImageSprite;
210+
_backgroundImages = GameObject.Find("Background/backGroundImages");
211+
}
212+
213+
if (_backgroundImages != null)
214+
{
215+
foreach (Transform background in _backgroundImages.transform)
216+
{
217+
background.gameObject.GetComponent<SpriteRenderer>().sprite = targetBackground.ImageSprite;
218+
}
207219
}
208220
}
209221

@@ -228,6 +240,6 @@ public void UpdateSubscription(SubscriptionList.Subscription targetSubscription)
228240
UpdateBackgroundInUse(BackgroundList.MushroomBackground);
229241
}
230242

231-
Object.FindObjectOfType<SubscriptionStorePageController>()?.RefreshPage();
243+
Object.FindFirstObjectByType<SubscriptionStorePageController>()?.RefreshPage();
232244
}
233245
}

0 commit comments

Comments
 (0)