Пример #1
0
    public void RemoveCrowdControl(ConditionData.UnitCondition _type)
    {
        ConditionData removeItem = null;

        foreach (ConditionData c in unitConditionList) // 아니라면 foreach를 돌림
        {
            if (c.condition == _type)                  // 만약 군중제어상태가 같은 것이 있다면
            {
                removeItem = c;
                break;
            }
        }
        if (removeItem != null)
        {
            unitConditionList.Remove(removeItem);
            animator.SetInteger("condition", (int)GetCondition());
        }
    }
Пример #2
0
    void UpdateCondition(float deltaTime)
    { // 군중제어기시간 체크용 업데이트문
        ConditionData.UnitCondition bigCondition = ConditionData.UnitCondition.none;
        List <ConditionData>        removes      = new List <ConditionData>();

        if (unitConditionList.Count > 0)
        {
            foreach (ConditionData c in unitConditionList)
            {
                if (c.conditionTIme <= deltaTime)
                {
                    removes.Add(c);
                    if (c.onConditionChangeEvent != null)
                    {
                        c.onConditionChangeEvent();
                    }
                }
                else
                {
                    c.conditionTIme -= deltaTime;
                    if (bigCondition < c.condition)
                    {
                        bigCondition = c.condition;
                    }
                }
            }
            if (removes.Count > 0)
            {
                foreach (ConditionData c in removes)
                {
                    unitConditionList.Remove(c);
                }
                ConditionData topCondition = GetTopCondition();
                if (topCondition != null)
                {
                    animator.SetInteger("condition", (int)topCondition.condition);
                }
                else
                {
                    animator.SetInteger("condition", 0);
                }
            }
        }
    }
Пример #3
0
    public void AddCrowdControl(ConditionData.UnitCondition _type, float _ccTime = 1.0f, ConditionData.OnConditionChangeEvent _conditionEvent = null) // 군중제어상태를 추가
    {
        ConditionData condition = new ConditionData();                                                                                                // 컨디션데이터를만들고

        condition.condition              = _type;                                                                                                     // 채워줌
        condition.conditionTIme          = _ccTime;
        condition.onConditionChangeEvent = _conditionEvent;
        foreach (ConditionData c in unitConditionList) // 아니라면 foreach를 돌림
        {
            if (c.condition == _type)                  // 만약 군중제어상태가 같은 것이 있다면
            {
                if (c.conditionTIme < _ccTime)         // 시간을 체크후
                {
                    c.conditionTIme = _ccTime;         // 더 큰시간으로 설정해줌
                    return;
                }
            }
        }
        unitConditionList.Add(condition); // 없다면 새로추가
        ConditionData topCondition = GetTopCondition();

        animator.SetInteger("condition", (int)topCondition.condition);
    }