Unity 触摸插件 TouchScript遇到的坑

说在前面,我现在的项目使用TouchScript 是因为突然改需求要用触摸屏。原本TouchScript的功能根本不能满足项目用。网上找到大部分教学都没有说怎么用Script写其他功能,所以只能一步一脚印研究了。首先,没有看懂TouchScript的可以看看这个大大的说明。TouchScript中文—Gestures - Arcobaleno - CSDN博客然后我来说说Demo里的坑C...
摘要由CSDN通过智能技术生成

说在前面,我现在的项目使用TouchScript 是因为突然改需求要用触摸屏。原本TouchScript的功能根本不能满足项目用。
网上找到大部分教学都没有说怎么用Script写其他功能,所以只能一步一脚印研究了。

首先,没有看懂TouchScript的可以看看这个大大的说明。
TouchScript中文—Gestures - Arcobaleno - CSDN博客

然后我来说说Demo里的坑

Camera

CameraController 里边有一个问题,就是“一指”和“两指”用同一个Gesture,而且附在同一个GameObject上,这导致了后面第二个坑:
两个Gesture都是ScreenTransformGesture
如果你把这两个ScreenTransformGesture改成none再重新附加,会发现其中一个Gesture失效,原来附加时是自动把该GameObject 里第一个符合条件的加进去,所以你在附加了第一个后,要先把下面的ScreenTransformGesture Move up 才可以加进去(令人智熄),而且有时候调试出bug也不知道是不是这个导致,常常因为这个浪费了时间。

在twoFingerTransformHandler这个名字的响应方法里实际执行的是“一指”操作,而manipulationTransformedHandler响应方法才是“两指”操作。这个在我改脚本时卡了很久。。。

下面这个是我在Demo Script上修改后的结果

因为之前以为这个很简单,直接放到项目里再改,结果一直失败。这次我先试试在Demo上面改,这个是修改并成功运行的结果。
在Rotation上我加入了限制,使其上下限制在一个角度里。
(后来搬到项目时我发现这样子转动会导致镜头水平倾斜,这是后话。)
然后缩放上我改成了用镜头的FieldOfView数值。

Multiuser

这个其实并不是什么坑,这是写下来防止以后不记得。
Multiuser这个Demo不是用RawImage来分屏,而是用Camera的Depth跟ViewPoint的XYWH控制,然后只要加入FullScreen Layer就行。用RawImage也要同样做法,最好把RawImage调成屏幕大小,然后改Camera ViewPoint的XYWH来控制大小,最后记得,记得,把RawImage的Raycast Target关闭。

================================================================
本来以为我后面会很顺利,结果。。。

搬到项目后,由于MoveGesture和RotateGesture是用在两个镜头中,而ZoomGesture是两个镜头都用到,所以得分开他们,然后我现在无论怎么搞,MoveGesture、RotateGesture和ZoomGesture中只能同时有一个能用,怎么搞也不行。
这才是最让人头疼的地方,Gesture他

  • 8
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 15
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值