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

OnCollisionEnter2D

03.10.2017, 23:48. Показов 3429. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите разобраться. В начале главной сцены когда игрок подходит к сундуку он открываеться, выпадает дроп и сундук исчезает. После смены сцены и возрата на главную, при подходе к сундуку он не открываеться , но дроп падает и сундук остаёться на месте. Раньше всё работало. Вот код сундука:
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
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
 
public class Chest : MonoBehaviour {
 
    public Sprite openChest;
 
    void Update()
    {
        if (MySingletone.inctance.returnScene == true)
        {
            Destroy(gameObject);
            
        }
 
    }
    void OnCollisionEnter2D(Collision2D open)
    {
        if (open.gameObject.tag == "Player" && MySingletone.inctance.mainKeys >= 2)
        {
            gameObject.GetComponent<SpriteRenderer>().sprite = openChest;
            StartCoroutine(Waiting(0.1f));
        }
        
    }
   
    private IEnumerator Waiting(float value)
    {
 
        yield return new WaitForSeconds(value);
        Destroy(gameObject);
    }
а вот кусок кода с игрока, в котором тоже используется связь с сундуком:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void OnCollisionEnter2D(Collision2D fight)
    {
               if (fight.gameObject.tag == "Chest" && MySingletone.inctance.mainKeys >= 2)
        {
            activeChest = true;
            MySingletone.inctance.mainKeys -= 2;
            dropPanel.SetActive(true);
            MySingletone.inctance.isDrop = true;
            Time.timeScale = 0;
        }
        if (fight.gameObject.tag == "Chest" && MySingletone.inctance.mainKeys <= 1 && activeChest == false)
        {
            activeChest = false;
            needPanel.SetActive(true);
            Time.timeScale = 0;
        }
    }
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.10.2017, 23:48
Ответы с готовыми решениями:

OnCollisionEnter2D
Обязательно на объекте, для которого нужно проверять коллизию должен висеть непосредственно на самом объекте? Можно ли скрипт повесить на...

Непонятки с void OnCollisionEnter2D(Collision2D collision)
Доброго времени суток, форумчане! Есть вот такой вот замееечательный код для убийства врагов: private void...

Unity3d не работает OnCollisionEnter2D?
void OnCollisionEnter2D(Collision2D collision) { if(collision.gameObject.name==&quot;Fire&quot;) { Destroy(collision.gameObject);...


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

Или воспользуйтесь поиском по форуму:
4
 Аватар для Serj190492
160 / 159 / 59
Регистрация: 19.02.2015
Сообщений: 830
04.10.2017, 05:44
Цитата Сообщение от Madeforfun Посмотреть сообщение
MySingletone.inctance.mainKeys
Чему это изначально равно?
0
0 / 0 / 0
Регистрация: 31.07.2017
Сообщений: 21
04.10.2017, 11:03  [ТС]
Serj190492, изначально 0, ы процессе игрф изменяеться. Пробывал сразу менять значение, оно не связано с этим.
0
 Аватар для Serj190492
160 / 159 / 59
Регистрация: 19.02.2015
Сообщений: 830
04.10.2017, 11:22
Попробуйте в Chest отловить значения, мало ли...

C#
1
2
3
4
5
6
7
8
9
10
11
12
    void OnCollisionEnter2D(Collision2D open)
    {
        Debug.Log(open.gameObject.tag);
        Debug.Log(MySingletone.inctance.mainKeys);
        if (open.gameObject.tag == "Player" && MySingletone.inctance.mainKeys >= 2)
        {
            Debug.Log("Открываем сундук");
            gameObject.GetComponent<SpriteRenderer>().sprite = openChest;
            StartCoroutine(Waiting(0.1f));
        }
        
    }
Если всё хорошо, выведет
Player
(число >= 2)
Открываем сундук
1
0 / 0 / 0
Регистрация: 31.07.2017
Сообщений: 21
04.10.2017, 12:50  [ТС]
Serj190492, спасибо за совет. Теперь я вижу что не так. У меня показует Player 0 значит гдето обнуляет MySingletone.inctance.mainKeys . Буду искать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Ответ Создать тему
Новые блоги и статьи
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru