public void BuildConvert(NpcTeamBean npcTeam, Vector3 npcPosition) { if (npcTeam == null || listExistTeamId.Contains(npcTeam.id)) { return; } //获取小队成员数据 npcTeam.GetTeamCharacterData(out List <CharacterBean> listLeader, out List <CharacterBean> listMembers); //设置小队相关 string teamCode = SystemUtil.GetUUID(SystemUtil.UUIDTypeEnum.N); int npcNumber = listLeader.Count + listMembers.Count; for (int i = 0; i < npcNumber; i++) { CharacterBean characterData = null; if (i < listLeader.Count) { characterData = listLeader[i]; } else { characterData = listMembers[i - listLeader.Count]; } //生成NPC GameObject npcObj = BuildNpc(listConvertHide, objConvertModel, characterData, npcPosition + new Vector3(UnityEngine.Random.Range(-0.5f, 0.5f), UnityEngine.Random.Range(-0.5f, 0.5f))); //设置意图 NpcAIConvertCpt convertCpt = npcObj.GetComponent <NpcAIConvertCpt>(); GameDataBean gameData = GameDataHandler.Instance.manager.GetGameData(); CharacterFavorabilityBean characterFavorability = gameData.GetCharacterFavorability(long.Parse(characterData.baseInfo.characterId)); convertCpt.SetTeamData(teamCode, npcTeam, i); convertCpt.SetIntent(NpcAISundryCpt.SundryIntentEnum.GoToInn); } listExistTeamId.Add(npcTeam.id); }
/// <summary> /// 设置全体意图 /// </summary> public void SetTeamIntent(ConvertIntentEnum convertIntent) { List <NpcAISundryCpt> listNpc = NpcHandler.Instance.builderForEvent.GetSundryTeamByTeamCode(teamCode); foreach (NpcAISundryCpt itemNpc in listNpc) { NpcAIConvertCpt itemConvert = (NpcAIConvertCpt)itemNpc; itemConvert.SetIntent(convertIntent); } }