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(); } } }