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

Оружие вращается при паузе

10.09.2022, 09:32. Показов 561. Ответов 2

Author24 — интернет-сервис помощи студентам
Я делаю 2D игру и у меня возникла проблема, когда игра становится на паузу оружие в руках игрока продолжает вращаться за курсором и стрелять.

Вот код оружия:

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
public class Gun : MonoBehaviour
{
    public float offset;
    public GameObject Bullet;
    public Transform shotPoint;
    private bool facingRight = true;
    private Vector2 moveInput;
 
    private float timeBtwShots;
    public float startTimeBtwShots;
 
 
    void Update()
    {
        moveInput = new Vector2(Input.GetAxisRaw("Horizontal"), Input.GetAxisRaw("Vertical"));
 
        
        Vector3 difference = Camera.main.ScreenToWorldPoint(Input.mousePosition) - transform.position;
        float rotZ = Mathf.Atan2(difference.y, difference.x) * Mathf.Rad2Deg;
        transform.rotation = Quaternion.Euler(0f, 0f, rotZ);
 
        if (timeBtwShots <= 0)
        {
            if (Input.GetMouseButton(0))
            {
                Instantiate(Bullet, shotPoint.position, transform.rotation);
                timeBtwShots = startTimeBtwShots;
            }
        }
        else
        {
            timeBtwShots -= Time.deltaTime;
        }
    
        if (!facingRight && moveInput.x > 0)
        {
            Flip();
        }
        else if (facingRight && moveInput.x < 0)
        {
            Flip();
        }
    }
Вот код паузы:

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
public class pauseControll : MonoBehaviour
{
    public static bool GameIsPaused = false;
 
    public GameObject pauseMenuUI;
    private Gun gun;
    
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Escape))
        {
            if (GameIsPaused)
            {
                Resume();
            }
            else
            {
                Pause();
                
            }
        }
       
    }
 
    private void Start() {
        
    }
 
    public void Resume()
    {
        pauseMenuUI.SetActive(false);
        Time.timeScale = 1f;
        GameIsPaused = false;
    }
 
    void Pause()
    {
        pauseMenuUI.SetActive(true);
        Time.timeScale = 0f;
        GameIsPaused = true;
 
    }
 
    public void LoadMenu()
    {
        Debug.Log("L");
        Time.timeScale = 1f;
        SceneManager.LoadScene("menu");
    }
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.09.2022, 09:32
Ответы с готовыми решениями:

Как автоматически переключать оружие, при стрельбе на разное расстояние?
Добрый день! Только осваивают движок. Есть такой вопрос. В TDS персонаж имеет одно орудие в руках....

Зависает поток при паузе
Есть поток,который каждые 100мс должен получать ключ и другие данные от LongPoll сервера. Но...

Остановить setTimeout при паузе видео
Пытаюсь сделать свой видеоплеер но не получается как в известных видеоплеерах скрыть и показать...

Некорректная работа процедуры в потоке, при паузе
Есть парсер сайта. Я хочу делать паузу в 3 секунды, перед очередными действиями. Но пауза работает...

При закрытом ноутбуке заработал youtube, который стоял на паузе
Однажды ночью я поставила на паузу некий ролик, закрыла крышку ноутбука и заснула. Проснулась...

2
52 / 35 / 16
Регистрация: 03.08.2019
Сообщений: 389
10.09.2022, 10:29 2
Лучший ответ Сообщение было отмечено Domafs как решение

Решение

Цитата Сообщение от Domafs Посмотреть сообщение
когда игра становится на паузу
игра не становится на паузу
смотрите void Resume() Pause() и public static bool GameIsPaused = false

Update() постоянно переключает методы
0
0 / 0 / 0
Регистрация: 09.09.2022
Сообщений: 5
10.09.2022, 12:41  [ТС] 3
я в Update дописал строку:

C#
1
2
3
if(Time.timeScale == 0){
            return;
        }
оружие перестало вращаться и стрелять
0
10.09.2022, 12:41
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.09.2022, 12:41
Помогаю со студенческими работами здесь

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

При нажатии на button изменять оружие и анимацию
Мне надо изменить скрипт чтобы при нажатии на button изменялась оружия и анимация Вот код using...

Разработайте динамическую модель Земли, которая вращается вокруг Солнца и вокруг которой вращается Луна
2) Разработайте динамическую модель Земли, которая вращается вокруг Солнца и вокруг которой...

MWO LG MS-1944JL, при открытии дверцы вращается
MWO LG MS-1944JL, сделано в Китае, новая. По завершении времени выбранной программы все...

Спрайт неправильно вращается при малой угловой скорости
Добрый день, проблема такая. Есть квадрат, мы вращаем его с малой скоростью, и спрайт...

Хостинг на паузе
Доброго дня! Подскажите плз хороший хостинг, где реализована возможность поставить сайт на паузу -...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru