private void FuncMain()
    {
        if (!m_isDeleted)
        {
            m_unbreakableTimer -= Time.get_deltaTime();
            m_actionCoolTimer  -= Time.get_deltaTime();
            if (m_timeCount >= m_aliveTime)
            {
                RequestDestroy(true);
            }
            else if (m_mineData.actionType == BulletData.BulletActionMine.ACTION_TYPE.REFLECT)
            {
                switch (reactionType)
                {
                case REACTION_TYPE.REFLECT:
                    if (m_actionCoolTimer <= 0f)
                    {
                        RequestReflect(true);
                    }
                    break;

                case REACTION_TYPE.DIRECTION_CHANGE:
                    if (m_actionCoolTimer <= 0f)
                    {
                        RequestReflect(false);
                    }
                    break;

                case REACTION_TYPE.EXPLODE:
                    if (hitObject != null && m_unbreakableTimer <= 0f)
                    {
                        bool isExplode = false;
                        if (!IsAvoidExplode(hitLayer) && IsLayerExplode(hitLayer))
                        {
                            isExplode = true;
                        }
                        if (m_attacker != null)
                        {
                            Enemy enemy = m_attacker as Enemy;
                            if (enemy != null && enemy.enemySender != null)
                            {
                                enemy.ActDestroyActionMine(objId, isExplode);
                                enemy.enemySender.OnDestroyActionMine(objId, isExplode);
                            }
                        }
                    }
                    break;
                }
                ResetHit();
            }
        }
    }