public virtual void Init(eEntityType type, eEntityLookDir baseDir, int subType) { _type = type; _baseLookDir = baseDir; _logicIntevalSec = Util.LogicInterval(type); _waitLogicInteval = new WaitForSeconds(_logicIntevalSec); }
public float m_headPos; // 头顶位置,因为外部逻辑,这个位置会变动 public Entity(int handle, Action <Entity> notity, eEntityType tpye, EntityBaseInfo baseInfo) { if (baseInfo.m_resID == 0) { Debug.LogError("资源id为0,请检查配置"); return; } m_entityInitNofity = notity; m_hid = handle; m_entityType = tpye; m_entityInfo = baseInfo; m_LoadingDestory = false; //Debug.LogError("请求加载资源。。。。。。。。。。。。"+ m_entityInfo.m_resID); if (!string.IsNullOrEmpty(m_entityInfo.m_strName)) { m_res = ResourceFactory.Inst.LoadResource(m_entityInfo.m_strName, ResourceLoaded); } else { ResInfo resInfo = ResInfosResource.GetResInfo(m_entityInfo.m_resID); if (resInfo != null && resInfo.strUrl != null) { m_entityInfo.m_strName = resInfo.strName; m_res = ResourceFactory.Inst.LoadResource(m_entityInfo.m_resID, ResourceLoaded); } else { Debug.LogError("创建失败,无资源id:" + m_entityInfo.m_resID + " 现用灰色盒子代替,请注意更换!"); m_res = ResourceFactory.Inst.LoadResource(4, ResourceLoaded); } } }
/// <summary> /// 创建模型 /// </summary> public virtual void Create(sVOjectBaseInfo baseInfo) { m_baseInfo = baseInfo; EntityBaseInfo info = new EntityBaseInfo(); info.m_uid = baseInfo.m_uid; info.m_resID = baseInfo.m_resId; info.m_ilayer = (int)LusuoLayer.eEL_Dynamic; info.m_vPos = baseInfo.m_pos; info.m_vScale = Vector3.one * baseInfo.m_scale; if (baseInfo.m_dir != Vector3.zero) { info.m_vRotate = Quaternion.LookRotation(baseInfo.m_dir).eulerAngles; } eEntityType eType = eEntityType.eBattleEntity; if (this is VObject) { eType = eEntityType.eBattleEntity; } else if (this is VTrigger) { eType = eEntityType.eEffectEntity; } int hid = EntityManager.Inst.CreateEntity(eType, info, CreateEnd); SetDir(baseInfo.m_dir); SetPos(baseInfo.m_pos, true); SetSpeed(baseInfo.m_speed); m_ent = EntityManager.Inst.GetEnity(hid); }
public static BuildSettings Create(eDomain domain, eEntityType entityType) { return(new BuildSettings { Domain = domain, EntityType = entityType }); }
public static float LogicInterval(eEntityType type) { switch (type) { case eEntityType.InGameCharacter: return(ConstValues.ConstValue._characterTypeLogicInterval); default: return(ConstValues.ConstValue._defaultTypeLogicInterval); } }
public override void Init(eEntityType type, eEntityLookDir baseDir, int subType) { base.Init(type, baseDir, subType); _physics = new SimplePhysics(_rigidbody, _node); _physics.AttackColliderList += OnHitColliderList; _physics.SomethingCollide += OnSomethingCollide; _physics.SetGrivityModify(0); _speed = 5; _dameageType = eDameageType.Magic; _dameageValue = 50; SetForward(Util.Dir2DConvert3D(baseDir)); }
public int CreateEntity(eEntityType eType, EntityBaseInfo baseInfo, Action <Entity> initEnd) { // 在这里可以让各种Entity继承EntityManager单独做个管理类 // 然后通过管理类去new实体对象,暂时先用switch了 // tips:这种静态的公共变量,如果在多个异步调用时,它的值会被最新值替换掉,在下面add时,就不能使用这个变量 ++s_entityHandleId; // 如果缓存中有,就取缓存,如果没有就创建 Entity entity = TryGetEntityFromCache(s_entityHandleId, initEnd, baseInfo); if (entity == null) { switch (eType) { case eEntityType.eNone: entity = new Entity(s_entityHandleId, initEnd, eType, baseInfo); break; case eEntityType.eSceneEntity: entity = new SceneEntity(s_entityHandleId, initEnd, eType, baseInfo); break; case eEntityType.eBoneEntity: entity = new BoneEntity(s_entityHandleId, initEnd, eType, baseInfo); break; case eEntityType.eEffectEntity: entity = new EffectEntity(s_entityHandleId, initEnd, eType, baseInfo); break; case eEntityType.eSoundEntity: entity = new SoundEntity(s_entityHandleId, initEnd, eType, baseInfo); break; case eEntityType.eBattleEntity: entity = new BattleEntity(s_entityHandleId, initEnd, eType, baseInfo); break; } if (null == entity) { Debug.LogError("error eType:" + eType); return(0); } } m_entityMap.Add(entity.m_hid, entity); return(entity.m_hid); }
public static IHttpHendlerRequest CreateHttpRequestHendler(string i_EntityName) { eEntityType type = entityType(i_EntityName); IHttpHendlerRequest httpHendlerRequest = null; switch (type) { case eEntityType.Coordinate: { //httpHendlerRequest = new CoordinateHendler(); break; } case eEntityType.Crop: { //httpHendlerRequest = new CropHendler(); break; } case eEntityType.Layer: { //httpHendlerRequest = new LayerHendler(); break; } case eEntityType.Site: { //httpHendlerRequest = new SiteHendler(); break; } case eEntityType.SiteByYear: { //httpHendlerRequest = new SitesByYearHendler(); break; } } return(httpHendlerRequest); }
public Entity CreateEntityForBattle(string assetname, eEntityType entityType, eEntityLookDir lookDir, int subType) { GameObject behaviour = UnitObjectPool.Instance.GetCharacterGameObject(assetname); switch (entityType) { case eEntityType.InGameCharacter: Character entity = behaviour.gameObject.AddComponent <Character>(); entity.Rigidbody = behaviour.gameObject.GetComponent <Rigidbody2D>(); entity.AniControl = behaviour.GetComponent <SpriteAnimationController>(); entity.Collider = behaviour.GetComponent <BoxCollider2D>(); entity.Node = behaviour.GetComponentInChildren <Character_Node>(); entity.Init(entityType, lookDir, subType); if (subType > 1) { entity.AIStateManager = behaviour.AddComponent <AIStateManager>(); entity.AIStateManager.Init(entity); } entity.AllyType = subType > 1 ? eUnitAllyType.Enemy : eUnitAllyType.Player; UnitManager.Instance.AddUnit(behaviour.GetInstanceID(), entity); return(entity); case eEntityType.InGameProjectile: Projectile projectile = behaviour.gameObject.AddComponent <Projectile>(); projectile.Rigidbody = behaviour.gameObject.GetComponent <Rigidbody2D>(); projectile.AniControl = behaviour.GetComponent <SpriteAnimationController>(); projectile.Node = behaviour.GetComponentInChildren <Character_Node>(); projectile.Init(entityType, lookDir, subType); projectile.AllyType = eUnitAllyType.EnemyAlly; UnitManager.Instance.AddProjectile(projectile); return(projectile);; } return(null); }
public override void Init(eEntityType type, eEntityLookDir baseDir, int subType) { base.Init(type, baseDir, subType); var stat = TempData.GetCharacterData(type, subType); if (stat != null) { _stat = stat; } IsActive = true; _stateManager = new AnimationStateManager(); _stateManager.Init(this); _physics = new SimplePhysics(_rigidbody, _node); _physics.AttackColliderList += OnAttackCollider; _aniControl.OnAnimationPlayEnd += OnAnimationPlayEnd; _aniControl.OnAnimationEvent += OnAnimationEvent; _conditionEffectDic = new Dictionary <eCondition, ConditionEffect>(); _conditionList = new List <ConditionEffect>(); _curHP = stat.MaxHp; SetForward(Util.Dir2DConvert3D(baseDir)); }
public static CharacterStat GetCharacterData(eEntityType type, int subType) { if (type == eEntityType.InGameCharacter) { CharacterStat _stat = new CharacterStat("power", subType); switch (subType) { case 1: _stat.SetBattleData(40, 11); _stat.SetMaxHpMpData(400, 111); _stat.SetMoveData(11, 5); return(_stat); case 2: _stat.SetBattleData(20, 11); _stat.SetMaxHpMpData(50, 111); _stat.SetMoveData(0.4f, 1); _stat.SetAttackData(15, 2, eAttackType.Melee); return(_stat); case 3: _stat.SetBattleData(30, 30); _stat.SetMaxHpMpData(50, 111); _stat.SetMoveData(1f, 1); _stat.SetAttackData(45, 2, eAttackType.Melee); return(_stat); case 4: _stat.SetBattleData(40, 11); _stat.SetMaxHpMpData(30, 111); _stat.SetMoveData(1f, 1); _stat.SetAttackData(40, 40, eAttackType.Range); return(_stat); } } return(null); }
public SoundEntity(int handle, Action <Entity> notify, eEntityType eType, EntityBaseInfo entityInfo) : base(handle, notify, eType, entityInfo) { }