Exemplo n.º 1
0
    protected void ReleaseEfxItem(SkillEfxItem item)
    {
        Transform tr = item.efxTr;

        if (tr != null)
        {
            ResMgr.instance.ReleaseObject(mEfxResPath, tr.gameObject.GetInstanceID(), false);
        }
    }
Exemplo n.º 2
0
    protected SkillEfxItem CreateAndInitEfxItem(string resPath, float yOffset)
    {
        int        objID;
        GameObject efxObj = ResMgr.instance.CreateObject(resPath, out objID);

        if (efxObj == null)
        {
            Debug.LogError("SkillBase Begin() efxObj == null");
            return(null);
        }
        // record efx obj
        SkillBaseInfoCom efxBaseInfoCom = efxObj.GetComponent <SkillBaseInfoCom>();

        if (efxBaseInfoCom == null)
        {
            efxBaseInfoCom = efxObj.AddComponent <SkillBaseInfoCom>();
        }
        efxBaseInfoCom.Init(mPlayerIdx, mAttackID, mSkillID);

        // init position
        ObjectUtil.IdentityObj(efxObj.transform);
        Vector3 worldPos = mAttackMoveCom.GetCurWorldPos();

        efxObj.transform.position = new Vector3(worldPos.x, worldPos.y + yOffset, 0.0f);


        SkillEfxItem item = new SkillEfxItem();

        item.efxTr = efxObj.transform;
        SKILL skill = DataCfgMgr.instance.GetSkill(mSkillID);

        item.existTimer = skill.duration;

        // init speed

        Vector3 carSpeed  = BattleInstance.instance.GetHeroCarVecAttr(mPlayerIdx, (int)Const_Util.UNIT_ATTR.MOVE_CUR_SPEED);
        float   carSpeedY = carSpeed.y;

        if (carSpeedY < TestConfig.EfxSpeedBaseOnCar)
        {
            carSpeedY = TestConfig.EfxSpeedBaseOnCar;
        }

        Vector3 moveSpeed = new Vector3(skill.efx_velocity.x, skill.efx_velocity.y + carSpeedY, 0.0f);

        // check move to left or right
        if (worldPos.x > 0)
        {
            item.speed = new Vector3(-moveSpeed.x, moveSpeed.y, moveSpeed.z);
        }
        else
        {
            item.speed = moveSpeed;
        }

        return(item);
    }
Exemplo n.º 3
0
    void AddEfxObj()
    {
        if (mIsEnd)
        {
            return;
        }
        SkillEfxItem item = CreateAndInitEfxItem(mEfxResPath, TestConfig.UnitAnchoredYOffset);

        efxObjTrs.Add(item);
    }