using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class VirtualJoystick : MonoBehaviour
{
public GameObject virtualJoystickBG;
public GameObject virtualJoystick;
public float maxMagnitude;
public static Vector3 input { get; set; }
private Vector3 downPos;
private Vector3 dragPos;
private Vector3 dir;
private float magnitude;
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
if(Input.GetMouseButtonDown(0))
{
downPos = Input.mousePosition;
virtualJoystickBG.transform.position = downPos;
virtualJoystickBG.SetActive(true);
}
if(Input.GetMouseButton(0))
{
dragPos = Input.mousePosition;
dir = Vector3.Normalize(dragPos - downPos);
magnitude = Vector3.Magnitude(dragPos - downPos);
if(magnitude > maxMagnitude)
{
downPos += dir * (magnitude - maxMagnitude);
virtualJoystickBG.transform.position = downPos;
}
input = dir * magnitude / maxMagnitude;
input = new Vector3(input.x, 0f, input.y);
virtualJoystick.transform.position = downPos + dir * magnitude;
}
if (Input.GetMouseButtonUp(0))
{
input = Vector3.zero;
virtualJoystickBG.SetActive(false);
}
}
}
'이전 게시물들 > 유니티' 카테고리의 다른 글
C# List 주요 함수 (0) | 2020.05.28 |
---|---|
리지드바디와 이동, 회전, 애니메이션 (0) | 2020.04.28 |
ToBeCuBe에 사용된 옵션 세팅 (0) | 2020.04.19 |
플렛폼 구분 (0) | 2020.04.19 |
오브젝트 풀링 (0) | 2020.04.18 |