public SoliderCaptiver(AbsEnemy _enemy) { enemy = _enemy; CharacterAttr attr = new CharacterAttr(enemy.CharacterAttr.AttrStrategy, enemy.CharacterAttr.BaseAttr, 1); OnInit(enemy.CharacterGameObject, attr, enemy.Weapon, enemy.Position); }
public override T Create <T>(CharacterDTO dto) { T ch = new T(); CharacterAttr attr = CharacterAttr.GetAttr(dto); Type t = typeof(T); switch (t.Name) { case "Player": attr.type = CharacterType.Player; break; case "Monster": attr.type = CharacterType.Monster; break; case "Npc": attr.type = CharacterType.Npc; break; } // 初始化角色属性 ch.Init(attr); // 初始化导航代理 ch.InitNavmeshAgent(_navmeshQuery); // 将创建的角色添加到字典中 if (!_characters.ContainsKey(ch.characterid)) { _characters.Add(ch.characterid, ch); } return(ch); }
public virtual void Init(CharacterAttr attr) { this.attr = attr; this.characterid = attr.id; this.sceneid = attr.mapid; _transform = new RoleTransform(); }
public AbsCharacter OnInit(GameObject _gameObject, CharacterAttr _characterAttr, AbsWeapon _weapon, Vector3 _pos) { CharacterGameObject = _gameObject; CharacterGameObject.transform.position = _pos; CharacterAttr = _characterAttr; navMeshAgent = _gameObject.GetComponent <NavMeshAgent>(); audioSource = _gameObject.GetComponent <AudioSource>(); anim = _gameObject.GetComponentInChildren <Animation>(); collider = _gameObject.GetComponent <CapsuleCollider>(); Weapon = _weapon; Weapon.OnInit(this); return(this); }
public float Sight; // 视野 public static CharacterAttr GetAttr(RoleCfg cfg) { CharacterAttr attr = new CharacterAttr(); attr.RoleType = cfg.RoleType; attr.Hp = cfg.Hp; attr.Mp = cfg.Mp; attr.MoveSpeed = cfg.MoveSpeed; attr.AttackSpeed = cfg.AttackSpeed; attr.Defend = cfg.Defend; attr.Sight = cfg.Sight; return(attr); }
public virtual void Init(CharacterAttr attr) { this.characterid = (uint)attr.id; this.position = new Vector3(attr.pos.x, attr.pos.y, attr.pos.z); _cfg = ConfigManager.instance.GetRoleCfg(attr.cfgid); // 对象池创建对象 _transform = (PoolManager.instance.Spawn("Units/", _cfg.ModelName)).transform; _transform.position = position; _transform.localScale = Vector3.one; _animation = _transform.GetComponent <Animation>(); }
public T Create <T>(CharacterDTO dto) where T : Character, new() { T ch = new T(); CharacterAttr attr = CharacterAttr.GetAttr(dto); ch.Init(attr); ch.InitNavmeshAgent(_navmeshQuery); // 将创建的角色添加到字典中 if (!_roles.ContainsKey(ch.characterid)) { _roles.Add(ch.characterid, ch); } return(ch); }
public static CharacterAttr GetAttr(common.CharacterDTO dto) { CharacterAttr attr = new CharacterAttr(); attr.id = dto.id; attr.accountid = dto.accountid; attr.name = dto.name; attr.race = (Race)dto.race; attr.job = (Job)dto.job; attr.gender = dto.gender; attr.level = dto.level; attr.exp = dto.exp; attr.diamond = dto.diamond; attr.gold = dto.gold; attr.pos = new Luna3D.Vector3(dto.pos_x, dto.pos_y, dto.pos_z); attr.cfgid = dto.cfgid; attr.mapid = dto.mapid; return(attr); }
public int CopyFrom(CharacterAttr src) { this.HP = src.HP; this.MP = src.MP; this.SP = src.SP; this.MaxHP = src.MaxHP; this.MaxMP = src.MaxMP; this.MaxSP = src.MaxSP; this.AP = src.AP; this.DF = src.DF; this.HPRECOVER = src.HPRECOVER; this.MPRECOVER = src.MPRECOVER; this.SPRECOVER = src.SPRECOVER; this.CRIT = src.CRIT; this.CRITDAMAGE = src.CRITDAMAGE; this.CRITDF = src.CRITDF; this.SUCK = src.SUCK; this.DODGE = src.DODGE; this.HIT = src.HIT; this.ABSORB = src.ABSORB; this.REFLEX = src.REFLEX; this.SPEED = src.SPEED; this.IAP = src.IAP; this.FAP = src.FAP; this.BAP = src.BAP; this.LAP = src.LAP; this.IDF = src.IDF; this.FDF = src.FDF; this.BDF = src.BDF; this.LDF = src.LDF; this.INJURYFREE = src.INJURYFREE; this.ATKEWHP = src.ATKEWHP; this.ATKEWMP = src.ATKEWMP; this.ATKEWSP = src.ATKEWSP; this.ATKEWAP = src.ATKEWAP; return(0); }
//被攻击 public virtual void underAttack(ICharacter theAttacker) { CharacterAttr.calDmg(theAttacker); //if (m_characterAttr.getCurHP() <= 0) //showDeathEffect(); }
public void InitComp() { charAttr = new CharacterAttr(100f, 12f, 10f, this); }
public Character(int globalid, RoleCfg roleCfg, Vector3 position) { _globalID = globalid; _cfg = roleCfg; // 通过配置获取原始属性 _originAttr = CharacterAttr.GetAttr(roleCfg); // 获取当前属性 _currAttr = _originAttr.Clone(); // 对象池创建对象 _transform = (PoolManager.instance.Spawn("Units/", _cfg.ModelName)).transform; _transform.position = position; _transform.localScale = Vector3.one; _navmeshAgent = _transform.gameObject.GetComponent <UnityEngine.AI.NavMeshAgent>(); if (_navmeshAgent == null) { _navmeshAgent = _transform.gameObject.AddComponent <UnityEngine.AI.NavMeshAgent>(); } _navmeshAgent.speed = _originAttr.MoveSpeed; _navmeshAgent.enabled = false; _navmeshAgent.angularSpeed = 180; _animation = _transform.gameObject.GetComponent <Animation>(); // 在角色的GameObject上添加一个碰撞器 _collider = _transform.gameObject.GetComponent <CapsuleCollider>(); if (_collider == null) { _collider = _transform.gameObject.AddComponent <CapsuleCollider>(); } _collider.center = new Vector3(0, 1, 0); _collider.height = 2; // 添加ID代理 _idAgent = _transform.gameObject.GetComponent <IDAgent>(); if (_idAgent == null) { _idAgent = _transform.gameObject.AddComponent <IDAgent>(); } _idAgent.globalID = globalid; // 创建角色拥有的技能发射器 _skillCasters = new Dictionary <int, SkillCaster>(); Dictionary <int, SkillGroupCfg> skillGroupCfgs = ConfigManager.instance.GetSkillGroupCfgs(_cfg.ID); foreach (SkillGroupCfg cfg in skillGroupCfgs.Values) { SkillCaster caster = new SkillCaster(this); caster.SkillBasicCfg = ConfigManager.instance.GetSkillBasicCfg(cfg.ID); caster.SkillBulletCfg = ConfigManager.instance.GetSkillBulletCfg(cfg.ID); caster.SkillAOECfg = ConfigManager.instance.GetSkillAOECfg(cfg.ID); caster.SkillBuffCfg = ConfigManager.instance.GetSkillBuffCfg(cfg.ID); caster.SkillTrapCfg = ConfigManager.instance.GetSkillTrapCfg(cfg.ID); if (!_skillCasters.ContainsKey(cfg.ID)) { _skillCasters.Add(cfg.ID, caster); } } }
public override GameObject AddGameObject(CharacterAttr attr) { return(FactoryManager.AssetFactory.LoadEnemy(attr.PrefabName)); }
public abstract GameObject AddGameObject(CharacterAttr attr);
public override GameObject AddGameObject(CharacterAttr attr) { var _gameObject = FactoryManager.AssetFactory.LoadSoldier(attr.PrefabName); return(_gameObject); }
public override void Init(CharacterAttr attr) { base.Init(attr); }
public override void Init(CharacterAttr attr) { base.Init(attr); _camera = Camera.main; }