【Input】Unity自带地Touch Input
2019-06-25 本文已影响0人
zitaoye
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) 作为基础
- Create UI Canvas
- 拖动Fixed Joystick Prefabs放入场景;
- 修改代码为如下,并且将之前的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蹲下事件。