Example #1
0
 public virtual void Init(eEntityType type, eEntityLookDir baseDir, int subType)
 {
     _type             = type;
     _baseLookDir      = baseDir;
     _logicIntevalSec  = Util.LogicInterval(type);
     _waitLogicInteval = new WaitForSeconds(_logicIntevalSec);
 }
Example #2
0
        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);
                }
            }
        }
Example #3
0
File: VBase.cs Project: mengtest/fs
        /// <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);
        }
Example #4
0
 public static BuildSettings Create(eDomain domain, eEntityType entityType)
 {
     return(new BuildSettings
     {
         Domain = domain,
         EntityType = entityType
     });
 }
Example #5
0
    public static float LogicInterval(eEntityType type)
    {
        switch (type)
        {
        case eEntityType.InGameCharacter:
            return(ConstValues.ConstValue._characterTypeLogicInterval);

        default:
            return(ConstValues.ConstValue._defaultTypeLogicInterval);
        }
    }
Example #6
0
    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));
    }
Example #7
0
        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);
        }
Example #9
0
    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);
    }
Example #10
0
    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));
    }
Example #11
0
    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);
    }
Example #12
0
 public SoundEntity(int handle, Action <Entity> notify, eEntityType eType, EntityBaseInfo entityInfo)
     : base(handle, notify, eType, entityInfo)
 {
 }