- Home /
How to reference a variable itself? (not its value) (like pointer, but this is C#)
I have one script that exists across scenes and manages some automatic processes. I'll call this the "general script". I have another script type that has a new version for each scene. I'll call this the "specific script". I want the specific script to be able to create a TextMeshPro object and create a relationship to a variable in the general script. Then, as the general script runs, when the variable's value updates, it will update the text of the TextMeshPro object. I could do this by declaring a TextMeshPro object in the general script for every variable I might want to show/update in a specific scene, but it feels like there should be a cleaner way, such as creating a dictionary that can hold the display-value pairs as they are created in the specific script.
Concretely, the code would look something like this:
//General script
//...
internal float numberIMightDisplayAndUpdate;
Dictionary<TextMeshPro, {reference to a variable}> displayAssignments = new Dictionary<TextMeshPro, {reference to a variable}>();
void UpdateDisplays() {
foreach(KeyValuePair<TextMeshPro, {reference to a variable}> entry in displayAssignments) {
entry.Key.text = entry.Value.ToString();
}
}
And:
//Specific script
//...
TextMeshPro display1 = Instantiate(textMeshProPrefab);
GeneralScript.displayAssignments.Add(display1, {reference to numberIMightDisplayAndUpdate});
But in C# I'm not sure how to reference the float object rather than its value, and I've been a bit confused by some of the descriptions of pointers and ref values I've found elsewhere.
Your answer
Follow this Question
Related Questions
How to make a 3D Gui Text? 1 Answer
Cursor position on screen 1 Answer
How to get a list of all PointerEventData? 0 Answers
Change the material of a buttons in List and keep it by draging around the screen? 2 Answers
Cursor Toggle in Menu (UI) 1 Answer