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

Возрождение после смерти персонажа

01.06.2023, 09:38. Показов 1137. Ответов 8

Студворк — интернет-сервис помощи студентам
Здравствуйте, мне нужно сделать чтобы при нажатии на кнопку "Нет" "скрипт No_dead" записывались координаты местоположение персонажа на сцене, после нажатия на кнопку "Нет" появляется другая сцена и там нужно нажать на кнопку "Да. хочу" нужно чтобы из скрипта "No_dead" координаты персонажа и индекс сцены вызывался в скрипте "Respawn"на кнопке "Да, хочу". Вот так вот проще нужно чтобы при нажатии на кнопку тебя перекидывала не в самое начало а где ты "умер".
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.06.2023, 09:38
Ответы с готовыми решениями:

Возрождение после смерти персонажа
Мне нужно чтобы персонаж умер, после появляется кнопка(другая сцена), при ее нажатии, персонаж возрождается в том же месте где умер.

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

Как удалить персонажа через 5 секунд после анимации смерти? Как его отправить на респ?
Написал такой код, после чего персонаж падает и лежит на земле, как через время его уничтожить, желательно чтобы его текстура медленно...

8
 Аватар для Uzist
209 / 143 / 68
Регистрация: 09.05.2020
Сообщений: 747
01.06.2023, 12:06
C#
1
2
3
4
5
6
7
8
9
10
11
12
void Death()//Сохранение координат смерти
{
PlayerPrefs.SetFloat("DeathPosX",transform.position.x);
PlayerPrefs.SetFloat("DeathPosY",transform.position.y);
 
}
 
void Respawn()//загрузка координат смерти и телепорт на них
{
transform.position.x=PlayerPrefs.GetFloat("DeathPosX", 1);
transform.position.y=PlayerPrefs.GetFloat("DeathPosY", 1);
}
0
-11 / 0 / 0
Регистрация: 03.11.2021
Сообщений: 111
01.06.2023, 13:31  [ТС]
Uzist, выдает ошибку Ошибка CS1612 Не удалось изменить возвращаемое значение "Transform.position", т. к. оно не является переменной.
0
 Аватар для Uzist
209 / 143 / 68
Регистрация: 09.05.2020
Сообщений: 747
01.06.2023, 14:03
А ой,
C#
1
2
3
4
  void Respawn()//загрузка координат смерти и телепорт на них
    {
        transform.position = new Vector3(PlayerPrefs.GetFloat("DeathPosX", 1), PlayerPrefs.GetFloat("DeathPosY", 1), 0);
    }
0
-11 / 0 / 0
Регистрация: 03.11.2021
Сообщений: 111
01.06.2023, 14:10  [ТС]
Uzist ,
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
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
using static GameManager1;
using static PlayerData;
 
public class mainmenu2 : MonoBehaviour
{
    public Text textToUpdate;
 
    public void Yes()
    {
        int score = PlayerPrefs.GetInt("score", 0);
        score--;
        PlayerPrefs.SetInt("score", score);
 
        // Загрузка данных о позиции персонажа и индексе сцены
        //Vector3 playerPosition = PlayerData1.playerPosition;
 
        transform.position = new Vector3(PlayerPrefs.GetFloat("DeathPosX", 1), PlayerPrefs.GetFloat("DeathPosY", 1), 0);
    
 
 
    int sceneIndex = PlayerData1.sceneIndex;
 
        // Загрузка нужной сцены
        SceneManager.LoadScene(sceneIndex);
 
        // Установка позиции персонажа
        //GameObject player = GameObject.FindGameObjectWithTag("Player");
       // player.transform.position = new Vector3(playerPosition.x, playerPosition.y, player.transform.position.z);
    }
    public void No()
    {
        string newText = "0";
        PlayerPrefs.SetString("TextToUpdate", newText);
        SceneManager.LoadScene(1);
 
    }
 
}
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
using System.Collections;
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
using static PlayerData;
 
public class No_dead : MonoBehaviour
{
    [SerializeField] private AudioSource damageSound;
    [SerializeField] private AudioSource Soundnepravelno;
    public GameObject character;
    public GameObject stonePrefab;
    public Button button;
    private Color Image;
    private bool buttonPressed = false;
 
    public void OnButtonClick()
    {
        if (!buttonPressed)
        {
            buttonPressed = true;
            GetComponent<Button>().interactable = false;
        }
        //GameObject player = GameObject.FindGameObjectWithTag("Player");
        //PlayerData1.playerPosition = new Vector3(player.transform.position.x, player.transform.position.y, player.transform.position.z);
 
        PlayerData1.sceneIndex = SceneManager.GetActiveScene().buildIndex;
    }
 
 
    public void OnClick()
    {
        button.GetComponent<Image>().color = Color.red;
        Vector3 characterPosition = character.transform.position;
        Vector3 stonePosition = new Vector3(characterPosition.x, 10.0f, characterPosition.z);
        GameObject stone = Instantiate(stonePrefab, stonePosition, Quaternion.identity);
        Rigidbody2D stoneRigidbody = stone.GetComponent<Rigidbody2D>();
 
        PlayerPrefs.SetFloat("DeathPosX", transform.position.x);
        PlayerPrefs.SetFloat("DeathPosY", transform.position.y);
 
        stoneRigidbody.gravityScale = 1.0f;
 
        Invoke(nameof(DamageSound), 1.4f);
        Invoke(nameof(Soundne), 0f);
        Invoke(nameof(LoadScene), 1.7f);
        
    }
 
    private void DamageSound()
    {
        damageSound.Play();
    }
 
    private void Soundne()
    {
        Soundnepravelno.Play();
    }
    void LoadScene()
    {
        SceneManager.LoadScene(3);
    }
 
}
всунул в код а все ровно в самом начале возрождается
0
 Аватар для Uzist
209 / 143 / 68
Регистрация: 09.05.2020
Сообщений: 747
01.06.2023, 14:17
transform.position = new Vector3(PlayerPrefs.GetFloat("DeathPosX", 1), PlayerPrefs.GetFloat("DeathPosY", 1), 0);
PlayerPrefs.SetFloat("DeathPosX", transform.position.x);
PlayerPrefs.SetFloat("DeathPosY", transform.position.y);

в этих строках из transform.position сделай character.transform.position
0
-11 / 0 / 0
Регистрация: 03.11.2021
Сообщений: 111
01.06.2023, 14:21  [ТС]
Uzist
0
 Аватар для Uzist
209 / 143 / 68
Регистрация: 09.05.2020
Сообщений: 747
01.06.2023, 14:57
еще раз код скинь
0
-11 / 0 / 0
Регистрация: 03.11.2021
Сообщений: 111
01.06.2023, 14:58  [ТС]
уже не надо,сори(
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
01.06.2023, 14:58
Помогаю со студенческими работами здесь

Анимация смерти персонажа
Не получается осуществить анимацию смерти персонажа при столкновении. Например персонаж падает в кислоту, по задумке должна проиграться...

Скрипт для смерти персонажа
Всем привет, делаю игрушку на юнити 2д, как правильно написать скрипт что бы как только количество жизней становилось 0 персонаж умирал?...

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

Не работает скрипт по созданию объекта во время смерти персонажа
У меня в игре у каждого персонажа есть одинаковый скрипт для работы с очками здоровья: using System.Collections; using...

Как сделать перезапуск уровня спустя 2-3 секунды смерти персонажа?
Всем привет, помогите пожалуйста. Как перезапустить уровень после того как игрок умер спустя 3 секунды. Сцену я знаю как перезапустить, мне...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru