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

Реализация скрипта

14.06.2020, 00:40. Показов 1136. Ответов 1

Студворк — интернет-сервис помощи студентам
У меня есть игра, закрытый уровень, комната. ГГ, который постоянно прыгает(как герой в дудл джамп) и шестеренка, которая катается по полу влево, вправо. Задача, управляя героем не попасть в шестеренку.
В чем именно проблема, хотелось бы иметь счёт в верху экрана, который увеличивается с течением времени (линейно) и чем он больше, тем быстрее становится шестеренка. Никак не получается ни реализовать этот механизм, да и чтобы после их соприкосновения происходил ре-старт и обнуление счёта. Прошу у вас помощи, нужно для университета, меня как беспомощного бросили в Unity2D, ничего не получается.

Скрипт на управление персонажем
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
public class Character : MonoBehaviour
{
    public float speed;
    private bool isFacingRight = true;
 
    void Update()
    {
        if (Input.GetKey(KeyCode.LeftArrow))
        {
            transform.Translate(Vector2.left * speed * Time.deltaTime);
        }
 
        if (Input.GetKey(KeyCode.RightArrow))
        {
            transform.Translate(Vector2.right * speed * Time.deltaTime);
        }
 
        float move = Input.GetAxis("Horizontal");
 
        if (move > 0 && !isFacingRight)
            Flip();
        else if (move < 0 && isFacingRight)
            Flip();
    }
 
        private void Flip()
    {
        isFacingRight = !isFacingRight;
        Vector3 theScale = transform.localScale;
        theScale.x *= -1;
        transform.localScale = theScale;
    }
}
Скрипт на движения шестеренки
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
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
 
public class Moving : MonoBehaviour
{
    [SerializeField] float distance;
    [SerializeField] float speedMove;
 
    void Start() => StartCoroutine(c_Start());
 
    IEnumerator c_Start()
    {
        yield return new WaitForSeconds(1.0f);
 
        Vector3 startPosition = transform.position;
        Vector3 velocity = Vector3.right * speedMove;
 
        while (true)
        {
            if (transform.position.x > startPosition.x + distance)
                velocity.x = -speedMove;
            else if (transform.position.x < startPosition.x - distance)
                velocity.x = speedMove;
 
            transform.position += velocity * Time.deltaTime;
 
            yield return null;
        }
    }
}
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.06.2020, 00:40
Ответы с готовыми решениями:

Как из одного скрипта изменить переменную (int) другого скрипта?
У меня есть два скрипта (money который отвечает за общее количество денег и CarBuy который отвечает за покупку машины). Мне нужно, чтобы...

Unity - Обращение к публичным полям одного скрипта из другого скрипта
Привет. Скрипты пишу на CSharp. В одном gameObject (назовем его HelloObject) есть два скрипта - Script1 и Script2. У script2 есть...

Запуск скрипта, который находится на объекте из скрипта
Здравствуйте. Бьюсь уже несколько дней, возможно чего-то недопонимаю. Есть объект obj с 18 скриптами на нем scr1, scr2, ..., scr18. Мне...

1
304 / 211 / 96
Регистрация: 04.07.2012
Сообщений: 903
14.06.2020, 03:15
Лучший ответ Сообщение было отмечено c0dy420 как решение

Решение

Не совсем понятно в чем проблема...
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
float timer = 0;
int score = 0;
[SerializeField] float speed; //название переменной поменял, чтобы Ваш IEnumerator не править
public Text Score; //на него перетягиваем объект типа UI Text 
 
void Update()
{
timer += Time.deltaTime; //увеличиваем таймер на каждом кадре
     if (timer >= 60f) //если равен 1 минуте прибавляем очко и сбрасываем таймер
     {
              score++;
 
              timer = 0;
              speedMove = speed * (score + 1); //+1 чтобы при 0 очков скорость была, тут можно и посложнее что-то придумать, но это уже сами.
              Score.text = score.ToString(); //выводим счет на экран
     }
}
Ну а соприкосновение делайте, через OnTriggerEnter. По событию просто загружайте эту же сцену. Не забудьте подключить пространство имен UnityEngine.SceneManagement.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.06.2020, 03:15
Помогаю со студенческими работами здесь

Отключение скрипта из скрипта
Вроде все понимаю как это работает, уже кучу способов перепробовал, но все ровно выдает ошибку: void MoveShootEnemy() { ...

Реализация скрипта удаления
Доброго времени суток! Очень нужна помощь! При реализации админки на сайте, а именно скрипта удаления пользователя, столкнулся с...

Реализация скрипта долгое время
Добрый вечер. Мне нужно спарсить очень много информации, через некоторое время вылетает ошибка: Fatal error: Maximum execution time of...

Реализация скрипта. Рандомно всплывающая картинка на странице сайта
Здравствуйте. Сразу скажу, что с Java я знаком плохо. Нужна реализация такой фичи: Есть картинка, есть сайт. Нужен скрипт. Скрипт...

Реализация пхп скрипта в модальном окне метод пост
Всем привет. Продолжаю грызть пхп, новая проблема... В общем дело такое. Есть форма, в ней поля для примера банально было яблок, импут было...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru