public class MobileJoystick : MonoBehaviour
{
private Vector3 _clickedPosition;
private Vector3 _move;
private bool _canControl;
void Start()
{
HideJoystick();
}
public void ClickedOnJoystickZone() // метод для триггера
{
_clickedPosition = Input.mousePosition;
ShowJoystick();
}
private void ShowJoystick() // тут можно добавить визуал если нужен
{
_canControl = true;
}
void Update()
{
if(_canControl)
ControlJoystick();
}
private void ControlJoystick()
{
Vector3 currentPosition = Input.mousePosition;
Vector3 direction = currentPosition - _clickedPosition;
//тут надо сделать перерасчет direction относительно размеров ну и домножить на скорости
//ну все перемножить в получить _move
//тут надо по тестить из головы не придумать)
if (Input.GetMouseButtonUp(0))
HideJoystick();
}
public Vector3 GetMoveVector() // это что будем передавать как значение
{
return _move
}
private void HideJoystick()
{
_canControl = false;
_move = Vector3.zero;
}
}
вот точно не помню, но вроде можно связать один из материалов и mesh.uv, Terrain примерно так работает