private void UpdateState(bool _aliveState) { visibleState = _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 (CanBeDisabled(scripts[i])) { scripts[i].enabled = _aliveState; } } for (int i = 0; i < colliders.Length; i++) { colliders[i].enabled = _aliveState; } for (int i = 0; i < renderers.Length; i++) { SpriteRenderer sr = renderers[i] as SpriteRenderer; // Cast and check cast. // This is necessary because some renderers fail the cast. if (sr != null && !CanBeDisabled(sr)) { } else { renderers[i].enabled = _aliveState; } } if (registerTile != null) { if (_aliveState) { registerTile.UpdatePositionClient(); registerTile.UpdatePositionServer(); } else { registerTile.UnregisterClient(); registerTile.UnregisterServer(); } } }
public void DestroyingThisNow() { if (InData.DestroyQueueing) { InData.FlushConnectionAndUp(); FindPossibleConnections(); InData.FlushConnectionAndUp(); registerTile.UnregisterClient(); registerTile.UnregisterServer(); if (this != null) { ElectricalManager.Instance.electricalSync.StructureChange = true; InData.DestroyAuthorised = true; Despawn.ServerSingle(gameObject); } } }
/// Clientside /// Registers if unhidden, unregisters if hidden private void UpdateActiveStatusClient() { if (predictedState.Active) { registerTile.UpdatePositionClient(); } else { if (registerTile) { registerTile.UnregisterClient(); } } Renderer[] renderers = GetComponentsInChildren <Renderer>(true); for (int i = 0; i < renderers.Length; i++) { renderers[i].enabled = predictedState.Active; } }
/// Clientside /// Registers if unhidden, unregisters if hidden private void UpdateActiveStatusClient() { if (predictedState.Active) { registerTile.UpdatePositionClient(); } else { if (registerTile) { registerTile.UnregisterClient(); } } //Consider moving VisibleBehaviour functionality to CNT. Currently VB doesn't allow predictive object hiding, for example. Renderer[] renderers = GetComponentsInChildren <Renderer>(true); for (int i = 0; i < renderers.Length; i++) { renderers[i].enabled = predictedState.Active; } }