public static SSGameRootCtrl GetInstance()
 {
     if (_Instance == null)
     {
         GameObject obj = new GameObject("_GameRoot");
         _Instance = obj.AddComponent <SSGameRootCtrl>();
         _Instance.Init();
     }
     return(_Instance);
 }
 /// <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!!!");
     }
 }
Exemplo n.º 3
0
 /// <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();
         }
     }
 }
Exemplo n.º 4
0
 /// <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;
            }
        }
    }