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

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

11.12.2022, 09:59. Показов 1417. Ответов 10
Метки c# (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Мне нужно реализовать подсчет всех собранных предметов на всех уровней. Чтобы в последствии в конце игры вывести одного из видео в зависимости от кол-во предметов.
Пока готов только подсчет на каждой локации по отдельности, а не на всех.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
using UnityEngine;
using UnityEngine.UI;
 
public class ItemCollector : MonoBehaviour
{
    private int cherries = 0;
 
    [SerializeField] private Text cherriesText;
    [SerializeField] private AudioSource colectionSoundEffect;// звук
 
    private void OnTriggerEnter2D(Collider2D collision)
    {
        if (collision.gameObject.CompareTag("Cherry"))
        {
            colectionSoundEffect.Play();// звук
            Destroy(collision.gameObject);
            cherries++;
            cherriesText.text = "Cherries: " + cherries;
        }
    }
}
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.12.2022, 09:59
Ответы с готовыми решениями:

Подсчёт очков нескольких уровней игры
Есть игра, на несколько уровней, после прохождения каждого показываеться кол-во очков (те что набрал на уровне + те что были на...

Двумерные массивы: подсчёт собранных биткоинов
Не понятно вообще как делать ???? Кто шарит подскажите пожалуйста?!! Реализовать подсчёт собранных биткоинов, количество биткоинов в...

Реализовать подсчёт собранных биткоинов лабиринте
Народ кому не лень подскажите как исправить чтобы заработало. Я не понимаю почему объект не двигается?:-| 2. Реализовать подсчёт...

10
 Аватар для Uzist
209 / 143 / 68
Регистрация: 09.05.2020
Сообщений: 747
11.12.2022, 11:39
если это только за один запуск игры, то https://metanit.com/sharp/tutorial/3.4.php
а если за весь геймплей, то https://docs.unity3d.com/Scrip... Prefs.html



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
using UnityEngine;
using UnityEngine.UI;
 
public class ItemCollector : MonoBehaviour
{
    private int cherries = 0;
int AllCheries;
 
    [SerializeField] private Text cherriesText;
    [SerializeField] private AudioSource colectionSoundEffect;// звук
 
void Start()
{
int AllCheries=PlayerPrefs.GetInt("AllCheries",0);
}
 
    private void OnTriggerEnter2D(Collider2D collision)
    {
        if (collision.gameObject.CompareTag("Cherry"))
        { 
 
            colectionSoundEffect.Play();// звук
            Destroy(collision.gameObject);
            cherries++;
            cherriesText.text = "Cherries: " + cherries;
 
        }
    }
 
void ПереходНаСледующийУровень
{
PlayerPrefs.SetInt("AllCheries", AllCherries+cherries)
}
}
1
1146 / 310 / 160
Регистрация: 30.07.2022
Сообщений: 1,789
Записей в блоге: 4
11.12.2022, 11:51
Spermix, В Unity есть специальный контейнер ScriptableObject - это контейнер данных, который можно использовать для сохранения больших объемов данных независимо от экземпляров класса.
Кроме того эти данный хранятся не в сцене, а значит получить к ним доступ можно откуда угодно.
0
1 / 1 / 0
Регистрация: 18.06.2021
Сообщений: 61
11.12.2022, 14:47  [ТС]
Спасибо. Но что делать с ошибкой?
C#
1
2
3
4
5
    public void Update()
    {
        PlayerPrefs.SetInt("AllCheries", AllCherries + cherries);
}
}
Ошибка: "AllCherries" не существует в текущем контексте.
0
 Аватар для Uzist
209 / 143 / 68
Регистрация: 09.05.2020
Сообщений: 747
11.12.2022, 14:52
Лучший ответ Сообщение было отмечено Spermix как решение

Решение

ой, не заметил что продублировал создание переменной.
Цитата Сообщение от Uzist Посмотреть сообщение
void Start()
{
int AllCheries

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 UnityEngine;
using UnityEngine.UI;
 
public class ItemCollector : MonoBehaviour
{
    private int cherries = 0;
int AllCheries=0;
 
    [SerializeField] private Text cherriesText;
    [SerializeField] private AudioSource colectionSoundEffect;// звук
 
void Start()
{
AllCheries=PlayerPrefs.GetInt("AllCheries",0);
}
public void Update()
    {
        PlayerPrefs.SetInt("AllCheries", AllCherries + cherries);
}
 
    private void OnTriggerEnter2D(Collider2D collision)
    {
        if (collision.gameObject.CompareTag("Cherry"))
        { 
 
            colectionSoundEffect.Play();// звук
            Destroy(collision.gameObject);
            cherries++;
            cherriesText.text = "Cherries: " + cherries;
 
        }
    }
}
1
1 / 1 / 0
Регистрация: 18.06.2021
Сообщений: 61
11.12.2022, 15:17  [ТС]
Прошу прощения, но ошибка все еще на месте. Пытался применить загуглил метод SetInt, но не помогло.
0
193 / 135 / 57
Регистрация: 28.05.2022
Сообщений: 894
11.12.2022, 15:38
Цитата Сообщение от Uzist Посмотреть сообщение
PlayerPrefs.SetInt("AllCheries", AllCherries + cherries);
зачем в апдейте это? если я не ошибаюсь этот метод будет бесконечно и быстро складывать cherries с allcherries

рядом с
Цитата Сообщение от Uzist Посмотреть сообщение
cherries++;
можно написать:
PlayerPrefs.SetInt("AllCheries", ++);

Добавлено через 1 минуту
Цитата Сообщение от Uzist Посмотреть сообщение
int AllCheries=0;
можно не указывать 0, потому что
Цитата Сообщение от Uzist Посмотреть сообщение
AllCheries=PlayerPrefs.GetInt("AllCherie s",0);
все сделает за вас, если пустой AllCheries значение будет равно нулю

Добавлено через 2 минуты
Цитата Сообщение от Spermix Посмотреть сообщение
Прошу прощения, но ошибка все еще на месте. Пытался применить загуглил метод SetInt, но не помогло.
в чем именно ошибка? и где?
1
 Аватар для Uzist
209 / 143 / 68
Регистрация: 09.05.2020
Сообщений: 747
11.12.2022, 15:41
Spermix, покажите код

Olol321,
Цитата Сообщение от Olol321 Посмотреть сообщение
зачем в апдейте это?
я тоже категорически против апдейта, свой вариант я показывал в начале.Но раз spermix так делает, то я постарался сделать похоже на его код, для наглядности.
Цитата Сообщение от Olol321 Посмотреть сообщение
если я не ошибаюсь этот метод будет бесконечно и быстро складывать cherries с allcherries
проблема тут только в том, что будет затрачиваться много ресурсов, а число в плеер префс всё-таки будет правильным, так как AllCheries мы получаем только на старте
1
193 / 135 / 57
Регистрация: 28.05.2022
Сообщений: 894
11.12.2022, 16:08
Цитата Сообщение от Uzist Посмотреть сообщение
так как AllCheries мы получаем только на старте
а зачем вообще его в этом скрипте получать? мы же его нигде не выводим, просто по одной сохраняем и все

Добавлено через 8 минут
это я как раз об "AllCheries", ++
1
 Аватар для Uzist
209 / 143 / 68
Регистрация: 09.05.2020
Сообщений: 747
11.12.2022, 16:28
Olol321, ну смотри, мы можем изменять значение в плеер префс после каждой взятой вишни как ты и говоришь.Но тут есть минус.Представь ситуацию, что человек собрал пару вишенок, вышел из уровня, опять на него зашел, опять собрал пару вишенок и опять вышел.Что будет?Бесконечный дюп вишенок!Поэтому самым целесообразным решением будет сохранять значение в плеер префс при переходе на следующий уровень
1
193 / 135 / 57
Регистрация: 28.05.2022
Сообщений: 894
11.12.2022, 16:51
ну это да, это уже под замысел разработчика как все будет работать
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.12.2022, 16:51
Помогаю со студенческими работами здесь

Подсчет уровней в родословной
В генеалогическом древе у каждого человека, кроме родоначальника, есть ровно один родитель. Каждом элементу дерева сопоставляется...

Задача «Родословная: подсчет уровней»
Условие В генеалогическом древе у каждого человека, кроме родоначальника, есть ровно один родитель. Каждом элементу дерева...

Подсчет уровней вложенности меню
Добрый день Прошу помощи с запросом Есть две таблицы: -- -- Структура таблицы `catalog_section` -- CREATE TABLE...

knapsack(подсчет предметов)
Получил задание - решить враиант задачи о ранце(knapsack).. Формулировка задачи: Дан список деталей(время изготовления, прибыль за...

Подсчет уровней в двоичном дереве поиска
каков алгоритм подсчета уровней в двоичном дереве поиска. спасибо.


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Функция установки текстового статуса в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru