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

Vector2.lerp

24.04.2020, 23:58. Показов 2171. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть первый скрипт
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
 
public class transition : MonoBehaviour
{
    public GameObject charter;
    public GameObject move1;
 
    void OnTriggerExit2D(Collider2D col)
    {
        if (col.gameObject.name == "set5")
        {
            charter.transform.position = new Vector3(-7.62f, 2.79f, 90f);
            move1.SetActive(true);
        }
    }
}
и второй скрипт который висит на move1
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
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
 
public class move1 : MonoBehaviour
{
    public GameObject came;
    private Vector2 came1;
    private Vector2 came2;
    private Vector3 zero;
    private float progress;
    public float step;
 
    private void Start()
    {
        came1 = new Vector2(0f, 2.79f);
        came2 = new Vector2(0f, 0f);
        zero = new Vector3(0f, 0f, 0f);
    }
 
    private void Update()
    {
        if (came.transform.position == zero)
            this.gameObject.SetActive(false);
    }
 
    void FixedUpdate()
    {
        came.transform.position = Vector2.Lerp(came1, came2, progress);
        progress += step;
    }
}
При первом выходе из триггера(см. первый скрипт) всё работает нормально. Но при повторном выходе(и всех последующих), came(см. второй скрипт) сразу переходит на координаты came2(второй скрипт). Как это можно исправить?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.04.2020, 23:58
Ответы с готовыми решениями:

Vector3.Lerp
Всем привет, в 2Д игре Vector3.Lerp не перемещает обьект плавно, он просто телепортирует его(вектор2.лерп также) pet.transform.position =...

Lerp в Coroutine
Приветствую! Вот кусок кода: while (stepMoveTo < 0.50f) { yield return null; ...

Lerp и MoveTowards
Всем доброго времени суток, не до конца понимаю чем отличаются эти два метода. Что в каких случаях использовать?

3
 Аватар для 1max1
3362 / 1775 / 1028
Регистрация: 26.10.2018
Сообщений: 5,204
25.04.2020, 08:14
Он не "сразу переходит", а он уже там, тебе надо его вернуть на место.
C#
1
2
3
4
5
if (came.transform.position == zero) 
{
    this.gameObject.SetActive(false);
    came.transform.position = came1;
}
0
7 / 6 / 1
Регистрация: 13.08.2019
Сообщений: 203
25.04.2020, 16:44  [ТС]
1max1, всё тоже самое, только теперь переходит на координаты came1. Вот первый скрипт полностью, может так будет понятнее
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
public GameObject came;
    public GameObject charter;
    public GameObject move1;
    public GameObject move2;
    Vector2 vec;
 
    void OnTriggerEnter2D(Collider2D col)
    {
        if (col.gameObject.name == "set5")
        {
            kok();
            came.transform.position = vec;
        }
        if (col.gameObject.name == "wall3")
        {
            charter.transform.position = new Vector3(12.456f, -2.817f, 90f);
            came.transform.position = new Vector2(3.93f, 0f);
        }
        if (col.gameObject.name == "wall4")
        {
            charter.transform.position = new Vector3(-8.527035f, -2.821f, 90f);
            came.transform.position = new Vector2(0f, 0f);
        }
        if (col.gameObject.name == "cametrig")
        {
            
        }
    }
 
    void OnTriggerStay2D(Collider2D col)
    {
        if (col.gameObject.name == "set5")
        {
            kok();
            came.transform.position = vec;
        }
    }
 
    void OnTriggerExit2D(Collider2D col)
    {
        if (col.gameObject.name == "set5")
        {
            charter.transform.position = new Vector3(-7.62f, 2.79f, 90f);
            move1.SetActive(true);
        }
    }
 
    void kok()
    {
        vec = charter.transform.position;
    }
}
И исходные координаты came == came2

Добавлено через 2 минуты
Первый скрипт весит на персонаже
0
7 / 6 / 1
Регистрация: 13.08.2019
Сообщений: 203
25.04.2020, 23:52  [ТС]
Ответ нашёл
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.04.2020, 23:52
Помогаю со студенческими работами здесь

Lerp передвижения
Доброго времени суток! Прошу помощи с Lerp'ом в 2D. Я так понимаю , что интерполяция должна быть либо в Update либо в Сопрограмме. Суть...

Похожее на Mathf.Lerp
Добрый день или вечер, кому как. Задача такова: У меня есть промежуток от 0.375 до 0.9. Мне нужно получить число от 0 до 1 из этого...

Mathf.Lerp Запоминает скорость
Здравствуйте!Для плавного движения камеры я использовал Math.Lerp,с началом запуска сцены камера движется как нужно плавно набирая скорость...

Не могу понять проблему с mathf.lerp
Ситуация такова, я хочу заставить персонажа в игре от первого лица приседать, но я хочу, чтобы он делал это плавно, а не просто падал...

Использование Lerp() с плавным стартом движения
ребята , как можно вписать плавный старт объекта используя метод Lerp() ? что бы интерполяция со старта тоже работала ? Добавлено...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru