Я хочу сделать бесконечную игру бегуна. У меня есть 2 объекта, один сверху и один внизу. Игроки должны прыгать между ними или приседать по объектам. Я создал скрипт, который создает эти объекты, но иногда два объекта создаются на одной и той же позиции, поэтому игроки ничего не могут сделать. Как это решить? Могу ли я проверить другие объекты на оси X, но не на коллайдере?Случайный объект в Unity
ответ
Когда вы вызываете функцию, чтобы создать экземпляр вашего игрового объекта, проверьте, не является ли положение x последнего игрового объекта тем же, что и тот, который вы собираетесь использовать.
private Vector3 LastObjectPosition, NewObjectPosition;
private float minDistanceBetweenTwoObstacles = 5;
public void InstantiateNewObstacle()
{
// Check if the x position of the new object isn't the same
// as the the x position of the last object
if (NewObjectPosition.x != LastObjectPosition.x)
{
// Instantiate your gameobject
MyInstantiate();
}
// Else increase the x value for the x position of the new object
// and then instantiate your gameobject
else
{
NewObjectPosition.x += minDistanceBetweenTwoObstacles;
MyInstantiate();
}
}
public void MyInstantiate()
{
// Instantiate your prefab at the NewObjectPosition position
Instantiate(new GameObject(), NewObjectPosition, new Quaternion());
// Save the position of the new object as the position
// of the last object instantiated
LastObjectPosition = NewObjectPosition;
}
Надеюсь, это может вам помочь!
Новый объект никогда не будет иметь одинаковое положение.x, потому что это все время перемещается – Axel121
В основном вы просите нас предоставить вам генератор генератора и исходный код игрового контроллера! Вы должны написать один для своей игры. Не потому, что мы не хотим давать вам код, а потому, что каждая игра должна иметь свои собственные.
Для начала вы можете:
разделить вашу игру область матрицы, то есть массив какой-то, где каждая ячейка может иметь объект игры или быть пустым. тогда игровые объекты могут иметь свою собственную локальную позицию внутри этой ячейки. очевидно, что одна ячейка не может содержать два игровых объекта.
есть генератор уровня, который сообщает игровому контроллеру, где должны появляться новые объекты. Однако вы должны внедрить что-то в генератор уровня для предотвращения перекрытий.
посмотреть на этот psudo код:
void FixedUpdate()
{
if (player.transform.position.x + Half_of_screen_width_plus_margin > nextX)
{
Spawn(tmp[i].prefab, nextX);
nextX += tmp[i].distanceToNext;
i++;
}
}
Half_of_screen_width_plus_margin
для игры, чтобы предвидеть, что будет
tmp[]
представляет собой набор (не-экземпляры) объектов быть создан. каждый объект определяется произвольно.
Как вы видите, скрипт проверяет следующую позицию каждые фиксированные интервалы времени и сравнивает положение x конца экрана со следующей позицией x. Если он передается, создается следующий объект и изменяет следующую позицию x на другое место.
Если вы хотите использовать случайное поколение, тогда tmp [] следует изменить на tmp. где с каждым экземпляром создается следующее:
void FixedUpdate()
{
if (player.transform.position.x + Half_of_screen_width_plus_margin > nextX)
{
Spawn(tmp.prefab, nextX);
nextX += tmp.distanceToNext;
tmp = generate_new_random_object();
}
}
- 1. Возьмите случайный объект в сплаве
- 2. Выберите случайный объект в Jquery
- 3. AS3 Скрыть случайный объект?
- 4. Android случайный объект
- 5. Возврат Случайный объект JSON
- 6. Как создать случайный объект?
- 7. Получить случайный объект json
- 8. Спаун случайный игровой объект?
- 9. Unity - Получить случайный Skybox из массива
- 10. Слушайте случайный звуковой клип на столкновении (Unity)
- 11. Объект-объект-конструктор объекта Unity в app.config
- 12. Поверните игровой объект в Unity
- 13. Unity 3d - объект CLOTH
- 14. Unity трек объект вращение
- 15. случайный объект списка и экземпляр gameObject
- 16. 2D-игра, случайный созданный объект
- 17. Выберите случайный объект из JSON
- 18. java выбрать случайный класс/объект
- 19. Quickblox получить случайный пользовательский объект
- 20. Jquery - Выберите случайный JSON объект
- 21. Как создать случайный объект компилятором?
- 22. Случайный объект леса не загружается
- 23. Извлечь случайный объект из ArrayList
- 24. Удалить случайный объект из массива
- 25. Javascript место случайный объект/изображения в сетке
- 26. CSS/HTML случайный объект не в коде
- 27. Случайный объект в запросе страницы с SilverStripe
- 28. EmberJS - генерировать случайный объект в массиве объектов
- 29. Как отобразить случайный объект в C#
- 30. Создать случайный падающий объект в JQuery
Почему бы не использовать коллайдер? – maksymiuk
Просьба указать код, который вы используете – Maakep
Кажется, что вам нужно отслеживать эти объекты, и всякий раз, когда вы создаете новый, посмотрите на те, которые вы уже создали, чтобы убедиться, что позиция 'X' не является одинаковой как любой из них. – GantTheWanderer