using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class TouchController : BaseController
{
///
/// 控制对象的Transform
/// 若为空则控制当前脚本所在对象
///
[Tooltip("控制对象的Transform,默认为当前对象")]
public Transform tran;
///
/// 移动速度(米/秒)
///
[Tooltip("移动速度(米/秒)")]
public float moveSpeed = 5;
///
/// 旋转速度(角度/秒)
///
[Tooltip("旋转速度(角度/秒)")]
public float rotateSpeed = 10;
///
/// 点击位置
///
Vector2 startTouchPosition;
void Start()
{
if (tran == null)
tran = transform;
}
void Update()
{
if (CanControl)
{
if (Input.touchCount > 0)
{
Touch touch = Input.GetTouch(0);
if (touch.phase == TouchPhase.Began)
{
startTouchPosition = touch.position;
}
else if (touch.phase == TouchPhase.Moved)
{
Vector2 deltaTouch = touch.position - startTouchPosition;
tran.position += tran.forward * moveSpeed * Time.deltaTime * deltaTouch.y; // 移动
if (deltaTouch.x > 0)
tran.Rotate(Vector3.up * rotateSpeed * Time.deltaTime ); // 旋转
else
tran.Rotate(Vector3.up * -rotateSpeed * Time.deltaTime); // 旋转
IsTouchOnControl = true;
}
else
{
IsTouchOnControl = false;
}
}
else
{
if(IsTouchOnControl)
{
Invoke("SetTouch", 1f);
}
}
}
}
void SetTouch()
{
IsTouchOnControl = false;
}
}