Форум программистов, компьютерный форум, киберфорум
Unity, Unity3D
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
0 / 0 / 0
Регистрация: 09.12.2021
Сообщений: 3

Instantiate спавнит множество клонов объекта, или не спавнит вовсе

09.12.2021, 02:04. Показов 1824. Ответов 4

Студворк — интернет-сервис помощи студентам
Всем здравствую, дорогие друзья! Я - начинающий человек в области гейм дизайна. Попытался сделать набросок игры, где игрок, при нажатии "space" летает, но не суть. Вся проблема заключается в том, что я решил не двигать самого игрока, а двигать пол под ним(gameObject platform). Получается платформа двигается влево, проходит зону камеры, удаляется, потом с помощью instantiate спавнится новый "пол"(пол во всю длину камеры сверху, и снизу, чтобы игрок не вылетел за пределы камеры).И так по кругу. Движок - unity. Игра в 2D
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
 
public class platformController : MonoBehaviour
{
    public int speedPlatform;
 
    public GameObject platform;
 
    public bool b = false; 
    void Start()
    {
        
    }
 
 
    void Update()
    {
        transform.Translate(transform.right * -speedPlatform * Time.deltaTime);
 
        if(transform.position.x == -19)
        {
            Instantiate(platform, new Vector3(0, -4.5f), Quaternion.identity);
            b = true;
        }
        
        if (transform.position.x < -25)
        {
            Destroy(platform);
        }
 
        
    }
 
 
 
 
    /*public void OnTriggerEnter2D(Collider2D collision)
    {
        Instantiate(platform, new Vector3(15, -4.5f), Quaternion.identity);
        b = true;
    }
 
    private void OnTriggerExit2D(Collider2D collision)
    {
        Destroy(platform);
    }*/
}
Закоментирован неудачный вариант, где спавнилось большое кол-во platform. Когда platform входит в триггер, то она спавнится, постепенно увеличивая кол-во platform во время спавна(за один проход может спавнится несколько десятков platform и я не знаю, что с этим делать). Это первый вариант, если кто знает, как решить данную проблему, то прошу помочь.

Второй же вариант - когда позиция.х платформы = -19, спавнить другую платформу, ну а потом удалять первую, чтобы хоть как-то оптимизировать игру. Проблема в том, что в этом случае не спавнится ни одной платформы. Я даже создал переменную b, чтобы смотреть: выполняется ли блок кода. Но почему-то данный if не хочет выполняться.

Может, кто знает, как исправить код? Если мои варианты были совсем неправильны - помогите пожалуйста реализовать данную механику.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.12.2021, 02:04
Ответы с готовыми решениями:

Как сделать скрипт который спавнит?
Напишите скрипт на C#, чтобы на 2д плоскости в случайных местах каждую сек появлялся объект, который исчезает после нажатия, а значение...

Скрипт Spawner не спавнит "BlockLines" в игре на движке Unity
Всем привет у меня есть два основных скрипта в игре 1 &quot;DownMover&quot; отвечает за то что задний фон ехал вниз а объект оставался на месте.2...

Скрипт Spawner не спавнит "BlockLines"
Всем привет у меня есть два основных скрипта в игре 1 &quot;DownMover&quot; отвечает за то что задний фон ехал вниз а объект оставался на месте.2...

4
 Аватар для zhunshun
767 / 495 / 216
Регистрация: 05.04.2015
Сообщений: 2,076
09.12.2021, 10:38
Цитата Сообщение от Realtod Посмотреть сообщение
Может, кто знает, как исправить код?
Да, насдо заменить == на > или < по ситуации.
0
0 / 0 / 0
Регистрация: 09.12.2021
Сообщений: 3
09.12.2021, 23:42  [ТС]
Так если я заменю == на <или >, то будет спавниться просто огромное кол-во объектов без ограничения. А если поставить ограничение, допустим от 19 до 19.1(19.01 уже не спавнит объекты), то будет такая же ситуация, как с trigger: будет спавниться большое кол-во объектов за данный промежуток.
0
46 / 35 / 12
Регистрация: 15.11.2011
Сообщений: 204
10.12.2021, 19:02
А сделайте скриншот вашей игры, что-то я не сильно догоняю после рабочего дня Вообще много способов контролировать количество создаваемых объектов в юнити, к примеру, оперировать понятием штук в кадр или в секунду, всякие счетчики вводить.
0
0 / 0 / 0
Регистрация: 09.12.2021
Сообщений: 3
11.12.2021, 14:32  [ТС]
Прямоугольник позади камеры - объект с которым срабатывал метод onTriggerEnter2D
Миниатюры
Instantiate спавнит множество клонов объекта, или не спавнит вовсе  
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.12.2021, 14:32
Помогаю со студенческими работами здесь

Instantiate создает множество копий объекта
Здравствуйте, вообщем-то все написано в названии, я второй день над этой хренью бьюсь вот код: public GameObject Device; public...

Работа history объекта windows и не умер ли этот метод вовсе?
Буду краток и ясен. Мне нужно просто вывести все что содержится в методе window.history . но , в интернете нахожу только хлам 2010 года,...

Как правильно - конкатенты, соконкатенты или конкатенанты, или термина для такого понятия вовсе нет?
когда мы складываем a и b, то называем их &quot;слагаемыми&quot;, когда перемножаем эти же числа, то называем их &quot;сомножителями&quot; ...

При копировании объекта методом Instantiate, копируется все его компоненты кроме материала
при копировании объекта методом Instantiate, копируется все его компоненты кроме материала, материал остается один на всех, когда его меняю...

Можете ли вы собрать все тортики (сами или с клонов)?
Вы живете на числовой прямой и изначально (в момент времени t=0) находитесь в точке x=0. На прямой происходит n событий следующего вида: в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru