using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;
public class Joystick : MonoBehaviour, IDragHandler, IPointerUpHandler, IPointerDownHandler
{
public Image joystick_Back, joystick_Bt;
public static Vector3 dir_Vec3;
public virtual void OnDrag(PointerEventData p)
{
Vector2 pos;
if(RectTransformUtility.ScreenPointToLocalPointInRectangle(joystick_Back.rectTransform, p.position, p.pressEventCamera, out pos))
{
pos.x = (pos.x / joystick_Back.rectTransform.sizeDelta.x);
pos.y = (pos.y / joystick_Back.rectTransform.sizeDelta.y);
dir_Vec3 = new Vector3(pos.x * 3,0, pos.y * 3);/*(pos.x * 3 + 0.5f, 0, pos.y * 3 + 0.5f);*/
dir_Vec3 = (dir_Vec3.magnitude > 0.5f) ? dir_Vec3.normalized : dir_Vec3;
joystick_Bt.rectTransform.anchoredPosition = new Vector3(dir_Vec3.x * (joystick_Back.rectTransform.sizeDelta.x / 3), dir_Vec3.z * (joystick_Back.rectTransform.sizeDelta.y / 3));
}
}
public virtual void OnPointerDown(PointerEventData p)
{
OnDrag(p);
}
public virtual void OnPointerUp(PointerEventData p)
{
dir_Vec3 = Vector3.zero;
joystick_Bt.rectTransform.anchoredPosition = Vector3.zero;
}
}
====================================================================
float v = dir.z;
float h = dir.x;
'Coding Test > C_C#_C++' 카테고리의 다른 글
[C] 단방향 연결리스트 (0) | 2020.12.31 |
---|---|
[C++] 순수 가상 함수와 추상 클래스 정리 (0) | 2019.04.02 |
[Unity C#]Timer (0) | 2019.03.16 |