/// <summary> /// 创建炸弹篮球的爆炸粒子特效. /// </summary> public void CreatZhaDanBallExplosion() { if (m_BallData.m_ExpZhaDanBallPrefab != null) { Instantiate(m_BallData.m_ExpZhaDanBallPrefab, SSGameRootCtrl.GetInstance().MissionCleanup, transform); } else { UnityLogWarning("m_ExpZhaDanBallPrefab was null!!!"); } }
/// <summary> /// 清理游戏场景中的篮球. /// </summary> void CleanGameBalls() { UnityLog("CleanGameBalls..."); SSBallAniCtrl[] ballAy = SSGameRootCtrl.GetInstance().BallCleanup.GetComponentsInChildren <SSBallAniCtrl>(); for (int i = 0; i < ballAy.Length; i++) { if (ballAy[i] != null) { ballAy[i].RemoveSelf(); } } }
/// <summary> /// 获取游戏中篮球的个数. /// </summary> public int GetGameBallsCount() { SSBallAniCtrl[] ballAy = SSGameRootCtrl.GetInstance().BallCleanup.GetComponentsInChildren <SSBallAniCtrl>(); //UnityLog("GetGameBallsCount -> count ================= " + ballAy.Length); return(ballAy.Length); }
void SpawnGameBall(int indexBallSpawn = -1) { if (m_BallPrefabArray.Length <= 0) { Debug.LogWarning("m_BallPrefabArray -> m_BallPrefab is wrong!"); return; } int randBallVal = Random.Range(0, 100) % m_BallPrefabArray.Length; if (m_BallPrefabArray[randBallVal] == null) { Debug.LogWarning("SpawnGameBall -> m_BallPrefabArray[" + randBallVal + "] is null"); return; } if (m_SpawnPointTrArray.Length <= 0) { Debug.LogWarning("SpawnGameBall -> m_SpawnPointTrArray was wrong!"); return; } int maxPointVal = SSGameDataCtrl.GetInstance().GetBallCreatRuleDt(IndexCreatBallJieDuan).MaxIndex; if (maxPointVal == 0 || maxPointVal > m_SpawnPointTrArray.Length) { maxPointVal = m_SpawnPointTrArray.Length; } int randVal = (indexBallSpawn == -1) ? Random.Range(0, 1000) % maxPointVal : indexBallSpawn; if (indexBallSpawn == -1 && m_LastIndexPoint == randVal) { //避免和上次的产生点索引相同. if (randVal > 0) { randVal--; } else { randVal++; } } if (m_SpawnPointTrArray[randVal] == null) { Debug.LogWarning("SpawnGameBall -> m_SpawnPointTrArray[" + randVal + "] is null"); return; } m_LastIndexPoint = randVal; Transform trSpawn = m_SpawnPointTrArray[randVal].transform; GameObject obj = (GameObject)Instantiate(m_BallPrefabArray[randBallVal], SSGameRootCtrl.GetInstance().BallCleanup, trSpawn); SSBallAniCtrl ballAni = obj.GetComponent <SSBallAniCtrl>(); ballAni.Init(m_PlayerIndex, IndexCreatBallJieDuan); if (IsLianFaBall) { ballAni.m_BallMove.IsLastLianFaQiu = true; if (m_LianFaBallCount >= m_LianFaBallNum - 1) { //连发球的最后一个. ballAni.m_BallMove.IsLastLianFaQiu = true; } else { ballAni.m_BallMove.IsLastLianFaQiu = false; } } }