Перейти к содержанию

Перемещение объекта за курсором


Рекомендуемые сообщения

Здравствуйте.Как можно сделать плавное перемещение объекта за курсором в окне? То есть двигать по чуть-чуть . по единице.

Скрытый текст

hcF6QFPOHyc.jpg0ov0AjFseps.jpg

 

Ссылка на комментарий
Поделиться на другие сайты

1 час назад, ШАРИК сказал:

Как можно сделать плавное перемещение объекта за курсором в окне?

 

На плавность влияет расчет дельты между кадрами рисования.

Позиция круга = (Позиция круга, Позиция курсора, Time.dtltaTime * speed)

 

gameObject.position = MoveTowards(gameObject.position, mouse.Position, Time.dtltaTime * speed)

 

Скрытый текст

public static Vector2 MoveTowards(Vector2 current, Vector2 target, float maxDistanceDelta)
{
	Vector2 a = target - current;
	float magnitude = a.magnitude;
	Vector2 result;
	if (magnitude <= maxDistanceDelta || magnitude == 0f)
	{
		result = target;
	}
	else
	{
		result = current + a / magnitude * maxDistanceDelta;
	}
	return result;
}
public float magnitude
{
	get
	{
		return Mathf.Sqrt(this.x * this.x + this.y * this.y);
	}
}                                   
                                    

 

 

Ссылка на комментарий
Поделиться на другие сайты

34 минуты назад, MasterGH сказал:

 

На плавность влияет расчет дельты между кадрами рисования.

Позиция круга = (Позиция круга, Позиция курсора, Time.dtltaTime * speed)

 

gameObject.position = MoveTowards(gameObject.position, mouse.Position, Time.dtltaTime * speed)

 

  Скрыть содержимое


public static Vector2 MoveTowards(Vector2 current, Vector2 target, float maxDistanceDelta)
{
	Vector2 a = target - current;
	float magnitude = a.magnitude;
	Vector2 result;
	if (magnitude <= maxDistanceDelta || magnitude == 0f)
	{
		result = target;
	}
	else
	{
		result = current + a / magnitude * maxDistanceDelta;
	}
	return result;
}
public float magnitude
{
	get
	{
		return Mathf.Sqrt(this.x * this.x + this.y * this.y);
	}
}                                   
                                    

 

 

Спасибо )Пришлось чуточку переписать . Но почему-то объект просто телепортируется , хотя я sleep для теста поставил
Так вот переделал:
 

Скрытый текст


float magnitudee(int x, int y)
{


	return sqrt(x * x + y * y);

}
 int MoveTowards(int current, int target, float maxDistanceDelta)
{
	 int a = target - current;
	int magnitude = magnitudee(current, target);
	int result;
	if (magnitude <= maxDistanceDelta || magnitude == 0)
	{
		result = target;
	}
	else
	{
		result = current + a / magnitude * maxDistanceDelta;
	}
	return result;
}

 

Так вызываю:

Скрытый текст


				x = MoveTowards(foo.x - (size / 2), x,1);
				y = MoveTowards(foo.y - (size / 2), y ,1);

 

 

Изменено пользователем ШАРИК
Ссылка на комментарий
Поделиться на другие сайты

17 минуту назад, ШАРИК сказал:

Шо , никто не шарит ?

 

Давай переформулируем вопрос.

Кто хочет принять участие в решении вопроса?

Кто хочет узнать как плавно перемещать объекты за курсом мышки?

Кто  хотел бы увидеть решение?

Ссылка на комментарий
Поделиться на другие сайты

1 час назад, MasterGH сказал:

 

Давай переформулируем вопрос.

Кто хочет принять участие в решении вопроса?

Кто хочет узнать как плавно перемещать объекты за курсом мышки?

Кто  хотел бы увидеть решение?

да тут хоть обпереформулируйся !11

Изменено пользователем ШАРИК
Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.