Demigodd
@Demigodd

Как сделать плавное увеличение объекта?

Как сделать плавное увеличение? к примеру объект с размером 1,1,1 , коснулся триггера и у него значение изменилось на 2,2,2. Но плавно с 1,1,1 на 1.2,1.2,1.2 потом 1.3 и так до 2.
Собственно код увеличение есть, но он мгновенно увеличивается с 1 на 2.

using UnityEngine;
using System.Collections;

public class Eat : MonoBehaviour
{
	public string Tag;
	public float Increase;

	void OnTriggerEnter(Collider other)
	{
		if(other.gameObject.tag == Tag)
		{
			transform.localScale += new Vector3(Increase, Increase, Increase);  // ?
			Destroy(other.gameObject);
		}
	}
}
  • Вопрос задан
  • 6083 просмотра
Решения вопроса 1
GavriKos
@GavriKos Куратор тега Unity
Lerp в Update по времени. Запоминаете текущий скейл и целевой, задаете время за сколько надо измениться, и между ними интерполируетесь каждый кадр.
Или используйте плагины типа tweener.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@S0HardCore
Вариант с корутинами. Запускаешь через:
StartCoroutine(SlowScale());

IEnumerator SlowScale()
{
   for (float q = 1f; q < 2f; q += .1f;)
   {
      transform.localScale = new Vector3(q, q, q);
      yield return new WaitForSeconds(.05f)
   }
}

Где .1f - величина изменения размера, а .05f - скорость изменения.
Ответ написан
@fpetrov2016
new Vector3(Increase, Increase, Increase) * Time.deltaTime;
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы