Example #1
0
 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);
     }
 }
Example #2
0
 public void SetStateRepaired()
 {
     m_CurrentState = EDestructRepairState.Repaired;
 }
Example #3
0
 public void SetStateDestructing()
 {
     m_CurrentState = EDestructRepairState.Destructing;
 }