Перемещение (вращение)объекта вокруг "якоря"
Добавлено:
24 мар 2021, 07:12
Flash14243
Всем привет, столкнулся с такой проблемой как вращение объекта вокруг персонажа.
Суть: Нужно что бы маркер(Sprite) вращался вверх-вниз как бы огибая половину круга перед персонажем, при повороте персонажа соответственно, что бы перед лицом так же оставался маркер.
Я кучу ссылок просмотрел, много испробовал, но то что я хотел сделать, даже близко не получалось.
При попытке сделать это "Маркер" вращался вокруг центра экрана и при повороте персонажа, он резко увеличивал свой радиус.
Хотя я привязывал его к "Якорю"(Пустой гейм объект на игроке). Так же пробовал RotateAround, но он у меня вращался в основном по z.
И ещё, если это получится у вас сделать, можно будет без проблем к этому маркеру добавить точку для выстрела(тоже пустой объект), что бы она без прерываний работала. Если не получится, напишите об этом пожалуйста, я тогда сам допишу, что бы он следовал за маркером.
Если нужны скрины и прочее, отправлю, как увижу сообщение на форуме.
Заранее спасибо за помощь.
Re: Перемещение (вращение)объекта вокруг "якоря"
Добавлено:
24 мар 2021, 08:43
1max1
Скрины или видео не помешало бы, я не очень понимаю что за маркер и зачем он нужен.
Re: Перемещение (вращение)объекта вокруг "якоря"
Добавлено:
24 мар 2021, 11:18
Flash14243
https://imgur.com/a/3Pt4GZ4Жёлтым я нарисовал полукруг, по которому должен двигаться маркер
А зелёный - это уже его путь когда персонаж поворачивается.
То есть маркер всегда огибает только половину круга, только в разных сторонах
Re: Перемещение (вращение)объекта вокруг "якоря"
Добавлено:
24 мар 2021, 11:56
TeslaGan
в плане идеи можно написать что-то подобное(нет под рукой компа, могут быть ошибки):
Используется csharp
public float Distance;
public transform Anchor;
private Vector3 _mousePosition;
void Update()
{
_mousePosition=Input.mousePosition;
//_mousePosition.z=Camera.main.nearClipPlane; //если игра не 2д
_mousePosition=Camera.main.ScreenToWorldPoint(_mousePosition);
//_mousePosition.z=transform.position.z; если игра 2д
if (transform.rotation.x*_mousePosition.x<0) //transform.rotation.x - хранит направление поворота игрока, его надо менять, на то, что у тебя в коде задает его
_mousePosition.x*=-1;
Anchor.position = (transform.position+Vector3.Normalize(_mousePosition-transform.position)*Distance);
набросал что-то такое...
p.s. вообще с такими вопросами(а особенно "если это получится у вас сделать"@Flash14243) надо идти в платный раздел
Re: Перемещение (вращение)объекта вокруг "якоря"
Добавлено:
24 мар 2021, 11:57
Alkos26Rus
сделай один дочерний объект(номер1) внутри персонажа на нулевых позициях, затем в этот дочерний объект засунь свой маркер(номер2) уже со смещением по Х, и вращай объект(номер1) по нужной оси(не помню какая в 2д) локально с ограничением в 180 градусов и это все будет работать при развароте если ты поворачиваешь персонаж отрицательным scale
Re: Перемещение (вращение)объекта вокруг "якоря"
Добавлено:
24 мар 2021, 16:13
Flash14243
TeslaGan писал(а):в плане идеи можно написать что-то подобное(нет под рукой компа, могут быть ошибки):
Используется csharp
public float Distance;
public transform Anchor;
private Vector3 _mousePosition;
void Update()
{
_mousePosition=Input.mousePosition;
//_mousePosition.z=Camera.main.nearClipPlane; //если игра не 2д
_mousePosition=Camera.main.ScreenToWorldPoint(_mousePosition);
//_mousePosition.z=transform.position.z; если игра 2д
if (transform.rotation.x*_mousePosition.x<0) //transform.rotation.x - хранит направление поворота игрока, его надо менять, на то, что у тебя в коде задает его
_mousePosition.x*=-1;
Anchor.position = (transform.position+Vector3.Normalize(_mousePosition-transform.position)*Distance);
набросал что-то такое...
p.s. вообще с такими вопросами(а особенно "если это получится у вас сделать"@Flash14243) надо идти в платный раздел
Я так понял это что бы он двигался за мышью, но это немного не то что мне нужно.
А что за платный раздел, я тут вроде 2 года, иногда захожу, но никогда не видел/слышал об этом.
Re: Перемещение (вращение)объекта вокруг "якоря"
Добавлено:
25 мар 2021, 10:09
TeslaGan
Flash14243 писал(а):Я так понял это что бы он двигался за мышью, но это немного не то что мне нужно.
А что за платный раздел, я тут вроде 2 года, иногда захожу, но никогда не видел/слышал об этом.
тогда сделайте как вам посоветовал Alkos26Rus, этот вариант будет оптимальным. или еще как вариант - поищите как люди делают радиальные слайдеры