Beispiel #1
0
 // 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;
 }
Beispiel #2
0
    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;
            }
        }
    }