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

Рестарт и смерть в Unity2D

07.01.2020, 13:48. Показов 3336. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Я хочу сделать рестарт игры, но без sceneloader. Потому что мне нужно сохранять кол-во денег, а если загружать сцену по новому, то все обнуляется. А сделать рестарт игры у меня не получается. Потому что у меня дофига скрытых кнопок на одной сцене и не получается то что нужно. Прошу помощи.

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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
using UnityEngine.EventSystems;
 
public class BallScript : MonoBehaviour
{
    private Animator anim;
    public GameObject ball;
    public GameObject spikes;
    public Text score;
    public Text MoneyCount;
    int hits;
    public Transform startPos;
    public ParticleSystem particleObject;
    float speedX;
    private Rigidbody2D rb;
    public BTNscripts leftButton;
    public BTNscripts rightButton;
    public GameObject leftButton1;
    public GameObject rightButton1;
    public GameObject Shard;
    public Transform ShardPoint;
    public GameObject Coins;
    public GameObject btnStart;
    AudioSource audioSource;
    public AudioClip jump;
    public AudioClip crash;
    int dead = 0;
    int deadRate = 3;
    public int Money;
    // Start is called before the first frame update
    IEnumerator died()
    {
        yield return new WaitForSeconds(2f);
    }
    void Start()
    {
        score.text =   "SCORE \n    " + hits;
        anim = GetComponent<Animator>();
        rb = GetComponent<Rigidbody2D>();
        audioSource = GetComponent<AudioSource>();
        Money = PlayerPrefs.GetInt("Moneys");
    
    }
 
    void Update()
    {
        moving();
        //SavingDate();
    }
 
    void moving()
    {
        if(leftButton.isPressed)
        {
            speedX = -5f; 
        }
        else if(rightButton.isPressed)
        {
            speedX = 5f;
        }
        else 
        {
            speedX = 0f;
        }
        rb.velocity = new Vector2 (speedX, rb.velocity.y);
        speedX = 0f;
        
    }
    void OnCollisionEnter2D(Collision2D ball)
    {
        if(ball.gameObject.tag == "Ground")
        {
            hits++;
            score.text =   "SCORE \n   " + hits;
            anim.SetBool("isGrounded", true);
        }
        if(ball.gameObject.tag == "Spike")
        {
            audioSource.PlayOneShot(jump);
            audioSource.PlayOneShot(crash);
            SavingDate();
            gameObject.SetActive(false);
            spikes.SetActive(false);
            Coins.SetActive(false);
        }
    }
    void OnCollisionExit2D(Collision2D ball)
    {
        if(ball.gameObject.tag == "Ground")
        {
            audioSource.PlayOneShot(jump);
            anim.SetBool("isGrounded", false);
        }
    }
    void OnTriggerEnter2D(Collider2D collision)
    {
        if(collision.GetComponent<coinsNoScripts>())
        {
            Money++;
            MoneyCount.text = "" + Money;
            Destroy(collision.gameObject);
        }
    }
 
    void SavingDate()
    {
        PlayerPrefs.SetInt("Moneys", Money);
    }
}




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;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
 
public class TAP_TO_GAME : MonoBehaviour
{
    public BTNscripts btnStart; 
    public GameObject StartBtn;
    public GameObject ScoreText;
    public GameObject btnRight;
    public GameObject btnLeft;
    public GameObject ball;
    public GameObject spike;
    public GameObject Coins;
    public GameObject Losing;
 
    void Update()
    {
        if(btnStart.isPressed)
        {
            StartBtn.SetActive(false);
            ScoreText.SetActive(true);
            btnRight.SetActive(true);
            btnLeft.SetActive(true);
            ball.SetActive(true);
            spike.SetActive(true);
            Coins.SetActive(true);
        }
    }
 
}
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.01.2020, 13:48
Ответы с готовыми решениями:

Рестарт?
Привет. Подскажите, как сделать рестарт в игре, не перезапуская всё приложение? т.е. проигрыш - нажал кнопку &quot;начать заново&quot; -...

Рестарт
Здравствуйте, есть сцены: рестарт и уровни 1,2,3 и Тд. Рестарт находится на отдельной сцене. Как сделать чтобы после проигрыша, при...

рестарт!
class Scene extends JPanel { public boolean restart; public Scene() { this.ball = new Ball(100, 250,...

4
5 / 3 / 2
Регистрация: 06.08.2019
Сообщений: 123
07.01.2020, 15:47
Лучший ответ Сообщение было отмечено Asort как решение

Решение

Почему при загрузке сцены заново монеты обнуляются ? Через PayerPrefs сохраняйте их, а потом сцену через LoadLevel загружайте заново и все.
0
 Аватар для Steroid
296 / 217 / 86
Регистрация: 17.02.2016
Сообщений: 1,276
Записей в блоге: 1
07.01.2020, 18:47
Цитата Сообщение от Asort Посмотреть сообщение
нужно сохранять кол-во денег
ScriptableObjects легкий и удобный вариант
0
1 / 1 / 0
Регистрация: 07.10.2019
Сообщений: 111
08.01.2020, 19:29  [ТС]
А у меня они не обнулятся? Ну типо я сохраняю сценв с 0 денег, потом я набираю деньги, делаю рестарт с помощью SceneManager и кол во денег у меня сохранится? Разве изменять сцены во время игры можно?
0
 Аватар для Steroid
296 / 217 / 86
Регистрация: 17.02.2016
Сообщений: 1,276
Записей в блоге: 1
08.01.2020, 21:44
Цитата Сообщение от Asort Посмотреть сообщение
Разве изменять сцены во время игры можно
почему нет?
просто нужно сохранять объекты если ты измеил их положение (если это вообще нужно)

Добавлено через 58 секунд
т.е состояние объектов
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.01.2020, 21:44
Помогаю со студенческими работами здесь

рестарт
как сделать автоматический рестарт программы после окончания ее работы? на примере

Рестарт по времени
Доброго времени суток. Стоит система FreeBSD, нужно написать скрипт , который бы через определенное время (50 минут) убивал процесс и снова...

Рестарт программы
Подскажите, пожалуйста, кто знает! Каким образом можно сделать рестар своей программы? например, при смене рабочей базы данных нужно, чтобы...

Не работает рестарт
Всем привет.у меня вот такая вот проблемка. собрал свой комп. мамка МСИ Мповэрт з87. процесор и7 4790к. Рам корсаир венгеанце про 16гигов...

Процедура. Рестарт
Вот процедура, она начинается сразу как только запустили программу. Как сделать так, чтобы, когда эта процедура закончила свою работу, при...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru