/********************************************************************************
 *	文件名:	ThirdPersonController.cs
 *	全路径:	\Script\Player\ThirdPersonController.cs
 *	创建人:	李嘉
 *	创建时间:2013-11-05
 *
 *	功能说明: 第三人称视角移动类
 *	          之后正式版中如果改为手指输入则将该类替换掉即可
 *	修改记录:
*********************************************************************************/
/*
using Games.Scene;
using UnityEngine;

// 注:这玩意实际只提供方向,不提供速度
// 早期速度会只影响角色移动步长 - 刚开始步长较小,然后步长逐渐变大,实际每帧更新的话,只需要一个小步长即可
public class ThirdPersonController : MonoBehaviour
{
    // 摇杆预测移动距离
    private const float _joyStickMoveDelta = 2f;

    /// <summary>
    /// 获得当前Ui空间的摇杆/键盘输入方向
    /// </summary>
    public Vector2 GetCurrentInputDirection()
    {
        var result = Vector2.zero;
        if (JoyStickLogic.Instance() != null)
            result = JoyStickLogic.Instance().CurrentInput;
        // 编辑器和PC端支持键盘和其他设备输入
        #if UNITY_EDITOR || UNITY_STANDALONE
        if (result == Vector2.zero)
        {
            result.x = Input.GetAxis("Horizontal");
            result.y = Input.GetAxis("Vertical");
            if (result.x > 0f)
                result.x = 1f;
            else if (result.x < 0f)
                result.x = -1f;
            if (result.y > 0f)
                result.y = 1f;
            else if (result.y < 0f)
                result.y = -1f;
            if (result != Vector2.zero)
                result = result.normalized;
        }
        #endif
        return result;
    }

    /// <summary>
    /// 获得当前世界空间的摇杆/键盘输入方向
    /// </summary>
    public Vector3 GetCurrentInputDirectionInWorld()
    {
        var result = Vector3.zero;
        Transform cameraTransform = null;
        if (SceneLogic.CameraController != null && SceneLogic.CameraController.MainCamera != null)
            cameraTransform = SceneLogic.CameraController.MainCamera.transform;
        if (cameraTransform != null)
        {
            var inputDirection = GetCurrentInputDirection();
            if (inputDirection != Vector2.zero)
            {
                var x = Vector3.Cross(Vector3.up, cameraTransform.forward);
                if (x != Vector3.zero)
                {
                    var z = Vector3.Cross(x, Vector3.up);
                    result = inputDirection.x * x + inputDirection.y * z;
                }
            }
        }
        return result;
    }

    
    public bool GetCurrentTargetPoint(out Vector3 movePosition)
    {
        var result = false;
        movePosition = Vector3.zero;
        var mainPlayer = Singleton<ObjManager>.GetInstance().MainPlayer;
        if (mainPlayer != null)
        {
            // 摇杆和键盘输入优先
            var joyStickInput = GetCurrentInputDirectionInWorld();
            if (joyStickInput != Vector3.zero)
            {
                result = true;
                movePosition = mainPlayer.Position + joyStickInput * _joyStickMoveDelta;
            }
            else if (ProcessInput.Instance() != null && ProcessInput.Instance().IsTouchMove)
            {
                result = true;
                movePosition = ProcessInput.Instance().MovePoint;
            }
        }
        return result;
    }
}
*/