【Input】Unity自带地Touch Input

Brackey的youtube视频 Touch Control In Unity 2018.9.30
https://www.youtube.com/watch?v=bp2PiFC9sSs

Unity的Touch类

将项目Target Platform转为IOS Build
下载Unity Remote 5
用usb连接IOS手机
并且在Project Setting中进行Editor的设置,选择自己的苹果设备

Unity默认有自己的UI的事件系统;默认可以使用UI进行点击事件。

修改自身位置与点击位置一致

void Update()
{
  if (Input.touchCount>0)
  {
    Touch touch = Input.GetTouch(0);
    Vector3 touchPosition = Camera.main.ScreenToWorldPoint(touch.position);
    touchPosition.z = zero;
    transform.position = touchPosition;
  }
}

从屏幕中央发射射线到每一个触碰的touch处

void Update()
{
   for(int i = 0; i<Input.touchCount ; i++)
    {
      Vector3 touchPosition = Camera.main.ScreenToWorldPoint(Input.touches[i].positon);
      Debug.DrawLine(Vector3.zero, touchPosition, Color.red);
    }
}


使用虚拟摇杆

在AssetStore中使用免费的 Joystick Pack (https://assetstore.unity.com/packages/tools/input-management/joystick-pack-107631) 作为基础

  1. Create UI Canvas
  2. 拖动Fixed Joystick Prefabs放入场景;
  3. 修改代码为如下,并且将之前的FixedJoystick拖入inspector
public Joystick joystick;

void Update()
{
  horizontalMove = joystick.Horizontal * runSpeed;
}


如果想要Calibrate 不受到数值影响,则可以使用以下代码

public Joystick joystick;

void Update()
{
  if(joystick.Horizontal >= .2f)
  {
    horizontalMove = runSpeed;
  }else if (joystick.Horizontal <= -.2f)
  {
    horizontalMove = -runSpeed;
  }
  else { horizontalMove = zero; }
}

对于Vertical 可以使用0.5f作为基本的阈值来设定跳跃以及crouch蹲下事件。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容