public void createAIImplement(int num, int type, string swopPoints, AIAgentInitParams args) { Debug.Log("createAIImplement"); if (GameObject.Find(swopPoints) == null) { Debug.LogError("SwopPoints Not Found!"); return; } Transform sp = GameObject.Find(swopPoints).transform; Transform swopTrans; Debug.Log("createAIImplement"); for (int i = 0; i < num; i++) { swopTrans = sp.GetChild(i); if (swopTrans == null) { Debug.LogError("GeneratePlayer出生点错误!"); return; } GameObject AI = (GameObject)Instantiate(AIPrefabs[type], swopTrans.position, swopTrans.rotation); //非master_client需要对AI进行裁剪或者增添 if (!is_master_client) { //尝试禁用掉非master_client的ai组件 if (AI.GetComponent <WanderAIAgent>() != null) { AI.GetComponent <WanderAIAgent>().enabled = false; } if (AI.GetComponent <NavMeshAgent>() != null) { AI.GetComponent <NavMeshAgent>().enabled = false; } } //创建的AI初始化信息 begin_id++; AI.name = "AI" + begin_id; AI.GetComponent <NetSyncController>().setSyncID(AI.name); AI.GetComponent <AIAgent>().SetInitParams(args); AI_List.Add(AI.name, AI); AI_Action_List.Add(AI.name, AI.GetComponent <AIActionController>()); //初始化位置和转向预测数据 AI_fPosition_List.Add(AI.name, AI.transform.position); AI_lPosition_List.Add(AI.name, AI.transform.position); AI_fRotation_List.Add(AI.name, AI.transform.eulerAngles); AI_lRotation_List.Add(AI.name, AI.transform.eulerAngles); } }
public void CreateAI(int num, int type, string swopPoints, AIAgentInitParams args) { if (!GameMgr.instance)//离线状态 { createAIImplement(num, type, swopPoints, args); return; } if (GameMgr.instance.isMasterClient) { Debug.Log("call CreateAI"); createAIImplement(num, type, swopPoints, args); m_NetSyncController.RPC(this, "createAIImplement", num, type, swopPoints, args); } }
public abstract void SetInitParams(AIAgentInitParams initParams);
public override void SetInitParams(AIAgentInitParams initParams) { _initParams = (EmptyAIAgentInitParams)initParams; }
public override void SetInitParams(AIAgentInitParams initParams) { _initParams = (WanderAIAgentInitParams)initParams; }
public override void SetInitParams(AIAgentInitParams initParams) { _initParams = (TrackingAIAgentInitParams)initParams; }
public override void SetInitParams(AIAgentInitParams initParams) { _initParams = (TurretAIAgentInitParams)initParams; }