Unity使用input system制作一个摇杆控制物体移动

admin3年前unity基础API1727

1:首先使用UI做个摇杆的模型 两个图片嵌套,外侧是边界,中间图片是摇杆


QQ图片20221220160858.png



2:使用inputSYSTEM创建事件




3:玩家物体上绑定脚本

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PlayerController : MonoBehaviour
{
    public float speek = 5;
    MyInputAction inputActions;
    Rigidbody rg;

    private Vector2 move;
    void Awake()
    {
        inputActions = new MyInputAction();
        rg = this.GetComponent<Rigidbody>();
    }

    // Update is called once per frame
    void Update()
    {
        
        rg.velocity = new Vector3(move.x * speek, 0,move.y * speek);
    }

    private void OnEnable()
    {
        inputActions.Enable();
        inputActions.PlayerMove.move.performed += Move_performed;
        inputActions.PlayerMove.move.canceled += Move_canceled;
    }

    private void Move_canceled(UnityEngine.InputSystem.InputAction.CallbackContext obj)
    {
        move = Vector2.zero;
    }

    private void Move_performed(UnityEngine.InputSystem.InputAction.CallbackContext obj)
    {
        move = obj.ReadValue<Vector2>();
       
    }

    private void OnDisable()
    {
        inputActions.Disable();
        inputActions.PlayerMove.move.performed -= Move_performed;
    }
}



4:UI控件上也绑定相关脚本设置参数如下


QQ图片20230128173740.png


通过监听摇杆的选择变化的坐标控制物体进行跟随

相关文章

Unity寻找子物体的几种方法

    1: transform.Find()寻找子物体   transform.Find(“子物体名字”)2: GameObject.FindGam...

blender导出模型和动画到Unity

blender导出模型和动画到Unity

1:首先我们确保导出的模型是FBX2:模型的Rig设置为泛型 avatar根据实际情况可以选择无或则从此模型创建3:设置动画控制器,把模型中的动画拖入就可以了...

Unity AR 两指手势实现物体放大缩小功能

using UnityEngine;   public class Zoom : MonoBehaviour {  &nb...

Unity 创建2D地图技巧

Unity 创建2D地图技巧

1:瓦片尺寸的设置这里的每个单位像素要和图片的真实的宽高一样,否则绘制的时候出现缩放2: 地图碰撞添加需要给地图添加碰撞体如图然后还需要加上如下碰撞体最后需要勾选上 TileMap Coll...

Unity给UI元素物体添加操作响应事件

可以给自定义物体如图片等添加响应事件引入命名空间using UnityEngine.EventSystems;类中继承接口IPointerDownHandler实现接口  ...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。