void Update() { if (m_CurrentState == EDestructRepairState.Destructing) { m_CurrentTime -= Time.deltaTime; if (m_CurrentTime <= 0f) { m_CurrentTime = 0f; m_CurrentState = EDestructRepairState.Destructed; OnDestructed.Invoke(); } m_MeshRenderer.material.SetFloat("_DissolveValue", m_CurrentTime / m_AnimTime); } else if (m_CurrentState == EDestructRepairState.Repairing) { m_CurrentTime += Time.deltaTime; if (m_CurrentTime >= m_AnimTime) { m_CurrentTime = m_AnimTime; m_CurrentState = EDestructRepairState.Repaired; OnRepaired.Invoke(); } m_MeshRenderer.material.SetFloat("_DissolveValue", m_CurrentTime / m_AnimTime); } }
public void SetStateRepaired() { m_CurrentState = EDestructRepairState.Repaired; }
public void SetStateDestructing() { m_CurrentState = EDestructRepairState.Destructing; }