예제 #1
0
        private void DebugCommandAddHighScore(CommandArg[] args)
        {
            var entry = new ScoreEntryData()
            {
                name = args[0].String, score = args[1].Int
            };

            AddScoreToTable(entry);
        }
예제 #2
0
        // Private
        private void OnExit()
        {
            if (_newHighScorePanelObj.activeSelf)
            {
                var entry = new ScoreEntryData {
                    name = _highScoreNameInputField.text, score = _playerScoreSvar.value
                };

                _lastHighScoreEntryAchievedSvar.value = entry;

                _highScoreAchievedEvent.Invoke();
            }
        }
예제 #3
0
        private void Start()
        {
            var table = _leaderboardTableDataSvar.value.table;

            if (table != null)
            {
                _highestScoreEntry = table[0];
            }
            else
            {
                _highestScoreEntry = new ScoreEntryData()
                {
                    name = "", score = 0
                };
            }
        }
예제 #4
0
        // Private
        private void AddScoreToTable(ScoreEntryData scoreEntry)
        {
            const int MAX_ENTRIES = LeaderboardTableData.MAX_ENTRIES;

            var table = _leaderboardTableDataSvar.value.table;

            table.Add(new ScoreEntryData()
            {
                name = scoreEntry.name, score = scoreEntry.score
            });
            table.Sort();

            // Scores are sorted descending
            if (table.Count > MAX_ENTRIES)
            {
                table.RemoveRange(MAX_ENTRIES, table.Count - MAX_ENTRIES);
            }

            SaveToDevice();
        }
예제 #5
0
 // Public API
 public void Set(int position, ScoreEntryData scoreEntryData)
 {
     _positionText.text   = position.ToString();
     _playerNameText.text = scoreEntryData.name;
     _scoreText.text      = scoreEntryData.score.ToString();
 }