//Custom structure for Sample 3.
//Can also be converted to a class if more flexibility is required
public struct PlayerInfo
{
public string playerName;
public int playerScore;
}
public class Tuples : MonoBehaviour
{
[SerializeField] string athleteName;
[SerializeField] int athleteScore;
private void Start()
{
//Sample 1.
(string name1, int score1) = GetPlayerInfo();
Debug.Log($"Player: {name1}, Score {score1}");
//Sample 2.
GrabPlayerInfo(out string name2, out int score2);
Debug.Log($"Player: {name2}, Score {score2}");
//Sample 3.
PlayerInfo playerInfo = RetrievePlayerInfo();
Debug.Log($"Player: {playerInfo.playerName}, Score: {playerInfo.playerScore}");
}
//Sample 1. method
private (string, int) GetPlayerInfo()
{
string playerName = athleteName;
int playerScore = athleteScore;
return (playerName, playerScore);
}
//Sample 2. method
private void GrabPlayerInfo(out string playerName, out int playerScore)
{
playerName = athleteName;
playerScore = athleteScore;
}
//Sample 3. method
private PlayerInfo RetrievePlayerInfo()
{
PlayerInfo player = new()
{
playerName = athleteName,
playerScore = athleteScore
};
return player;
}
}






