Ich habe versucht, Reflexionen für einige Zeit jetzt und leider meine Bemühungen führen mich zu Fehlern, was ich zu tun versuche, ist das Feld einer ganzen Zahl von einem anderen Skript und ändern es, hier ist mein Code:Ich kann nicht herausfinden, wie SetValue mit Reflexionen
Mein erstes Skript
using UnityEngine;
using System.Collections;
public class GameInformation : MonoBehaviour
{
void Awake()
{
DontDestroyOnLoad(transform.gameObject);
}
//1 is bought while 0 is not bought
public static int TipJar;
}
Mein zweites Script
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using System.Collections.Generic;
using System;
public class Upgrades : MonoBehaviour
{
public GameInformation gio;
void Start()
{
gio = GameObject.Find("lol").GetComponent<GameInformation>();
Type myClassType = gio.GetType().GetField("TipJar").SetValue(gio, 1, null); //<-- Error
}
}
Irgendwelche Ideen? Entschuldigung für das Stellen einer nooby Frage ich lerne noch, wie man programmiert und danke im Voraus!
Ich würde wirklich empfehlen, statische und/oder öffentliche Felder zu verwenden. –
@ErikPhilips Ich mache das in einem Forloop und ich möchte die Referenz nicht einzeln schreiben, aber danke für die Antwort. – OddTuna