我想从另一个脚本中获取一个脚本中的值。我有两个脚本:
public class CargarDatos : MonoBehaviour
{
public string[] fechas;
public string dia;
IEnumerator Start()
{
UnityWebRequest www = UnityWebRequest.Get("http://localhost/Linx/Fechas.php");
yield return www.SendWebRequest();
string fechasDatos = www.downloadHandler.text;
print(fechasDatos);
fechas = fechasDatos.Split(';');
dia = GetValorDatos(fechas[0], "Dia:");
//print(dia);
}
string GetValorDatos(string datos, string index)
{
string valor = datos.Substring(datos.IndexOf(index)+index.Length);
if(valor.Contains("|"))
{
valor = valor.Remove(valor.IndexOf("|"));
}
return valor;
}
}
这里,如图所示,建立了到数据库的连接并获取值 (dia)。该脚本附加到主摄像头,因为我只希望它在游戏开始时连接。在这里,函数 print(dia) 返回正确的值,因此该脚本有效。
问题是当我尝试获取此脚本中的值时:
public class BarraExperiencia : MonoBehaviour
{
void Start()
{
print(GameObject.Find("Main Camera").GetComponent<CargarDatos>().dia);
}
}
这个脚本附在一个 slider 上,我试着打印它看它是否有效,但它没有打印任何东西。我做错了什么?谢谢。
最佳答案
我认为您正试图在协程完成之前获取“dia”值。尝试仅在协程完成后打印值。
此外,使用 FindObjectOfType 会更快获取组件。
关于c# - 如何从 Unity 中的另一个脚本(使用 IEnumerator)获取值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58843514/