// Update is called once per frame protected void LateUpdate() { if ( m_pEffectBaseInfo.m_EffectResourceType == eEffectResourceType.eDecal && m_pEffectBaseInfo.m_bForceAxis == true ) { EA_CObjectBase pObjectBase = EACObjManager.instance.GetGameObject(m_pEffectBaseInfo.m_AttachObjectId); if (pObjectBase != null && pObjectBase.GetLinkEntity() != null) { Vector3 position = Vector3.zero; position.x = pObjectBase.GetLinkEntity().transform.position.x; position.y = m_pEffectBaseInfo.m_fForceYpos; position.z = pObjectBase.GetLinkEntity().transform.position.z; transform.position = position; } } if (m_pSfx != null && m_bAutoDelete == true) { if (m_pSfx.IsAlive() == false) { if (m_pEffectBaseInfo.m_GDEffectId != CObjGlobal.InvalidEffectID) { //Debug.Log("delete sfx :" + m_pEffectBaseInfo.m_GDEffectId ); EACEffectManager.instance.RemoveEffect(m_pEffectBaseInfo.m_GDEffectId); } } } }
public void RemoveEntity(EA_CObjectBase gameEntity) { if (gameEntity != null) { m_entityList.Remove(gameEntity); } }
public static bool EntityUnSetting(EA_CObjectBase pDelObjBase) { if (pDelObjBase != null) { if (pDelObjBase.GetObjInfo().m_eObjState == eObjectState.CS_SETENTITY) { // [3/6/2014 puos] entity unsetting error check Debug.Log("EntityUnSetting error : " + pDelObjBase.GetObjInfo().m_strGameName); return(false); } GameObject pGameObject = pDelObjBase.GetLinkEntity(); if (pGameObject == null) { Debug.Log("EntityUnSetting gameobject is null : " + pDelObjBase.GetObjInfo().m_strGameName); return(false); } // puos 20141019 null parent set pGameObject.transform.parent = null; CObjResourcePoolingManager.instance.Despawn(pDelObjBase.GetLinkEntity()); pDelObjBase.SetLinkEntity(null); //Debug.Log("EntityUnSetting pSetObject :" + pDelObjBase.GetObjInfo().m_strGameName); } return(true); }
public EA_CObjectBase GetGameObject(EAObjID _id) { EA_CObjectBase obj = null; obj = (obj == null) ? GetActor(_id) : obj; obj = (obj == null) ? GetItemObject(_id) : obj; obj = (obj == null) ? GetMapObject(_id) : obj; return(obj); }
public bool DeleteGameObject(eObjectType DelObjectType, EAObjID _id) { if (CObjGlobal.InvalidObjID != _id) { EA_CObjectBase obj = null; switch (DelObjectType) { default: case eObjectType.CT_MYPLAYER: { break; } case eObjectType.CT_PLAYER: { obj = RemovePlayer(_id); break; } case eObjectType.CT_NPC: { obj = RemoveNPC(_id); break; } case eObjectType.CT_MONSTER: { obj = RemoveMob(_id); break; } case eObjectType.CT_ITEMOBJECT: { obj = RemoveItem(_id); break; } case eObjectType.CT_MAPOBJECT: { obj = RemoveMapObject(_id); } break; } RemoveEntity(obj); } return(false); }
public GameObject GetOwner() { if (GetItemBase() != null) { EAObjID _objID = GetItemBase().GetItemInfo().m_HavenUser; EA_CObjectBase pObjectBase = EACObjManager.instance.GetGameObject(_objID); if (pObjectBase != null) { return(pObjectBase.GetLinkEntity()); } } return(null); }
protected void GuidedProjectileType() { GameObject pEntity = null; EA_CObjectBase pObjectBase = null; if (!string.IsNullOrEmpty(WeaponInfo.m_strTargetActorBoneName)) { pObjectBase = EACObjManager.instance.GetActor(WeaponInfo.m_TargetActorId); } else { pObjectBase = EACObjManager.instance.GetGameObject(WeaponInfo.m_TargetActorId); } if (pObjectBase != null && pObjectBase.GetLinkEntity()) { pEntity = pObjectBase.GetLinkEntity(); Collider c = pObjectBase.collider; Vector3 vColliderPos = Vector3.zero; if (c != null) { vColliderPos = c.bounds.extents; } Vector3 vTargetPos = (pEntity.gameObject.transform.position) + vColliderPos; Vector3 vDiff = vTargetPos - transform.position; m_vDir = vDiff; m_vDir.Normalize(); } else { WeaponInfo.m_TargetActorId = CObjGlobal.InvalidObjID; m_vDir = m_vStartDir; } Debug.DrawLine(transform.position, transform.position + m_vDir * WeaponInfo.fProjectileSpeed * Time.deltaTime, Color.yellow); Vector3 vPos = transform.position + m_vDir * WeaponInfo.fProjectileSpeed * Time.deltaTime; SetVPos(vPos); }
/// <summary> /// The game object from the server is applied first and the Cry Entity is created by FirstUpdate (). /// </summary> /// <param name="GameObjInfo"></param> /// <returns></returns> public EA_CObjectBase CreateGameObject(ObjectInfo GameObjInfo) { EA_CObjectBase pReturnObject = null; GameObjInfo.m_eObjState = eObjectState.CS_SETENTITY; // Temporarily specify ObjId (sometimes temporary use by external system) bool bCreateTempId = false; if (CObjGlobal.InvalidObjID == GameObjInfo.m_GDObjId) { GameObjInfo.m_GDObjId = (EAObjID)m_pIDGenerator.GenerateID(); bCreateTempId = true; } switch (GameObjInfo.m_eObjType) { case eObjectType.CT_MYPLAYER: { if (GetMainPlayer() != null) { // My character is created at startup so I don't need to create it GetMainPlayer().SetObjInfo(GameObjInfo); pReturnObject = GetMainPlayer(); } } break; case eObjectType.CT_PLAYER: { EA_CCharUser pCharPlayer = null; // First check if it exists if (bCreateTempId == false) { pCharPlayer = GetPlayer(GameObjInfo.m_GDObjId); } // If not, create a new one if (pCharPlayer == null) { pCharPlayer = new EA_CCharUser(); if (pCharPlayer != null) { m_mapPlayerList.Add(GameObjInfo.m_GDObjId, pCharPlayer); } } // Enter the information of the created object and apply it if (pCharPlayer != null) { pCharPlayer.SetObjInfo(GameObjInfo); } pReturnObject = pCharPlayer; } break; case eObjectType.CT_NPC: { EA_CCharNPC pCharNPC = null; // First check if it exists if (bCreateTempId == false) { pCharNPC = GetNPC(GameObjInfo.m_GDObjId); } // If not, create a new one if (pCharNPC == null) { pCharNPC = new EA_CCharNPC(); if (pCharNPC != null) { m_mapNPCList.Add(GameObjInfo.m_GDObjId, pCharNPC); } } // Apply the information to the generated number if (pCharNPC != null) { pCharNPC.SetObjInfo(GameObjInfo); } pReturnObject = pCharNPC; } break; case eObjectType.CT_MONSTER: { EA_CCharMob pCharPlayer = null; // First check if it exists if (bCreateTempId == false) { pCharPlayer = GetMob(GameObjInfo.m_GDObjId); } // If not, create a new one if (pCharPlayer == null) { pCharPlayer = new EA_CCharMob(); if (pCharPlayer != null) { m_mapMonsterList.Add(GameObjInfo.m_GDObjId, pCharPlayer); } } // Apply the information to the generated number // assert( pCharInfo && "No Character Info" ); if (pCharPlayer != null) { pCharPlayer.SetObjInfo(GameObjInfo); } pReturnObject = pCharPlayer; } break; case eObjectType.CT_ITEMOBJECT: { EA_CItem pItem = null; // First check if it exists if (bCreateTempId == false) { pItem = GetItemObject(GameObjInfo.m_GDObjId); } // If not, create a new one if (pItem == null) { pItem = new EA_CItem(); if (pItem != null) { m_mapItemList.Add(GameObjInfo.m_GDObjId, pItem); } } // Apply the information to the generated number if (pItem != null) { pItem.SetObjInfo(GameObjInfo); } pReturnObject = pItem; } break; case eObjectType.CT_MAPOBJECT: { EA_CMapObject pObject = null; // First check if it exists if (bCreateTempId == false) { pObject = GetMapObject(GameObjInfo.m_GDObjId); } // If not, create a new one if (pObject == null) { pObject = new EA_CMapObject(); if (pObject != null) { m_mapObjectList.Add(GameObjInfo.m_GDObjId, pObject); } } // Apply the information to the generated number if (pObject != null) { pObject.SetObjInfo(GameObjInfo); } pReturnObject = pObject; } break; /* * case CT_QUEST: * { * // First check if it exists * if( false == bCreateTempId ) * pReturnObject = GetQuestItem(GameObjInfo.m_DiaObjId); * * // If not, create a new one * if( NULL == pReturnObject ) * { * pReturnObject = new IfDia_CObjectBase; * assert( pReturnObject && "Not Create ItemObject" ); * if( pReturnObject ) * m_mapQuestList.insert( TQuestListMap::value_type(GameObjInfo.m_DiaObjId,pReturnObject) ); * } * * // Apply the information to the generated number * if( pReturnObject ) * { * pReturnObject->SetObjInfo(GameObjInfo); * } * } * break; * /**/ } //assert( pReturnObject ); // Apply the information to the generated number if (pReturnObject != null) { m_entityList.Add(pReturnObject); } return(pReturnObject); }
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); }
public static bool EntitySetting(EA_CObjectBase pSetObject, ObjectInfo SetObjinfo) { if (null == pSetObject) { Debug.Log("EntitySetting pSetObject is null :" + SetObjinfo.m_strGameName); return(false); } if (eObjectState.CS_SETENTITY != SetObjinfo.m_eObjState) { return(false); } string poolType = SetObjinfo.m_ModelTypeIndex; GameObject pGameObject = CObjResourcePoolingManager.instance.Spwan(poolType); pSetObject.SetLinkEntity(pGameObject); if (pGameObject == null) { Debug.LogError("EntitySetting Game object is invalid. type : " + poolType + ", name : " + pSetObject.GetObjInfo().m_strGameName); return(false); } // Modify class creation logic [3/30/2018 puos] if (SetObjinfo.m_objClassType != default(Type)) { if (pGameObject.GetComponent(SetObjinfo.m_objClassType) == null) { pGameObject.AddComponent(SetObjinfo.m_objClassType); } } // Create around object table switch (SetObjinfo.m_eObjType) { case eObjectType.CT_NPC: case eObjectType.CT_MONSTER: case eObjectType.CT_PLAYER: case eObjectType.CT_MYPLAYER: { EAActor actor = pGameObject.GetComponent <EAActor>(); if (actor == null) { actor = pGameObject.AddComponent <EAActor>(); SetObjinfo.m_objClassType = typeof(EAActor); } ((EA_CCharBPlayer)pSetObject).SetLinkActor(actor); } break; case eObjectType.CT_MAPOBJECT: { EAMapObject mapObject = pGameObject.GetComponent <EAMapObject>(); if (mapObject == null) { mapObject = pGameObject.AddComponent <EAMapObject>(); SetObjinfo.m_objClassType = typeof(EAMapObject); } ((EA_CMapObject)pSetObject).SetLinkMapObject(mapObject); } break; case eObjectType.CT_ITEMOBJECT: { EAItem itemObject = pGameObject.GetComponent <EAItem>(); if (itemObject == null) { itemObject = pGameObject.AddComponent <EAItem>(); SetObjinfo.m_objClassType = typeof(EAItem); } ((EA_CItem)pSetObject).SetLinkItem(itemObject); } break; } //Debug.Log("EntitySetting pSetObject :" + SetObjinfo.m_ModelTypeIndex); return(true); }