@WeBBeW

Не проверяется находится ли куб на кубе. Как решить проблему?

Делаю простенькую игру.
Игра выглядит примерно как на рисунке
5ef389df9ec30943755934.jpeg
И у меня появилась проблема. Мне надо проверить находятся ли создавшийся куб на кубе?

Вот код где проверка на это
if(!SpawnCubik.created2cube)
                    StartCubeFell = true;//следующий кубик

                //print("start");

                if (SpawnCubik.CubikCreated)// проверка на создание кубика
                {

                    SpawnCubik.newNextCubeInst.GetComponent<Rigidbody>().isKinematic = false;//чтобы упало

 вот проверка -> if (SpawnCubik.newNextCubeInst.transform.position.y < (SpawnCubik.StartCoordY + SpawnCubik.successfullyFellCubik))
                    {//если упало не на куб, то игра завершена
                         print(SpawnCubik.newNextCubeInst.transform.position.y);
                         print(SpawnCubik.StartCoordY + 1f * SpawnCubik.successfullyFellCubik);
                         print("end");
                         StartCubeFell = false;
                         SpawnCubik.CubikCreated = false;
                         NotGameStartedClicCubik = true;
                    }
                    else//если упало на куб, то создаем другой куб
                    {
                         SpawnCubik.CubikCreated = false;//для создания другого кубика
                         StartCubeFell = true;
                         SpawnCubik.successfullyFellCubik++;
                         print("4");
                    }


Код где создаются кубы:
if(ClickToPlay.StartCubeFell && !CubikCreated && created2cube)
        {
            newNextCubeInst = Instantiate(prefabCube, new Vector2(-5.18f, StartCoordY +  successfullyFellCubik), Quaternion.identity) as GameObject;
            newNextCubeInst.transform.SetParent(parent);
            CubikCreated = true;
            created2cube = true;
        }

        else if (ClickToPlay.StartCubeFell && !CubikCreated)
        {
            newNextCubeInst = Instantiate(prefabCube, new Vector2(-5.18f, StartCoordY +  successfullyFellCubik), Quaternion.identity) as GameObject;
            newNextCubeInst.transform.SetParent(parent);
            CubikCreated = true;
        }


successfullyFellCubik - если создавшийся куб упал на куб, то это значение увеличивается на 1, но т.к проверка не работает, то сразу выполняется это:
else//если упало на куб, то создаем другой куб
                    {
                         SpawnCubik.CubikCreated = false;//для создания другого кубика
                         StartCubeFell = true;
                         SpawnCubik.successfullyFellCubik++;
                         print("4");
                    }
и каждый клик просто увеличивает successfullyFellCubik на 1
  • Вопрос задан
  • 92 просмотра
Решения вопроса 1
zZaKko
@zZaKko
Люблю стратегии и Unity.
Если я правильно понял, то что ты хочешь сделать, то сделай это вот как:
Пропиши встроенную функцию OnCollisionEnter2D(OnTriggerEnter2D) и когда созданный куб будет при падении косатся ,уже стоящий, кубик, то сравни их позиции по векторе y.
Вот как приблизительно должно это быть:
void OnCollisionEnter2D(Collision2D coll){
if(coll.gameobject.tag == lastcube.tag){
if(coll.gameobject.transform.position.y > lastcube.transform.position.y)
твой код
}
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы