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; }
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); }
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); }
public void Init(EA_EffectBaseInfo pEffectBaseInfo) { m_pEffectBaseInfo.Copy(pEffectBaseInfo); ResetComponent(); }
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); }