Ejemplo n.º 1
0
    public void Copy(EA_EffectBaseInfo ib)
    {
        m_GDEffectId       = ib.m_GDEffectId;
        m_AttachObjectId   = ib.m_AttachObjectId;
        m_AttachBoneName   = ib.m_AttachBoneName;
        m_eLifeType        = ib.m_eLifeType;
        m_eAttachType      = ib.m_eAttachType;
        m_eEffectState     = ib.m_eEffectState;
        m_fStartTime       = ib.m_fStartTime;
        m_fLifeTime        = ib.m_fLifeTime;
        m_EffectTableIndex = ib.m_EffectTableIndex;

        m_EmitPos[0] = ib.m_EmitPos[0];
        m_EmitPos[1] = ib.m_EmitPos[1];
        m_EmitPos[2] = ib.m_EmitPos[2];

        m_EmitAngle[0] = ib.m_EmitAngle[0];
        m_EmitAngle[1] = ib.m_EmitAngle[1];
        m_EmitAngle[2] = ib.m_EmitAngle[2];

        m_EffectResourceType = ib.m_EffectResourceType;
        m_bForceAxis         = ib.m_bForceAxis;
        m_fForceYpos         = ib.m_fForceYpos;
        m_strObjectId        = ib.m_strObjectId;
    }
Ejemplo n.º 2
0
    public virtual bool SetObjInfo(EA_EffectBaseInfo EffectBaseInfo)
    {
        m_EffectBaseInfo.Copy(EffectBaseInfo);

        switch (m_EffectBaseInfo.m_eEffectState)
        {
        case eEffectState.ES_Load:
        {
            if (m_pEffectEntity == null)
            {
                EA_CEffectResourceLoader.EffectSetting(this, EffectBaseInfo);
            }
        }
        break;

        case eEffectState.ES_UnLoad:
        {
            if (m_pEffectEntity != null)
            {
                EA_CEffectResourceLoader.EffectUnSetting(this);
            }
        }
        break;

        case eEffectState.ES_Start:
        {
            if (m_pEffectEntity != null)
            {
                m_pEffectEntity.Play();
            }
        }
        break;

        case eEffectState.ES_Stop:
        {
            if (m_pEffectEntity != null)
            {
                m_pEffectEntity.Stop();
            }
        }
        break;

        case eEffectState.ES_ForceStop:
        {
            if (m_pEffectEntity != null)
            {
                m_pEffectEntity.ForceStop();
            }
        }
        break;
        }

        ReSetWorldPosDir(EffectBaseInfo.m_EmitPos, EffectBaseInfo.m_EmitAngle);

        return(true);
    }
Ejemplo n.º 3
0
    public EA_CEffectNode CreateEffect(EA_EffectBaseInfo info)
    {
        info.m_eEffectState = eEffectState.ES_Load;

        //	Temporarily specify ObjId (sometimes temporary use by external system)
        bool bCreateTempId = false;

        if (CObjGlobal.InvalidEffectID == info.m_GDEffectId)
        {
            info.m_GDEffectId = (GDEffectID)m_pIDGenerator.GenerateID();
            bCreateTempId     = true;
        }

        EA_CEffectNode pEffectNode = null;

        if (bCreateTempId == false)
        {
            pEffectNode = GetEffectGroup(info.m_GDEffectId);
        }

        if (pEffectNode == null)
        {
            pEffectNode = new EA_CEffectNode();

            if (pEffectNode != null)
            {
                m_mapEffectList.Add(info.m_GDEffectId, pEffectNode);
            }
        }

        //	Enter and apply the generated information
        Debug.Assert(info != null, "No Effect Info");

        if (pEffectNode != null)
        {
            pEffectNode.SetObjInfo(info);
        }

        return(pEffectNode);
    }
Ejemplo n.º 4
0
 public void Init(EA_EffectBaseInfo pEffectBaseInfo)
 {
     m_pEffectBaseInfo.Copy(pEffectBaseInfo);
     ResetComponent();
 }
Ejemplo n.º 5
0
    public static bool EffectSetting(EA_CEffectNode pEffectNode, EA_EffectBaseInfo effectinfo)
    {
        if (null == pEffectNode)
        {
            Debug.Log("pEffectNode is null : " + effectinfo.m_GDEffectId);
            return(false);
        }


        if (eEffectState.ES_Load != effectinfo.m_eEffectState)
        {
            return(false);
        }

        //	Object basic information
        string sPoolType = effectinfo.m_EffectTableIndex;

        GameObject pGameObject = null;

        switch (effectinfo.m_eAttachType)
        {
        case eEffectAttachType.eWorld:
        {
            pGameObject = CEffectResourcePoolingManager.instance.Spwan(sPoolType);

            if (pGameObject != null)
            {
                pGameObject.transform.position = Vector3.zero;
            }
        }
        break;

        case eEffectAttachType.eLinkOffset:
        {
            EA_CObjectBase pObjectBase = EACObjManager.instance.GetGameObject(effectinfo.m_AttachObjectId);

            if (pObjectBase != null && pObjectBase.GetLinkEntity() != null)
            {
                GameObject IEntity = pObjectBase.GetLinkEntity();

                pGameObject = CEffectResourcePoolingManager.instance.Spwan(sPoolType);

                if (pGameObject != null)
                {
                    pGameObject.transform.parent = IEntity.transform;

                    pGameObject.transform.localPosition = Vector3.zero;
                    pGameObject.transform.localRotation = Quaternion.identity;
                }
            }
        }
        break;

        case eEffectAttachType.eLinkBone:
        {
            EA_CObjectBase pObjectBase = EACObjManager.instance.GetGameObject(effectinfo.m_AttachObjectId);

            if (pObjectBase != null)         //  [4/11/2014 puos]                        attach to the actor bone
            {
                GameObject pBone = pObjectBase.GetObjectInActor(effectinfo.m_AttachBoneName);

                if (pBone != null)
                {
                    pGameObject = CEffectResourcePoolingManager.instance.Spwan(sPoolType);

                    if (pGameObject != null)
                    {
                        pGameObject.transform.parent        = pBone.transform;
                        pGameObject.transform.localPosition = Vector3.zero;
                        pGameObject.transform.localRotation = Quaternion.identity;
                    }
                }
            }
        }
        break;
        }

        if (pGameObject == null)
        {
            Debug.Log("EffectSetting gameobject is null : " + effectinfo.m_GDEffectId);
            return(false);
        }

        if (pGameObject.GetComponent <EAEffectModule>() == null)
        {
            pGameObject.AddComponent <EAEffectModule>();
        }

        pEffectNode.SetLinkEffect(pGameObject.GetComponent <EAEffectModule>());

        return(true);
    }