ue3dUnity的基本输入

Unity的基本输入

分类:
ue3d - Unity的基本输入

输入是所有游戏必备的控制系统,它可以让玩家使用一些键盘设备控制屏幕上所发生的一切事情,如果屏幕中没有互动,那么就不叫游戏了,与短片或视频没区别。

要让玩家在Unity中控制游戏,首先需要选择编辑菜单 → 项目管理 → 选择Input Manager(输入管理),其中有大小、水平、垂直、鼠标等选项。

ue3d - Unity的基本输入

其实这些参数都是针对输入系统而所需的控制参数,例如控制的轴向,哪些键盘或鼠标按钮会影响这些控件。

默认的参数中都有自动填充,例如a和d键影响水平轴,而w和s键影响垂直轴,这些轴也可能受到箭头键的影响。

public class Player : MonoBehaviour
{
    [SerializeField]
    private float _mySpeed = 1f;

    // 在第一个帧更新之前开始调用
    void start()
   {
        // 将玩家的位置设置为 (0,0,0), 即游戏世界的中心.
        transform. position = Vector3.zero;
   }
   // 每帧调用一次更新
   void Update()
  {
  float horizontalInput = Input.GetAxis("Horizontal");
  
  // 每秒以“mySpeed”单位移动玩家
  transform.position += Vector3.right * horizontalInput * _mySpeed * Time.deltaTime;
  
  }
}

其中需要注意的主要内容是Input.GetAxis(“Horizontal”),这是在告诉Unity输入获取水平轴提供的当前值,该值由a和d键控制,这返回-1和1之间的浮点数,当d保持时,得到1,当保持A时,得到-1。

通过将这个系数乘以我们的速度(mySpeed),可以使用键盘控制正方形是向左还是向右移动。

ue3d - Unity的基本输入

也可以做类似的事情来增加垂直运动。

public class Player : MonoBehaviour
{
    [SerializeField]
    private float _mySpeed = 1f;

    // 在第一个帧更新之前开始调用
    void start()
   {
        // 将玩家的位置设置为 (0,0,0), 即游戏世界的中心.
        transform. position = Vector3.zero;
   }
   // 每帧调用一次更新
   void Update()
  {
  float horizontalInput = Input.GetAxis("Horizontal");
  
  // 每秒以“mySpeed”单位移动玩家
  transform.position += Vector3.right * horizontalInput * _mySpeed * Time.deltaTime;
  transform.position += Vector3.up * verticalInput * _mySpeed * Time.deltaTime;
  }
}

现在也得到了垂直轴,用它来控制正方形向上和向下移动的程度,方法是将其乘以Vector3.up向量。

ue3d - Unity的基本输入

现在,就可以使用所有wasd键和箭头键甚至控制器操纵杆来移动这个正方形。

最后,为们可以打开输入管理器,在其中设置一些参数。

ue3d - Unity的基本输入

例如捕捉开关,修改重力值以及灵敏度等等,这样可以用来改变这个正方形移动的行为方式。

这是修改后的最终操控效果,速度明显慢了许多。

ue3d - Unity的基本输入

相关信息

  • 类型:知识
  • 字数:577
  • 字符:2168
  • 使用软件:2019.3.5f1
  • 说明:无
  • 编号:102326

热门内容

提示:3D天堂作为服务提供者,尊重网络版权及知识产权,对某些行为的发生不具备充分的监控能力,若无意间侵犯到您的权利,请 联系我们,我们会在收到信息后尽快给予处理。

本站文章版权归本站自创作者所有,未经允许不得转载!