예제 #1
0
    void OnTriggerExit(Collider _collider)
    {
        var tag   = _collider.gameObject.tag;
        var layer = _collider.gameObject.layer;

        if (layer == (int)Common.GAMEOBJECT_LAYER.GROUND_UNDER)
        {
            mCollision.isTrigger = false;
        }

        if (tag == Common.GetGameObjectTagName(Common.GAMEOBJECT_TAG.TOWER))
        {
            var tower = _collider.gameObject.GetComponent <UnitManagerTower>();
            if (tower.TeamId == mTeamId)
            {
                mUnitState &= ~UNIT_STATE.IS_HIT_TOWER;
            }
        }
        if (tag == Common.GetGameObjectTagName(Common.GAMEOBJECT_TAG.LADDER))
        {
            mUnitState &= ~UNIT_STATE.IS_HIT_LADDER;
        }
        if (tag == Common.GetGameObjectTagName(Common.GAMEOBJECT_TAG.CREATE_LOCATION))
        {
            var unitCreate = _collider.gameObject.GetComponent <UnitManagerCreateLocation>();
            mUnitState            &= ~UNIT_STATE.IS_HIT_CREATE_LOCATION;
            mCurrentCreateLocation = null;

            mUICreateUnitProperty.gameObject.SetActive(false);
            mUIUnitCreateLocationDish.gameObject.SetActive(false);

            mUIPlayerUnitProperty.SetIsInput(true);
        }
    }
예제 #2
0
    void OnTriggerStay(Collider _collider)
    {
        var tag   = _collider.gameObject.tag;
        var layer = _collider.gameObject.layer;

        if (layer == (int)Common.GAMEOBJECT_LAYER.FIELD && tag == Common.GetGameObjectTagName(Common.GAMEOBJECT_TAG.SEMITRANSPARENT))
        {
            if (GetIsUnitState(UNIT_STATE.IS_MOVE_DOWN))
            {
                mCollision.isTrigger = true;
            }
        }

        if (tag == Common.GetGameObjectTagName(Common.GAMEOBJECT_TAG.ITEM) && GetIsUnitState(UNIT_STATE.IS_GET_ITE))
        {
            var itemObj = _collider.gameObject.GetComponent <ItemObject>();
            if (mPropertyList.Count < PropertyMax)
            {
                StartCoroutine(GetItem(itemObj.Data));
                Destroy(itemObj.gameObject);
            }
        }

        if (tag == Common.GetGameObjectTagName(Common.GAMEOBJECT_TAG.TOWER))
        {
            var tower = _collider.gameObject.GetComponent <UnitManagerTower>();
            if (tower.TeamId == mTeamId)
            {
                mUnitState |= UNIT_STATE.IS_HIT_TOWER;
            }
        }

        if (tag == Common.GetGameObjectTagName(Common.GAMEOBJECT_TAG.CREATE_LOCATION))
        {
            var unitCreateLocation = _collider.gameObject.GetComponent <UnitManagerCreateLocation>();
            if (unitCreateLocation.PropertyDishData != null)
            {
            }
        }

        if (tag == Common.GetGameObjectTagName(Common.GAMEOBJECT_TAG.LADDER))
        {
            mUnitState |= UNIT_STATE.IS_HIT_LADDER;
        }

        if (tag == Common.GetGameObjectTagName(Common.GAMEOBJECT_TAG.CREATE_LOCATION))
        {
            var unitCreateLocation = _collider.gameObject.GetComponent <UnitManagerCreateLocation>();
            if (unitCreateLocation.TeamId == mTeamId)
            {
                mUnitState            |= UNIT_STATE.IS_HIT_CREATE_LOCATION;
                mCurrentCreateLocation = unitCreateLocation;
                if (mCurrentCreateLocation.PropertyDishData != null)
                {
                    mUnitState |= UNIT_STATE.IS_HIT_DISH_LOCATION;
                    if (!mUIUnitCreateLocationDish.gameObject.activeSelf)
                    {
                        mUIUnitCreateLocationDish.gameObject.SetActive(true);
                        mUIUnitCreateLocationDish.SetDishData(mCurrentCreateLocation.PropertyDishData);
                        mUICreateUnitProperty.gameObject.SetActive(false);
                    }
                }
                else
                {
                    mUnitState &= ~UNIT_STATE.IS_HIT_DISH_LOCATION;
                    if (!mUICreateUnitProperty.gameObject.activeSelf)
                    {
                        mUICreateUnitProperty.gameObject.SetActive(true);
                        mUICreateUnitProperty.SetPropertyList(mCurrentCreateLocation.ItemDataList, mCurrentCreateLocation.PropertyMax);
                        mUICreateUnitProperty.SetIsInput(false);

                        mUIUnitCreateLocationDish.gameObject.SetActive(false);
                    }
                }
            }
            else
            {
                mCurrentCreateLocation = null;
                mUnitState            &= ~UNIT_STATE.IS_HIT_CREATE_LOCATION;
                mUnitState            &= ~UNIT_STATE.IS_HIT_DISH_LOCATION;
            }
        }
    }