下载资源Joystick Pack并导入
玩家身上挂载如下脚本
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MoveCtlJiQiRen : MonoBehaviour
{
public float speed = 3f;
Animator anim;
Vector3 move;
public VariableJoystick variableJoystick;
void Start()
{
// 获取动画组件
anim = GetComponent<Animator>();
}
void UpdateAnim()
{
// 控制动画播放内容,(既是:控制动画播放参数)
// (注明:move向量的长度,就代表这移动的快慢)
anim.SetFloat("RUNspeed", move.magnitude);
}
void Update()
{
// 获取移动量
// 获取横向和纵向的输入(-1至1)范围内的一个值:
float x = Input.GetAxis("Horizontal");
float z = Input.GetAxis("Vertical");
move = new Vector3(x, 0, z);
// 加入摇杆输入
// 判断如果键盘没有输入,就获取摇杆值
x = x == 0 ? variableJoystick.Horizontal : x ;
z = z == 0 ? variableJoystick.Vertical : z;
move = new Vector3(x, 0, z);
// 转向
transform.LookAt(transform.position + move);
// 去目标地点
// 乘以 : 速度 * 一帧的时长
//(注明:这样保证了,1秒钟内移动的距离,即为:保证了移动速度)
// (注明: 1秒钟移动的距离= 速度*1秒 = 速度*(一帧的时长 * 帧率)
transform.position += move * speed * Time.deltaTime;
// 拨玄,for动画播放器
UpdateAnim();
}
}
创建和布局UI
在我们的Canvas的2D面板中创建一个空物体,改名为Operator(代表控制),然后将右边Joystick Pack–Prefabs–Variable Joystick的预制件拖入到Operator下。
玩家身上绑定variableJoystick变量值为上面的UI对象
—完活。