大伟 Unity3D中使用Joystick Pack实现摇杆控制

11 篇文章 2 订阅

下载资源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对象

—完活。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值