using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class JoyStickController : BaseController
{
///
/// 控制对象的Transform
/// 若为空则控制当前脚本所在对象
///
[Tooltip("控制对象的Transform,默认为当前对象")]
public Transform tran;
///
/// 移动速度(米/秒)
///
[Tooltip("移动速度(米/秒)")]
public float moveSpeed = 5;
///
/// 旋转速度(角度/秒)
///
[Tooltip("旋转速度(角度/秒)")]
public float rotateSpeed = 10;
void Start()
{
if (tran == null)
tran = transform;
}
// Update is called once per frame
void Update()
{
if (CanControl)
{
if (JoyStickHandler.js_x != 0 || JoyStickHandler.js_y != 0)
{
IsJoyStickOnControl = true;
ControllWithKey(JoyStickHandler.js_x, JoyStickHandler.js_y);
}
else
{
if (IsJoyStickOnControl)
{
Invoke("SetJoyStick", 0.2f);
}
}
}
}
void SetJoyStick()
{
IsJoyStickOnControl = false;
}
Vector3 tmp;
///
/// 使用键盘控制对象
///
/// 水平偏移量
/// 垂直偏移量
void ControllWithKey(float h, float v)
{
switch (JoyStickHandler.CurrentMode)
{
case JoyStickHandler.Mode.Right:
tran.Rotate(Vector3.up * rotateSpeed * Time.deltaTime); // 旋转
break;
case JoyStickHandler.Mode.Left:
tran.Rotate(Vector3.up * -rotateSpeed * Time.deltaTime); // 旋转
break;
case JoyStickHandler.Mode.Up:
tran.position += tran.forward * moveSpeed * Time.deltaTime; // 移动
break;
case JoyStickHandler.Mode.Down:
tran.position += tran.forward * -moveSpeed * Time.deltaTime; // 移动
break;
}
//tran.position += tran.forward * moveSpeed * Time.deltaTime * v; // 移动
//tran.Rotate(Vector3.up * rotateSpeed * Time.deltaTime * h); // 旋转
//Debug.Log(h + "," + v);
//tmp.x = h;
//tmp.z = v;
//tran.Translate(tmp * moveSpeed * Time.deltaTime);
}
}