// Start is called before the first frame update void Start() { allEggs.Add(_entityId.Id, this); _id = _entityId.Id; _currentState = egg.Data.CurrentState; //stateMachine.CurrentState; _eggType = egg.Data.EggType; _currentFood = egg.Data.CurrentFood; }
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; } } }