private void OnEnable() { var update = new EggData.Update { EggType = egg.Data.EggType, CurrentFood = egg.Data.CurrentFood, CurrentState = egg.Data.CurrentState }; OnDataChanged(update); egg.OnUpdate += OnDataChanged; }
private void OnDataChanged(EggData.Update update) { if (update.EggType.HasValue) { _eggType = update.EggType.Value; var renderer = gameObject.GetComponent <MeshRenderer>(); Color [] color = new Color[3] { Color.black, Color.white, Color.green }; renderer.material.color = color[(int)_eggType]; } if (update.CurrentFood.HasValue) { _currentFood = update.CurrentFood.Value; } if (update.CurrentState.HasValue) { _currentState = update.CurrentState.Value; switch (_currentState) { case EggStateEnum.GOOD: _partGood.SetActive(true); _partBroken.SetActive(false); break; case EggStateEnum.BROKEN: _partGood.SetActive(false); _partBroken.SetActive(true); break; case EggStateEnum.EMPTY: _partGood.SetActive(false); _partBroken.SetActive(true); break; case EggStateEnum.VANISH: _partGood.SetActive(false); _partBroken.SetActive(true); StartCoroutine(Vanishing()); break; } } }