void UpdateState(bool _aliveState)
    {
        OnVisibilityChange(_aliveState);

        MonoBehaviour[] scripts   = GetComponentsInChildren <MonoBehaviour>(true);
        Collider2D[]    colliders = GetComponentsInChildren <Collider2D>();
        Renderer[]      renderers = GetComponentsInChildren <Renderer>(true);
        for (int i = 0; i < scripts.Length; i++)
        {
            if (scripts[i].GetType().Name != networkId && scripts[i].GetType().Name != networkT &&
                scripts[i].GetType().Name != objectBehaviour &&
                scripts[i].GetType().Name != regTile && scripts[i].GetType().Name
                != inputController && scripts[i].GetType().Name
                != playerSync)
            {
                scripts[i].enabled = _aliveState;
            }
        }

        for (int i = 0; i < colliders.Length; i++)
        {
            colliders[i].enabled = _aliveState;
        }

        for (int i = 0; i < renderers.Length; i++)
        {
            renderers[i].enabled = _aliveState;
        }

        if (registerTile != null)
        {
            if (_aliveState)
            {
                EditModeControl eC = gameObject.GetComponent <EditModeControl>();
                if (eC != null)
                {
                    eC.Snap();
                }

                registerTile.UpdateTile(transform.position);
            }
            else
            {
                registerTile.RemoveTile();
            }
        }
    }