public void InitEnityByMonster(Monster monster) { this.monster = monster; enityType = EnityType.Enemy; Animator animator = gameObject.GetComponent <Animator>(); if (animator != null) { animatorList.Add(animator); } UpdateHeroEquips(); OnPlayAnimation(animatorAction); }
List <GameObject> GetGameObjectsByAttackTargetType(EnityType _attackType) { List <GameObject> targetList = new List <GameObject>(); GameObject[] _gameObjects = GameObject.FindGameObjectsWithTag(_attackType.ToString()); for (int i = 0; i < _gameObjects.Length; i++) { GameObject _gameObject = _gameObjects[i]; float distance = Vector3.Distance(_gameObject.transform.position, transform.position); if (searchRadius > distance) { targetList.Add(_gameObject); } } //////////////////按照距离排序//////////////////////////// return(targetList); }
public GameObject CreateEnity(EnityType enityType, string enityName) { GameObject obj = DataManager.GetInstance().CreateGameObjectFromAssetsBundle("enemy", enityName); GameObject AI = DataManager.GetInstance().CreateGameObjectFromAssetsBundle("enemy", "AI"); obj.transform.SetParent(AI.transform, false); AIBase AIScript = AI.GetComponent <AIBase>(); AIScript.selfType = enityType; AIScript.attackType = EnityType.Hero; AIScript.isCanMove = true; AIScript.searchRadius = 25.0f; AIScript.attackRadius = 1.0f; AIScript.moveSpeed = 0.05f; AIScript.moveAnimatorType = AnimatorAction.Walk; AIScript.animator = obj.GetComponent <Animator>(); AI.name = enityName + createEnityIndex; createEnityIndex++; return(AI); }
public void InitAIBaseByEnity(Enity enity) { this.enity = enity; selfType = enity.enityType; attackType = EnityManager.GetInstance().GetAttackEnityType(selfType); isCanMove = enity.enityType == EnityType.Hero; searchRadius = DataManager.instance.GetConfigValueToFloat("fight_search_radius"); moveSpeed = DataManager.instance.GetConfigValueToFloat("fight_move_speed"); moveAnimatorType = AnimatorAction.Run; animator = enity.gameObject.GetComponent <Animator>(); //////////////////////////判断是否装备武器/////////////////////////////////// Item equip = enity.GetEnityEquip(); if (equip != null) { aiWeapon = gameObject.AddComponent <AIWeapon>(); aiWeapon.InitWeaponByEquip(equip); } isInit = true; }
public void InitEnityByHero(Hero hero) { this.hero = hero; enityType = EnityType.Hero; foreach (KeyValuePair <HeroPart, int> part in hero.heroPartDic) { DIYTableData dIYTableData = DataManager.instance.GetDIYTableDatasById(part.Value); if (dIYTableData != null) { if (dIYTableData.dummyProp != -1) { GameObject diyPrefab = DataManager.GetInstance().CreateGameObjectFromAssetsBundle("enemy", dIYTableData.prefab); if (diyPrefab != null) { diyPrefab.transform.SetParent(dummyProp_Parent[(int)dIYTableData.dummyProp], false); } } else { Material material = DataManager.GetInstance().CreateMaterialFromAssetsBundle("enemy", dIYTableData.prefab); SkinnedMeshRenderer skinnedMeshRenderer = materialBody.GetComponent <SkinnedMeshRenderer>(); if (skinnedMeshRenderer != null && material != null) { skinnedMeshRenderer.material = material; } } } } Animator animator = gameObject.GetComponent <Animator>(); if (animator != null) { animatorList.Add(animator); } UpdateHeroEquips(); OnPlayAnimation(animatorAction); }
public EnityType GetAttackEnityType(EnityType enityType) { EnityType attackEnityType = EnityType.NULL; switch (enityType) { case EnityType.Enemy: attackEnityType = EnityType.Hero; break; case EnityType.Hero: attackEnityType = EnityType.Enemy; break; case EnityType.Bomb: attackEnityType = EnityType.Enemy; break; default: break; } return(attackEnityType); }
/// <summary> /// 获取当前场景内所有目标对象 /// </summary> /// <param name="enemy"></param> /// <returns></returns> public int GetEnitysCountInGame(EnityType enemy) { EnitysInGame = GameObject.FindGameObjectsWithTag(enemy.ToString());//遍历找出所有怪物 return(EnitysInGame.Length); }