Проблемы с загрузкой холста после сбора всех предметов коллекционирования

ОБНОВЛЕННЫЙ КОД

В моей 3D-игре Unity я пытаюсь добавить холст после того, как все коллекционные предметы будут собраны, с надписью «Уровень завершен ... загрузка следующего уровня», а затем загружаю следующий уровень, но после того, как все предметы коллекционирования собраны, игра все еще играет. Скрипт успешно отключает холст, но не включает его повторно после того, как 5 предметов коллекционирования будут собраны и оценка достигнет 5. Пожалуйста, помогите. Вот скриншот моего сценария.

Коллекционный сценарий


person Renee Johnston    schedule 13.06.2020    source источник


Ответы (1)


Проблема в том, что вы уничтожаете объект с помощью скрипта перед запуском кода, который включает холст, потому что ваш скрипт прикреплен к вашему коллекционному объекту. Попробуйте отключить рендерер сетки и коллайдер вашего пикапа, а затем уничтожьте его после запуска кода.

private MeshRenderer meshRenderer; // the mesh renderer attached to  the player
private Collider collider; // pickup's collider

private void Start ()
{
    meshRenderer = GetComponent<MeshRenderer>(); // get the mesh renderer component from the pickup (put this in the start function)
    collider = GetComponent<Collider>(); // get the collider attached to the pickup 
}

В вашей функции OnTriggerEnter вместо Destroy (gameObject) используйте meshRenderer.enabled = false и collideer.enabled = false. Затем в конце функции OnTriggerEnter вы можете использовать Destroy (gameObject).

Также вам не нужен отдельный холст для каждого элемента пользовательского интерфейса. У вас может быть только 1 холст, содержащий все различные меню / элементы, и включить каждый из них.

person Antoine    schedule 13.06.2020
comment
Я просто добавил это в свой код и немного изменил, но он по-прежнему не работает. Теперь я могу собирать один и тот же объект снова и снова, потому что они не удаляются (у меня есть 5 коллекционных объектов). Если вы хотите увидеть новый код, я могу добавить его за вас. - person Renee Johnston; 13.06.2020
comment
Извините, я не учел, вам также нужно отключить коллайдер на коллекционном предмете. Я обновлю ответ сейчас. - person Antoine; 13.06.2020
comment
Спасибо. Еще 2 вопроса - куда добавить скрипт? на мой холст и все мои предметы коллекционирования? а также вы хотите, чтобы я отключил коллайдер на всех моих предметах коллекционирования? извините, я так плохо работаю в Unity и боролся с этим весь день. - person Renee Johnston; 13.06.2020
comment
Это сработало? К чему сейчас привязан ваш скрипт? Я предположил, что ваш скрипт был прикреплен к каждому из ваших коллекционных предметов, потому что он назывался собираемым скриптом и имел Destroy (gameObject). Если этот сценарий присутствует на каждом собираемом объекте, он отключит рендерер меша и коллайдер только объекта, который был собран, так что это будет выглядеть так, как будто игровой объект был уничтожен. Чтобы напрямую ответить на ваш вопрос, добавьте этот скрипт ко всем своим коллекционным предметам, а не к холсту. - person Antoine; 13.06.2020
comment
Это все еще не работает. Я не могу подобрать предметы коллекционирования, и счет застрял на 0. Я не знаю, что еще делать. Я отключил свои коллайдеры коробки на всех моих 5 коллекционных предметах, и теперь мой скрипт доступен только на моих предметах коллекционирования. Что-нибудь в этом плохого? Я также добавлю обновленный снимок экрана с моим кодом в свой вопрос, чтобы вы могли его дважды проверить. - person Renee Johnston; 13.06.2020
comment
Привет, где изначально был ваш сценарий до того, как я ответил на ваш вопрос? Вы смотрели мой обновленный ответ? (Я обновил свое исходное сообщение улучшенным ответом, я не хотел начинать с отключенными коллайдерами, но должен был отключить эти коллайдеры скриптом. Не добавляйте это на свой холст. - person Antoine; 13.06.2020
comment
Хорошо, я видел ваш новый код и знаю, что вы сделали не так. Обычно в строке 17 добавляют collider.enabled = false. В инспекторе ваш коллайдер включен по умолчанию. Удалите сценарий с холста и убедитесь, что он есть на всех ваших пикапах. - person Antoine; 13.06.2020
comment
Привет. Все еще не работает. Коллекционные предметы по-прежнему не прибавляются к очкам или не удаляются. Также в строке 10 есть зеленая строка, в которой говорится, что CollectVirus.collider скрывает унаследованный член Component.collider. Понятия не имею, что это значит, но это может что-то изменить ?? Вы хотите, чтобы я вам еще что-нибудь показал? - person Renee Johnston; 13.06.2020
comment
Хм. Можете ли вы обновить свой скрипт (в тексте, а не изображение), вашу иерархию и инспекторы ваших пикапов и холста. - person Antoine; 13.06.2020
comment
Я не уверен, что это значит ... как мне это сделать? извиняюсь. - person Renee Johnston; 13.06.2020
comment
Я имел в виду обновить заданный вами вопрос, опубликовав полный текст скрипта, а также скрипт ScoringSystem. Также прикрепите картинку своей иерархии и фотографии инспектора ваших пикапов и холста :) - person Antoine; 13.06.2020