public void SetHuanWeiFuActiveInfo(int countPath, int countMark)
    {
        if (IsActiveHuanWeiPos)
        {
            return;
        }
        IsActiveHuanWeiPos = true;
        AiPathCtrlTran     = AiPathGroupCtrl.FindAiPathTran(countPath);
        StartMarkCount     = countMark;

        if (AiPathCtrlTran != null)
        {
            AimMarkTran = AiPathCtrlTran.GetChild(StartMarkCount);

            AiMark     markAimScript = AimMarkTran.GetComponent <AiMark>();
            AiPathCtrl pathScript    = AiPathCtrlTran.GetComponent <AiPathCtrl>();
            SetPlayerAimMarkData(pathScript.PathIndex, markAimScript.getMarkCount(), PlayerTran.name);
        }

        iTween itweenScript = GetComponent <iTween>();

        if (itweenScript != null)
        {
            itweenScript.isRunning = false;
            Destroy(itweenScript);
        }
        Invoke("MoveAiPlayerByItween", 0.05f);
    }
    void checkPlayerMoveDir()
    {
        if (IsActiveHuanWeiPos)
        {
            return;
        }

        if (AimMarkTran == null)
        {
            return;
        }

        Vector3 posA = AimMarkTran.position;
        Vector3 posB = PlayerTran.position;

        posA.y = posB.y = 0f;
        Vector3 vecB = posA - posB;

        if (Vector3.Distance(posA, posB) > 18f)
        {
            return;
        }

        Vector3 vecA = AimMarkTran.forward;

        vecA.y = vecB.y = 0f;
        float cosAB = Vector3.Dot(vecA, vecB);

        if (cosAB <= 0f)
        {
            AiMark markScript = AimMarkTran.GetComponent <AiMark>();
            if (markScript == null)
            {
                return;
            }
            int conutTmp  = AimMarkTran.parent.childCount - 1;
            int markCount = markScript.getMarkCount();

            if (markCount != conutTmp)
            {
                AimMarkTran = markScript.mNextMark;
            }

            if (AimMarkTran != null)
            {
                AiMark     markAimScript = AimMarkTran.GetComponent <AiMark>();
                AiPathCtrl pathScript    = AiPathCtrlTran.GetComponent <AiPathCtrl>();
                SetPlayerAimMarkData(pathScript.PathIndex, markAimScript.getMarkCount(), PlayerTran.name);
                UpdateAiPlayerAction();
            }
        }
    }
Example #3
0
    public void MakePlayerMoveToAiMark(AiMark script)
    {
        IsMoveToAiMark = true;
        Transform markTran = script.transform;

        transform.position = markTran.position;
        transform.rotation = markTran.rotation;

        MarkCount    = script.getMarkCount();
        AiPathScript = markTran.parent.GetComponent <AiPathCtrl>();
        InitMovePlayerByMarkSpeed();
        IsMoveToAiMark = false;
    }
Example #4
0
    void CheckNetPlayerRank()
    {
        if (IsStopCheckRank)
        {
            CancelInvoke("CheckNetPlayerRank");
            return;
        }

        /*if (Time.frameCount % 100 == 0) {
         *      Debug.Log("*****************");
         * }*/

        int        j             = 0;
        bool       isContinue    = false;
        AiPathCtrl pathScriptPar = null;
        AiPathCtrl pathScriptCh  = null;

        for (int i = 0; i < MaxPlayerRankNum; i++)
        {
            if (IsStopCheckRank)
            {
                break;
            }

            if (mRankPlayer[i].IsRunToEndPoint)
            {
                continue;
            }

            if (mRankPlayer[i].AimMarkDataScript != null)
            {
                mRankPlayer[i].IsPlayer = mRankPlayer[i].AimMarkDataScript.GetIsPlayer();
                isContinue = mRankPlayer[i].AimMarkDataScript.GetIsGameOver();
            }
            else
            {
                isContinue = true;
                mRankPlayer[i].IsPlayer = false;
            }

            if (isContinue)
            {
                isContinue = false;
                continue;
            }

            j = i + 1;
            if (j > 7)
            {
                break;
            }

            parentPlayer = mRankPlayer[i].Player;
            childPlayer  = mRankPlayer[j].Player;
            aimMarkPar   = mRankPlayer[i].mPlayerAimMark;
            aimMarkCh    = mRankPlayer[j].mPlayerAimMark;
            if (parentPlayer == null || childPlayer == null || aimMarkPar == null || aimMarkCh == null)
            {
                continue;
            }

            int pathKeyP = mRankPlayer[i].mBikePathKey;
            int pathKeyC = mRankPlayer[j].mBikePathKey;
            if (pathKeyP < pathKeyC)
            {
                /*if(mRankPlayer[i].IsPlayer || mRankPlayer[j].IsPlayer)
                 * {
                 *      Debug.Log("***************************1111, IsPlayer_1 " + mRankPlayer[i].IsPlayer
                 + ", IsPlayer_2 " + mRankPlayer[j].IsPlayer);
                 + }*/
                UpdateNetPlayerRank(j);
                break;
            }
            else if (pathKeyP > pathKeyC)
            {
                continue;
            }

            int pathIdPar = aimMarkPar.parent.GetInstanceID();
            int pathIdCh  = aimMarkCh.parent.GetInstanceID();
            if (pathIdPar == pathIdCh)
            {
                AiMark markScriptP = aimMarkPar.GetComponent <AiMark>();
                AiMark markScriptC = aimMarkCh.GetComponent <AiMark>();
                int    markCountP  = markScriptP.getMarkCount();
                int    markCountC  = markScriptC.getMarkCount();
                if (markCountP < markCountC)
                {
                    /*if(mRankPlayer[i].IsPlayer || mRankPlayer[j].IsPlayer)
                     * {
                     *      Debug.Log("***************************2222, IsPlayer_1 " + mRankPlayer[i].IsPlayer
                     + ", IsPlayer_2 " + mRankPlayer[j].IsPlayer);
                     + }*/
                    UpdateNetPlayerRank(j);
                    break;
                }
                else if (markCountP > markCountC)
                {
                    continue;
                }
            }
            else
            {
                pathScriptPar = aimMarkPar.parent.GetComponent <AiPathCtrl>();
                pathScriptCh  = aimMarkCh.parent.GetComponent <AiPathCtrl>();
                if (pathScriptPar.KeyState > pathScriptCh.KeyState)
                {
                    continue;
                }
                else if (pathScriptPar.KeyState < pathScriptCh.KeyState)
                {
                    UpdateNetPlayerRank(j);
                    break;
                }
            }

            Vector3 vecA = parentPlayer.transform.position - childPlayer.transform.position;
            Vector3 vecB = aimMarkPar.position - parentPlayer.transform.position;
            Vector3 vecC = childPlayer.transform.forward;
            Vector3 vecD = parentPlayer.transform.forward;
            vecA.y = 0f;
            vecB.y = 0f;
            vecC.y = 0f;
            vecD.y = 0f;
            vecA   = vecA.normalized;
            vecB   = vecB.normalized;
            vecC   = vecC.normalized;
            vecD   = vecD.normalized;

            float cosDB = Vector3.Dot(vecD, vecB);
            float cosDC = Vector3.Dot(vecD, vecC);
            float cosAC = Vector3.Dot(vecA, vecC);
            if ((cosDB > 0f && cosDC > 0f && cosAC < 0f) ||
                (cosDB <= 0f && cosDC > 0f && cosAC > 0f) ||
                (cosDB <= 0f && cosDC <= 0f && cosAC < 0f))
            {
                /*if(mRankPlayer[i].IsPlayer || mRankPlayer[j].IsPlayer)
                 * {
                 *      Debug.Log("*********33333, IsPlayer_1 " + mRankPlayer[i].IsPlayer
                 + ", IsPlayer_2 " + mRankPlayer[j].IsPlayer
                 + ", pathIdPar " + pathIdPar + ", pathIdCh " + pathIdCh);
                 + }*/
                UpdateNetPlayerRank(j);
                break;
            }
            //Debug.Log("i = " + i + ", j = " + j);
        }
        return;
    }
    // Use this for initialization
    void Start()
    {
        ChuanShenScript  = GetComponentInChildren <ChuanShenCtrl>();
        ZhuJiaoNanScript = GetComponentInChildren <ZhuJiaoNan>();

        netView = GetComponent <NetworkView>();
        if (AimMarkDataScript == null)
        {
            AimMarkDataScript = gameObject.AddComponent <PlayerAimMarkData>();
        }

        PlayerObj          = gameObject;
        PlayerTran         = transform;
        RigObj             = GetComponent <Rigidbody>();
        RigObj.isKinematic = true;

        SetRankPlayerArray();

        mGameTime = 1000;
        CreatePlayerNeedObj();

        AiPathCtrlTran = GameCtrlXK.GetInstance().AiPathCtrlTran.GetChild(0);
        AimMarkTran    = AiPathCtrlTran.GetChild(0);
        if (AimMarkTran != null)
        {
            AiMark     markAimScript = AimMarkTran.GetComponent <AiMark>();
            AiPathCtrl pathScript    = AiPathCtrlTran.GetComponent <AiPathCtrl>();
            SetPlayerAimMarkData(pathScript.PathIndex, markAimScript.getMarkCount(), PlayerTran.name);
        }

        mBakeTimePointPos  = AimMarkTran.position;
        mBakeTimePointPos += Vector3.up * 0.5f;
        mBakeTimePointRot  = AimMarkTran.forward;

        if (GameCtrlXK.GetInstance().PlayerMarkTest != null)
        {
            AiPathCtrlTran = GameCtrlXK.GetInstance().PlayerMarkTest.parent;
            AiMark markScript = GameCtrlXK.GetInstance().PlayerMarkTest.GetComponent <AiMark>();
            AimMarkTran = markScript.mNextMark;
            if (AimMarkTran != null)
            {
                AiMark     markAimScript = AimMarkTran.GetComponent <AiMark>();
                AiPathCtrl pathScript    = AiPathCtrlTran.GetComponent <AiPathCtrl>();
                SetPlayerAimMarkData(pathScript.PathIndex, markAimScript.getMarkCount(), PlayerTran.name);
            }
            TestPosCount++;

            Transform posTran = GameCtrlXK.GetInstance().PlayerMarkTest;
            mBakeTimePointRot   = posTran.forward;
            mBakeTimePointRot.y = 0f;
            switch (TestPosCount)
            {
            case 1:
                mBakeTimePointPos = posTran.position - posTran.right * 9f + mBakeTimePointRot;
                break;

            case 2:
                mBakeTimePointPos = posTran.position + posTran.right * 9f + mBakeTimePointRot;
                break;

            case 3:
                mBakeTimePointPos = posTran.position - posTran.right * 6f + mBakeTimePointRot * 4f;
                break;

            case 4:
                mBakeTimePointPos = posTran.position + posTran.right * 6f + mBakeTimePointRot * 4f;
                break;

            case 5:
                mBakeTimePointPos = posTran.position - posTran.right * 3f + mBakeTimePointRot * 7f;
                break;

            case 6:
                mBakeTimePointPos = posTran.position + posTran.right * 3f + mBakeTimePointRot * 7f;
                break;

            case 7:
                mBakeTimePointPos = posTran.position + mBakeTimePointRot * 10f;
                TestPosCount      = 0;
                break;
            }
            mBakeTimePointPos  += Vector3.up * 0.5f;
            PlayerTran.position = mBakeTimePointPos;
            PlayerTran.forward  = mBakeTimePointRot;
        }
    }
    void OnFinishMoveAiPlayerByPath()
    {
        AiPathCtrl pathScript = AimMarkTran.parent.GetComponent <AiPathCtrl>();
        int        rv         = pathScript.GetNextPathNum();

        if (rv > 0)
        {
            int       key        = 0;
            Transform trNextPath = null;
            while (trNextPath == null)
            {
                int randVal = Random.Range(0, 1000) % 3;
                switch (randVal)
                {
                case 0:
                    trNextPath = pathScript.mNextPath1;
                    break;

                case 1:
                    trNextPath = pathScript.mNextPath2;
                    break;

                case 2:
                    trNextPath = pathScript.mNextPath3;
                    break;
                }

                key++;
                if (key > 2)
                {
                    if (pathScript.mNextPath1 != null)
                    {
                        trNextPath = pathScript.mNextPath1;
                    }
                    else if (pathScript.mNextPath2 != null)
                    {
                        trNextPath = pathScript.mNextPath2;
                    }
                    else if (pathScript.mNextPath3 != null)
                    {
                        trNextPath = pathScript.mNextPath3;
                    }
                    break;
                }
            }

            if (trNextPath != null)
            {
                AimMarkTran = trNextPath.GetChild(0);
            }
        }
        else
        {
            Invoke("MoveAiPlayerToEndPos", 0.05f);
            return;
        }
        SetPlayerPathCount();

        AiPathCtrlTran = AimMarkTran.parent;

        if (AimMarkTran != null)
        {
            AiMark markAimScript = AimMarkTran.GetComponent <AiMark>();
            pathScript = AiPathCtrlTran.GetComponent <AiPathCtrl>();
            SetPlayerAimMarkData(pathScript.PathIndex, markAimScript.getMarkCount(), PlayerTran.name);
            UpdateAiPlayerAction();
        }
        Invoke("MoveAiPlayerByItween", 0.05f);
    }
    void checkPlayerMoveDir()
    {
        if (IsCheckMoreNextPath)
        {
            CheckMoreNextPathDir();
            return;
        }

        if (AimMarkTran == null)
        {
            return;
        }

        Vector3 vecA = AimMarkTran.forward;
        Vector3 vecB = AimMarkTran.position - PlayerTran.position;
        Vector3 vecC = PlayerTran.forward;

        vecA.y = vecB.y = vecC.y = 0f;
        float cosAC = Vector3.Dot(vecA, vecC);
        float cosAB = Vector3.Dot(vecA, vecB);
        float cosBC = Vector3.Dot(vecB, vecC);

        if (cosAC < 0f && cosBC < 0f && !GameOverCtrl.GetInstance().CheckIsActiveOver())
        {
            if (!IsDonotTurnRight && !IsDonotTurnLeft &&
                (AutoFireScript.PathKeyState == 0 ||
                 IntoPuBuCtrl.IsIntoPuBu ||
                 PlayerAutoFire.IsRestartMove))
            {
                if (bIsTurnRight)
                {
                    IsDonotTurnRight = true;
                    IsDonotTurnLeft  = false;
                }
                else if (bIsTurnLeft)
                {
                    IsDonotTurnRight = false;
                    IsDonotTurnLeft  = true;
                }
            }
            SetIsDirWrong(true);
        }
        else
        {
            IsDonotTurnRight = false;
            IsDonotTurnLeft  = false;

            SetIsDirWrong(false);
            if (cosBC <= 0f && cosAB <= 0f)
            {
                ParentPath = AimMarkTran.parent;                 //next path
                AiMark markScript = AimMarkTran.GetComponent <AiMark>();
                if (markScript == null)
                {
                    return;
                }
                mBakeTimePointPos = AimMarkTran.position;
                mBakeTimePointRot = AimMarkTran.forward;
                AutoFireScript.SetPlayerPreMark(AimMarkTran);

                int conutTmp  = AimMarkTran.parent.childCount - 1;
                int markCount = markScript.getMarkCount();
                AimMarkTran = markScript.mNextMark;
                if (markCount == conutTmp)
                {
                    if (AimMarkTran == null)
                    {
                        //player run to end
                        this.enabled = false;
//						IsRunToEndPoint = true;

                        DaoJiShiCtrl.GetInstance().StopDaoJiShi();
                        GameOverCtrl.GetInstance().HiddenContinueGame();
                        FinishPanelCtrl.GetInstance().ShowFinishPanel();

                        AutoFireScript.SetPlayerMvSpeed(0f);
                        //AutoFireScript.CloseWaterParticle();
                        return;
                    }
                    AiPathCtrlTran = AimMarkTran.parent;                     //next path
                    AutoFireScript.SetPathKeyState(AiPathCtrlTran.GetComponent <AiPathCtrl>());

                    if (ParentPath != null)
                    {
                        AiParentPathScript = ParentPath.GetComponent <AiPathCtrl>();
                        if (AiParentPathScript.GetNextPathNum() > 1)
                        {
                            IsCheckMoreNextPath = true;
                        }
                    }
                }
            }
        }
    }
    void CheckMoreNextPathDir()
    {
        if (AiParentPathScript == null)
        {
            return;
        }

        bool isDirRight = false;

        //int [] DirTag = new int[3]; //DirTag: 0 -> dir is wrong, 1 -> dir is right.
        Transform [] aimMarkTranArray = new Transform[3];
        aimMarkTranArray[0] = AiParentPathScript.mNextPath1;
        aimMarkTranArray[1] = AiParentPathScript.mNextPath2;
        aimMarkTranArray[2] = AiParentPathScript.mNextPath3;

        Transform aimMarkTran = null;
        Vector3   vecA        = Vector3.zero;
        Vector3   vecB        = Vector3.zero;
        Vector3   vecC        = Vector3.zero;
        float     cosAC       = 0f;
        float     cosAB       = 0f;
        float     cosBC       = 0f;

        for (int i = 0; i < 3; i++)
        {
            if (aimMarkTranArray[i] == null)
            {
                continue;
            }

            aimMarkTran = aimMarkTranArray[i].GetChild(0);
            if (aimMarkTran == null)
            {
                continue;
            }

            vecA   = aimMarkTran.forward;
            vecB   = aimMarkTran.position - PlayerTran.position;
            vecC   = PlayerTran.forward;
            vecA.y = vecB.y = vecC.y = 0f;
            cosAC  = Vector3.Dot(vecA, vecC);
            cosAB  = Vector3.Dot(vecA, vecB);
            cosBC  = Vector3.Dot(vecB, vecC);

            if (cosAC < 0f && cosBC < 0f)
            {
                //dir is wrong.
            }
            else
            {
                isDirRight = true;
                float disAB = Vector3.Distance(vecB, Vector3.zero);
                if (cosAB <= 0f && disAB < 15f)
                {
                    IsCheckMoreNextPath = false;
                    ParentPath          = aimMarkTran.parent;
                    AimMarkTran         = aimMarkTran;

                    AiMark markScript = AimMarkTran.GetComponent <AiMark>();
                    if (markScript == null)
                    {
                        continue;
                    }
                    mBakeTimePointPos = AimMarkTran.position;
                    mBakeTimePointRot = AimMarkTran.forward;
                    AutoFireScript.SetPlayerPreMark(AimMarkTran);

                    int conutTmp  = AimMarkTran.parent.childCount - 1;
                    int markCount = markScript.getMarkCount();
                    AimMarkTran    = markScript.mNextMark;
                    AiPathCtrlTran = AimMarkTran.parent;
                    AutoFireScript.SetPathKeyState(AiPathCtrlTran.GetComponent <AiPathCtrl>());

                    if (markCount == conutTmp)
                    {
                        if (AimMarkTran == null)
                        {
                            //player run to end
                            this.enabled = false;

                            DaoJiShiCtrl.GetInstance().StopDaoJiShi();
                            GameOverCtrl.GetInstance().HiddenContinueGame();
                            FinishPanelCtrl.GetInstance().ShowFinishPanel();

                            AutoFireScript.SetPlayerMvSpeed(0f);
                            //AutoFireScript.CloseWaterParticle();
                            return;
                        }
                        AiPathCtrlTran = AimMarkTran.parent;                         //next path
                        AutoFireScript.SetPathKeyState(AiPathCtrlTran.GetComponent <AiPathCtrl>());

                        if (ParentPath != null)
                        {
                            AiParentPathScript = ParentPath.GetComponent <AiPathCtrl>();
                            if (AiParentPathScript.GetNextPathNum() > 1)
                            {
                                IsCheckMoreNextPath = true;
                            }
                        }
                    }
                    return;
                }
            }
        }

        if (isDirRight && !AutoFireScript.CheckPlayerIsMoveDirWrong())
        {
            IsDonotTurnRight = false;
            IsDonotTurnLeft  = false;
            SetIsDirWrong(false);
        }
        else
        {
            if (!IsDonotTurnRight && !IsDonotTurnLeft &&
                (AutoFireScript.PathKeyState == 0 ||
                 IntoPuBuCtrl.IsIntoPuBu ||
                 PlayerAutoFire.IsRestartMove))
            {
                if (bIsTurnRight)
                {
                    IsDonotTurnRight = true;
                    IsDonotTurnLeft  = false;
                }
                else if (bIsTurnLeft)
                {
                    IsDonotTurnRight = false;
                    IsDonotTurnLeft  = true;
                }
            }
            SetIsDirWrong(true);
        }
    }
Example #9
0
    void checkNetPlayerRank()
    {
        if (IsStopCheckRank)
        {
            CancelInvoke("checkNetPlayerRank");
            return;
        }

        if (mRankPlayer == null)
        {
            return;
        }

        int  j          = 0;
        bool isContinue = false;

        for (int i = 0; i < 8; i++)
        {
            if (mRankPlayer[i].NetScript != null)
            {
                mRankPlayer[i].IsPlayer = mRankPlayer[i].NetScript.CheckObjIsPlayer();
                isContinue = mRankPlayer[i].NetScript.GetIsGameOver();
            }
            else if (mRankPlayer[i].AiNetScript != null)
            {
                mRankPlayer[i].IsPlayer = false;
                isContinue = mRankPlayer[i].AiNetScript.GetIsStopMoveAi();
            }
            else
            {
                isContinue = true;
                mRankPlayer[i].IsPlayer = false;
            }

            if (isContinue)
            {
                isContinue = false;
                continue;
            }

            j = i + 1;
            if (j > 7)
            {
                break;
            }

            parentPlayer = mRankPlayer[i].player;
            childPlayer  = mRankPlayer[j].player;
            aimMarkPar   = mRankPlayer[i].mBikeAimMark;
            aimMarkCh    = mRankPlayer[j].mBikeAimMark;
            if (parentPlayer == null || childPlayer == null || aimMarkPar == null || aimMarkCh == null)
            {
                continue;
            }

            int pathKeyP = mRankPlayer[i].mBikePathKey;
            int pathKeyC = mRankPlayer[j].mBikePathKey;
            if (pathKeyP < pathKeyC)
            {
//				if(mRankPlayer[i].IsPlayer || mRankPlayer[j].IsPlayer)
//				{
//					Debug.Log("***************************1111, IsPlayer_1 " + mRankPlayer[i].IsPlayer
//					          + ", IsPlayer_2 " + mRankPlayer[j].IsPlayer);
//				}
                updateNetPlayerRank(j);
                break;
            }
            else if (pathKeyP > pathKeyC)
            {
                continue;
            }

            int pathIdPar = aimMarkPar.parent.GetInstanceID();
            int pathIdCh  = aimMarkCh.parent.GetInstanceID();
            if (pathIdPar == pathIdCh)
            {
                AiMark markScriptP = aimMarkPar.GetComponent <AiMark>();
                AiMark markScriptC = aimMarkCh.GetComponent <AiMark>();
                int    markCountP  = markScriptP.getMarkCount();
                int    markCountC  = markScriptC.getMarkCount();
                if (markCountP < markCountC)
                {
//					if(mRankPlayer[i].IsPlayer || mRankPlayer[j].IsPlayer)
//					{
//						Debug.Log("***************************2222, IsPlayer_1 " + mRankPlayer[i].IsPlayer
//						          + ", IsPlayer_2 " + mRankPlayer[j].IsPlayer);
//					}
                    updateNetPlayerRank(j);
                    break;
                }
                else if (markCountP > markCountC)
                {
                    continue;
                }
            }

            Vector3 vecA = parentPlayer.transform.position - childPlayer.transform.position;
            Vector3 vecB = aimMarkPar.position - parentPlayer.transform.position;
            Vector3 vecC = childPlayer.transform.forward;
            Vector3 vecD = parentPlayer.transform.forward;
            vecA.y = 0f;
            vecB.y = 0f;
            vecC.y = 0f;
            vecD.y = 0f;
            vecA   = vecA.normalized;
            vecB   = vecB.normalized;
            vecC   = vecC.normalized;
            vecD   = vecD.normalized;

            float cosDB = Vector3.Dot(vecD, vecB);
            float cosDC = Vector3.Dot(vecD, vecC);
            float cosAC = Vector3.Dot(vecA, vecC);
            if ((cosDB > 0f && cosDC > 0f && cosAC < 0f) ||
                (cosDB <= 0f && cosDC > 0f && cosAC > 0f) ||
                (cosDB <= 0f && cosDC <= 0f && cosAC < 0f))
            {
//				if(mRankPlayer[i].IsPlayer || mRankPlayer[j].IsPlayer)
//				{
//					Debug.Log("*********33333, IsPlayer_1 " + mRankPlayer[i].IsPlayer
//					          + ", IsPlayer_2 " + mRankPlayer[j].IsPlayer
//					          + ", pathIdPar " + pathIdPar + ", pathIdCh " + pathIdCh);
//				}
                updateNetPlayerRank(j);
                break;
            }
            //Debug.Log("i = " + i + ", j = " + j);
        }
        return;
    }