This might be a super simple question, but for some reason I can't get it to work:
I have two scripts, both attached to the same GameObject.
One script has a dictionary:
public class RPG_Implementierung : MonoBehaviour { public Dictionary<string, string> StoryText = new Dictionary<string, string>(); void Start() { StoryText.Add("1", "This is the first Entry"); } } The other script wants to call that Dictionary. The method SendMessageToChat` is defined in this script and works well as long as it's not referencing the other script.
The first thing I tried didn't work, I get the Error: CS0120 An object reference is required for the non-static field, method, or property
public class GameManager : MonoBehaviour { void Update() { if (Input.GetKeyDown(KeyCode.Y)) { SendMessageToChat(RPG_Implementierung.StoryText["1"]); } } } I
this also doesn't work, it gives me the Error CS0119 'RPG_Implementierung' is a type, which is not valid in the given context
public class GameManager : MonoBehaviour { void Update() { if (Input.GetKeyDown(KeyCode.Y)) { SendMessageToChat(GetComponent(RPG_Implementierung).StoryText["1"]); } } } Can someone please tell me what I did wrong? In standard C# all I would have to do is to set the other class to public and then I can reference it and access it's objects, why doesn't this work in Unity?