예제 #1
0
        public PoolObjHandle <BulletSkill> SpawnBullet(SkillUseContext context, string _actionName, bool _bDeadRemove)
        {
            PoolObjHandle <BulletSkill> handle = new PoolObjHandle <BulletSkill>();

            if (context != null)
            {
                BulletSkill item = ClassObjPool <BulletSkill> .Get();

                item.Init(_actionName, _bDeadRemove);
                if (item.Use(base.actorPtr, context.Clone()))
                {
                    this.SpawnedBullets.Add(item);
                    return(new PoolObjHandle <BulletSkill>(item));
                }
                item.Release();
            }
            return(handle);
        }
        public PoolObjHandle <BulletSkill> SpawnBullet(SkillUseContext context, string _actionName, bool _bDeadRemove, bool _bAgeImmeExcute = false, int _bulletTypeId = 0, int _bulletUpperLimit = 0)
        {
            PoolObjHandle <BulletSkill> result = default(PoolObjHandle <BulletSkill>);

            if (context == null)
            {
                return(result);
            }
            BulletSkill bulletSkill = ClassObjPool <BulletSkill> .Get();

            bulletSkill.Init(_actionName, _bDeadRemove, _bulletTypeId);
            bulletSkill.bAgeImmeExcute = _bAgeImmeExcute;
            this.RecycleOverLimitBullte(_bulletTypeId, _bulletUpperLimit);
            if (bulletSkill.Use(this.actorPtr, context))
            {
                this.SpawnedBullets.Add(bulletSkill);
                result = new PoolObjHandle <BulletSkill>(bulletSkill);
            }
            else
            {
                bulletSkill.Release();
            }
            return(result);
        }