При клике либо нажатии и удержании джойстик получает координаты близкие к нулю и смещается в левый нижний угол.
При движении мышкой или пальцем он позиционируется под указателем и ведет себя ожидаемо.
В чем проблема такого стартового его поведения?
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;
public class ActorMobileController : MonoBehaviour, IDragHandler, IPointerUpHandler, IPointerDownHandler {
private Image joystickBG;
[SerializeField]
private Image joystick;
private Vector2 inputVector;
// Use this for initialization
void Start()
{
joystickBG = GetComponent<Image>();
joystick = transform.GetChild(0).GetComponent<Image>();
}
public virtual void OnPointerDown(PointerEventData ped)
{
OnDrag(ped);
}
public virtual void OnPointerUp(PointerEventData ped)
{
inputVector = Vector2.zero;
//Возврат джойстика в центр
joystick.rectTransform.anchoredPosition = Vector2.zero;
}
public virtual void OnDrag(PointerEventData ped)
{
Vector2 pos;
if(RectTransformUtility.ScreenPointToLocalPointInRectangle(joystickBG.rectTransform, ped.position, ped.pressEventCamera, out pos))
{
//Получение координат позиции касания джойстика
pos.x = (pos.x / joystickBG.rectTransform.sizeDelta.x);
pos.y = (pos.y / joystickBG.rectTransform.sizeDelta.y);
inputVector = new Vector2(pos.x * 2 - 1, pos.y * 2 - 1);
inputVector = (inputVector.magnitude > 1.0f) ? inputVector.normalized : inputVector;
joystick.rectTransform.anchoredPosition = new Vector2(inputVector.x * (joystickBG.rectTransform.sizeDelta.x / 2), inputVector.y * (joystickBG.rectTransform.sizeDelta.y / 2));
}
}
public float Horizontal()
{
print("input" + inputVector);
if (inputVector.x != 0) return inputVector.x;
else return Input.GetAxis("Horizontal");
}
public float Vertical()
{
if (inputVector.y != 0) return inputVector.y;
else return Input.GetAxis("Vertical");
}
}
конкретно вот этот узел
//Получение координат позиции касания джойстика
pos.x = (pos.x / joystickBG.rectTransform.sizeDelta.x);
pos.y = (pos.y / joystickBG.rectTransform.sizeDelta.y);
получая координаты например 40, 40, на выходе дает значения близкие к нулю. Почему же?
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
ПриветКакие есть best practicies для такой задачи: хранить неопределенное количество элементов за последние n минут? Есть ли какие-то готовые реализации...
Подскажите, пожалуйста, как в Chart js убрать(изменить на свое), например 1999 в tooltip и оставить только Asia:3700