public void SetState(ETileState state, bool overrideState = false) { if (!overrideState && state == _state) { return; } switch(state) { case ETileState.dirt: { _dirt.SetActive(true); _grass.SetActive(false); break; } case ETileState.grass: { _dirt.SetActive(false); _grass.SetActive(true); break; } } _state = state; }
/// <summary> /// Elimina el estado que recibe de su lista de materiales /// </summary> /// <param name="material">Estado a eliminar</param> public void RemoveState(ETileState state) { if (states.Contains(state)) { states.Remove(state); currentState = states[states.Count - 1]; } }
/// <summary> /// Devuelve el estado de la casilla al anterior o al original /// </summary> public void ResetState() { if (states.Count > 1) { currentState = states[states.Count - 2]; states.RemoveAt(states.Count - 1); } }
private void Awake() { materials = new List <Material>(); originalMaterial = GetComponent <Renderer>().material; materials.Add(originalMaterial); states = new List <ETileState>(); originalState = currentState; states.Add(currentState); }
/// <summary> /// Devuelve la casilla a su estado y material original vaciando los arrays /// </summary> public void BackToOriginal() { materials.Clear(); states.Clear(); currentState = originalState; states.Add(currentState); GetComponent <Renderer>().material = originalMaterial; materials.Add(originalMaterial); }
/// <summary> /// La funcion cambia el estado de la casilla /// </summary> /// <param name="newState"> ETileState estado que queremos aplicar a la casilla </param> public void ChangeState(ETileState newState) { states.Insert(states.Count, newState); currentState = newState; }