hi, would anyone help me modify the code so that instead of typing the time that is displayed on the scoreboard it was captured at the end of the race? I do not know at what point I should throw it in and how to implement it. Help code dashboard in down Code (CSharp): using System.Collections; using System.Collections.Generic; using UnityEngine; using System.Linq; using UnityEngine.UI; public class PlayerTime { public string playerName; public string playerTime; public PlayerTime(string playerName, string playerTime) { this.playerName = playerName; this.playerTime = playerTime; } public string GetFormat() { return playerName + "~5~" + playerTime; } } public class TimeBoard : MonoBehaviour { public int timeCount = 10; [Header("SAVE PANEL")] public InputField inputName; public InputField inputTime; [Header("TIME DISPLAY")] public GameObject timeObject; public GameObject timeRoot; public Text textName, textTime; static TimeBoard timeBoard; static string separator = "~5~"; void Start() { timeBoard = this; } void Update() { if (Input.GetKeyDown(KeyCode.S)) { } if (Input.GetKeyDown(KeyCode.P)) { List<PlayerTime> playerTime = GetTime(); foreach (PlayerTime p in playerTime) { print(p.playerName + " " + p.playerTime); } } } public void SaveTimeNow() { SaveTime(inputName.text, inputTime.text); } public void ShowTime() { StartCoroutine(CoShowTime()); } IEnumerator CoShowTime() { while (timeRoot.transform.childCount > 0) { Destroy(timeRoot.transform.GetChild(0).gameObject); yield return null; } List<PlayerTime> playerTime = GetTime(); foreach (PlayerTime time in playerTime) { textName.text = time.playerName; textTime.text = time.playerTime.ToString(); GameObject instantiatedTime = Instantiate(timeObject); instantiatedTime.SetActive(true); instantiatedTime.transform.SetParent(timeRoot.transform); } } public static void SaveTime(string name, string time) { List<PlayerTime> playerTime = new List<PlayerTime>(); for (int i = 0; i < timeBoard.timeCount; i++) { if (PlayerPrefs.HasKey("Time" + i)) { string[] timeFormat = PlayerPrefs.GetString("Time" + i).Split(new string[] { separator }, System.StringSplitOptions.RemoveEmptyEntries); playerTime.Add(new PlayerTime(timeFormat[0], timeFormat[1])); } else { break; } } if (playerTime.Count < 1) { PlayerPrefs.SetString("Time0", name + separator + time); print("terpanggil"); return; } playerTime.Add(new PlayerTime(name, time)); playerTime = playerTime.OrderBy(o => o.playerTime).ToList(); for (int i = 0; i < timeBoard.timeCount; i++) { if (i >= playerTime.Count) { break; } PlayerPrefs.SetString("Time" + i, playerTime[i].GetFormat()); } } public List<PlayerTime> GetTime() { List<PlayerTime> playerTime = new List<PlayerTime>(); for (int i = 0; i < timeBoard.timeCount; i++) { if (PlayerPrefs.HasKey("Time" + i)) { string[] timeFormat = PlayerPrefs.GetString("Time" + i).Split(new string[] { separator }, System.StringSplitOptions.RemoveEmptyEntries); playerTime.Add(new PlayerTime(timeFormat[0], timeFormat[1])); } else { break; } } return playerTime; } } code from which I wants to capture time Code (CSharp): using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class LapComplete : MonoBehaviour { public GameObject LapCompleteTrig; public GameObject HalfLapTrig; public GameObject MinuteDisplay; public GameObject SecondDisplay; public GameObject MilliDisplay; public GameObject LapTimeBox; public GameObject LapCounter; public int LapsDone; public float RawTime; public GameObject RaceFinish; void Update() { if (LapsDone == 3) { RaceFinish.SetActive(true); } } void OnTriggerEnter() { LapsDone += 1; RawTime = PlayerPrefs.GetFloat("RawTime"); if (LapTimeManager.RawTime <= RawTime) { if (LapTimeManager.SecondCount <= 9) { SecondDisplay.GetComponent<Text>().text = "0" + LapTimeManager.SecondCount + "."; } else { SecondDisplay.GetComponent<Text>().text = "" + LapTimeManager.SecondCount + "."; } if (LapTimeManager.MinuteCount <= 9) { MinuteDisplay.GetComponent<Text>().text = "0" + LapTimeManager.MinuteCount + "."; } else { MinuteDisplay.GetComponent<Text>().text = "" + LapTimeManager.MinuteCount + "."; } MilliDisplay.GetComponent<Text>().text = "" + LapTimeManager.MilliCount; PlayerPrefs.SetFloat("RawTime", LapTimeManager.RawTime); } else { PlayerPrefs.SetFloat("RawTime", RawTime); } PlayerPrefs.SetInt("MinSave", LapTimeManager.MinuteCount); PlayerPrefs.SetInt("SecSave", LapTimeManager.SecondCount); PlayerPrefs.SetFloat("MilliSave", LapTimeManager.MilliCount); //PlayerPrefs.SetFloat("RawTime", LapTimeManager.RawTime); LapTimeManager.MinuteCount = 0; LapTimeManager.SecondCount = 0; LapTimeManager.MilliCount = 0; LapTimeManager.RawTime = 0; LapCounter.GetComponent<Text>().text = "" + LapsDone; HalfLapTrig.SetActive(true); LapCompleteTrig.SetActive(false); } } in case of anything I can send some photos from the application