더블 로터 디자인 사고방식
using UnityEngine;
using System.Collections;
public enum JoyStickType
{
leftJoyStick,
rightJoyStick
}
public class JoyStick : MonoBehaviour {
public JoyStickType joyStickType;// ,
public Vector2 centerPos;// ,
public Transform centerBall;//
public float joyStickRadius;// ,
private int lastFingerID = -1;// id
private bool centerBallMoving = false;//
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
JoyStickController();
}
void JoyStickController()
{
int count = Input.touchCount;//
for (int i = 0; i < count; i++)//
{
Touch touch = Input.GetTouch(i);Unity3D
//
Vector2 currentTouchPos = new Vector2(Camera.main.ScreenToWorldPoint(touch.position).x, Camera.main.ScreenToWorldPoint(touch.position).y);
Vector2 temp = currentTouchPos - centerPos;// temp( )
if (touch.phase == TouchPhase.Began)
{
if (Mathf.Round(temp.magnitude) <= joyStickRadius)// temp
{
lastFingerID = touch.fingerId;// id
centerBallMoving = true;//
}
}
// , 。 , , ;
// ,
if (touch.fingerId == lastFingerID && centerBallMoving)
{
if (Mathf.Round(temp.magnitude) <= joyStickRadius) // , ,
{
centerBall.transform.position = Camera.main.ScreenToWorldPoint(new Vector3(touch.position.x, touch.position.y, Camera.main.WorldToScreenPoint(centerBall.transform.position).z));
}
else
{
temp.Normalize();
// , z 18, x,y ,
centerBall.transform.position = new Vector3((temp * joyStickRadius + centerPos).x, (temp * joyStickRadius + centerPos).y, 18);
}
if (temp.x >= 0)//0-180
{
// : , Vector2.Angle(temp, new Vector2(0, 5))
//initialization_script.current_player_tank_script.BodyRotation(Vector2.Angle(temp, new Vector2(0, 5)));
}
if (temp.x< 0)//180-360
{
// : , Vector2.Angle(temp, new Vector2(0, 5))
//initialization_script.current_player_tank_script.BodyRotation(-1 * Vector2.Angle(temp1, new Vector2(0, 5)));
}
// , ,
switch(joyStickType)
{
case JoyStickType.leftJoyStick:
//Move();
break;
case JoyStickType.rightJoyStick:
//Fire()
break;
}
//
if (touch.phase == TouchPhase.Ended || touch.phase == TouchPhase.Canceled)
{
centerBall.transform.position = new Vector3(centerPos.x, centerPos.y, 18);
// , initialization_script.current_player_tank_script.CoverRotation(initialization_script.current_player_tank.transform.eulerAngles.y);
centerBallMoving = false;
lastFingerID = -1;
}
}
}
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Asp와 XML로 상호작용하는 실례 원본XML은 표준 확장 언어로 미래 웹 프로그래밍의 표준이다. asp는 현재 널리 전해지는 웹 프로그래밍 언어 중의 하나이다. 그들 두 사람이 연합하여 역할을 발휘할 수 있을까?두부는 여기서 여러분에게 아주 간단한 As...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.