Hi,
I use this Json to create dynamics buttons, but when I try to add listener on it, function “PlayVideoOrPhoto360” never called:
private void Processjson(string jsonString)
{
jsonvale = JsonMapper.ToObject(jsonString);
model.ID = new ArrayList ();
model.Icon = new ArrayList ();
model.Name = new ArrayList ();
model.UrlImage360 = new ArrayList ();
model.UrlVideo360 = new ArrayList ();
model.Info_en = new ArrayList ();
model.Info_fr = new ArrayList ();
model.Sound = new ArrayList ();
model.UrlImages = new ArrayList ();
model.PositionX = new ArrayList ();
model.PositionY = new ArrayList ();
model.PositionZ = new ArrayList ();
Debug.Log(jsonvale["items"].Count);
for(int i = 0; i<jsonvale["items"].Count; i++)
{
model.ID.Add(jsonvale["items"][i]["ID"].ToString());
model.Icon.Add(jsonvale["items"][i]["Icon"].ToString());
model.Name.Add(jsonvale["items"][i]["Name"].ToString());
model.UrlImage360.Add(jsonvale["items"][i]["UrlImage360"].ToString());
model.UrlVideo360.Add(jsonvale["items"][i]["UrlVideo360"].ToString());
model.Info_en.Add(jsonvale["items"][i]["Info_en"].ToString());
model.Info_fr.Add(jsonvale["items"][i]["Info_fr"].ToString());
model.Sound.Add(jsonvale["items"][i]["Sound"].ToString());
model.UrlImages.Add(jsonvale["items"][i]["UrlImages"].ToString());
model.PositionX.Add(jsonvale["items"][i]["PositionX"].ToString());
model.PositionY.Add(jsonvale["items"][i]["PositionY"].ToString());
model.PositionZ.Add(jsonvale["items"][i]["PositionZ"].ToString());
InstantiateHotspots(i);
}
}
private void InstantiateHotspots(int i)
{
hotspot.name = model.ID[i].ToString();
hotspot.GetComponentInChildren<TextMeshProUGUI>().text = model.Name[i].ToString();
if(GetInt(model.Icon[i].ToString(), 0) == 1){
hotspot.GetComponentInChildren<SpriteSwapper>().m_swapped = true;
} else {
hotspot.GetComponentInChildren<SpriteSwapper>().m_swapped = false;
}
Button tempButton = hotspot.GetComponent<Button>();
tempButton.onClick.AddListener(() => PlayVideoOrPhoto360(model.UrlVideo360[i].ToString()));
hotspot.SetActive(true);
Instantiate(hotspot, new Vector3(GetFloat(model.PositionX[i].ToString(),0), GetFloat(model.PositionY[i].ToString(),0), GetFloat(model.PositionZ[i].ToString(),0)), Quaternion.identity).transform.SetParent(this.transform);
}
public void PlayVideoOrPhoto360(string value){
Debug.Log("PlayVideo: "+value);
}
All hotspot was correctly created, positionned etc… but AddListener not work !
Any clue ?
Thanks