private void LoadValue(string name, object value) { try { switch (name) { case "name": SceneName = Convert.ToString(value); break; case "duration": Duration = Convert.ToSingle(value); break; case "fadein": FadeIn = Convert.ToSingle(value); break; case "fadeout": FadeOut = Convert.ToSingle(value); break; case "campath": { JsonList list = (JsonList)value; for (int i = 0; i < list.Count - 2; i += 3) { CameraPath.Add(new Vector3( Convert.ToSingle(list[i + 0]), Convert.ToSingle(list[i + 1]), Convert.ToSingle(list[i + 2]) )); } } break; } } catch (Exception e) { Debug.Log($"Slide property \"{name}\" cannot hold a value of type \"{value.GetType().Name}\"!"); Debug.LogException(e); } }
/// <summary> /// Creates a single slide from a JSON object. /// </summary> public SlideshowSlide(CustomSlideshow owner, JsonObj data) : this(owner) { Duration = -1f; foreach (var pair in data) { LoadValue(pair.Key, pair.Value); } if (SceneName == null) { throw new ArgumentException("Missing \"name\"!", nameof(data)); } if (Duration < 0f) { throw new ArgumentException("Missing or invalid \"duration\" value!", nameof(data)); } if (CameraPath.Count == 0) { CameraPath.Add(new Vector3(0f, 0f, 3f)); } }