public void SpawnAllDaoJu() { if (!IsSpawnDJ) { return; } PointList = new List <Transform>(); CheckDaoJuSpawnPointList(); int randVal = 0; int max = DaoJuArray.Length; Transform trEndPoint = null; for (int i = 0; i < max; i++) { randVal = Random.Range(0, 10000) % 100; if (randVal >= DaoJuGaiLv[i]) { continue; } trEndPoint = GetDaoJuSpawnPoint(i); if (trEndPoint == null) { continue; } GameObject daoJuObj = (GameObject)Instantiate(DaoJuArray[i], transform.position, transform.rotation); BuJiBaoCtrl buJiScript = daoJuObj.GetComponent <BuJiBaoCtrl>(); buJiScript.SetIsSpawnDaoJu(); buJiScript.MoveDaoJuToPoint(trEndPoint); } }
/// <summary> /// 创建大血包道具. /// </summary> bool CreateBigXueBaoDaoJu(PlayerEnum playerIndex) { bool isCreate = false; if (m_BigXueBaoDt != null && m_BigXueBaoDt.XueBaoPrefab != null) { int randVal = 0; randVal = Random.Range(0, 10000) % 100; if (randVal >= m_BigXueBaoDt.GaiLv) { //没有随机上. } else { Transform trEndPoint = null; //PointList = new List<Transform>(); //CheckDaoJuSpawnPointList(); //trEndPoint = GetDaoJuSpawnPoint(0); if (XKPlayerMoveCtrl.GetInstance(playerIndex) != null) { trEndPoint = XKPlayerMoveCtrl.GetInstance(playerIndex).transform; } if (trEndPoint == null) { //没有找到道具落点. } else { //产生道具. GameObject daoJuObj = (GameObject)Instantiate(m_BigXueBaoDt.XueBaoPrefab, transform.position, transform.rotation); BuJiBaoCtrl buJiScript = daoJuObj.GetComponent <BuJiBaoCtrl>(); if (buJiScript != null) { isCreate = true; buJiScript.SetIsSpawnDaoJu(playerIndex); //血包道具自动吸附到玩家位置. buJiScript.MoveDaoJuToPoint(trEndPoint); } } } } return(isCreate); }
public void SpawnAllDaoJu(PlayerEnum playerIndex) { float timeLengQue = 60f; if (XkGameCtrl.GetInstance() != null) { timeLengQue = XkGameCtrl.GetInstance().m_NpcDiaoDaoJuTimeLengQue; } if (Time.time - m_TimeLastCreatDaoJu < timeLengQue) { //间隔时间小于x秒则不产生补给包. return; } m_TimeLastCreatDaoJu = Time.time; if (!IsSpawnDJ) { return; } bool isCreateBigXueBao = CreateBigXueBaoDaoJu(playerIndex); if (isCreateBigXueBao == true) { //如果产生了大血包道具就不再产生其它道具. return; } PointList = new List <Transform>(); CheckDaoJuSpawnPointList(); int randVal = 0; int max = DaoJuArray.Length; Transform trEndPoint = null; for (int i = 0; i < max; i++) { randVal = Random.Range(0, 10000) % 100; if (DaoJuGaiLv.Length > i && randVal >= DaoJuGaiLv[i]) { continue; } if (DaoJuArray[i] == null) { continue; } trEndPoint = null; BuJiBaoCtrl buJiBaoCom = DaoJuArray[i].GetComponent <BuJiBaoCtrl>(); if (buJiBaoCom != null && buJiBaoCom.BuJiBao == BuJiBaoType.BigYiLiaoBaoDJ || buJiBaoCom.BuJiBao == BuJiBaoType.YiLiaoBaoDJ) { //医疗包道具. if (XKPlayerMoveCtrl.GetInstance(playerIndex) != null) { trEndPoint = XKPlayerMoveCtrl.GetInstance(playerIndex).transform; } } if (trEndPoint == null) { trEndPoint = GetDaoJuSpawnPoint(i); } if (trEndPoint == null) { continue; } GameObject daoJuObj = (GameObject)Instantiate(DaoJuArray[i], transform.position, transform.rotation); BuJiBaoCtrl buJiScript = daoJuObj.GetComponent <BuJiBaoCtrl>(); buJiScript.SetIsSpawnDaoJu(playerIndex); buJiScript.MoveDaoJuToPoint(trEndPoint); } }