Exemplo n.º 1
0
    private void GetLinkedBalls(BallView ballView, ref List <BallView> linkedBalls)
    {
        var allNearbyBalls = ballView.GetCollideWith();
        var matchBalls     = allNearbyBalls.FindAll(n => n.ballConfig.id == ballView.ballConfig.id);

        if (matchBalls.Count > 0)
        {
            //Remove already listed balls
            for (int i = 0; i < linkedBalls.Count; i++)
            {
                if (matchBalls.Contains(linkedBalls[i]))
                {
                    matchBalls.Remove(linkedBalls[i]);
                }
            }

            //Add new matched balls
            linkedBalls.AddRange(matchBalls);

            //Run recursive search of others balls
            for (int i = 0; i < matchBalls.Count; i++)
            {
                GetLinkedBalls(matchBalls[i], ref linkedBalls);
            }
        }
    }