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

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

然后我来说说Demo里的坑

Camera

CameraController 里边有一个问题,就是“一指”和“两指”用同一个Gesture,而且附在同一个GameObject上,这导致了后面第二个坑:
Unity 触摸插件 TouchScript遇到的坑
如果你把这两个ScreenTransformGesture改成none再重新附加,会发现其中一个Gesture失效,原来附加时是自动把该GameObject 里第一个符合条件的加进去,所以你在附加了第一个后,要先把下面的ScreenTransformGesture Move up 才可以加进去。
(令人智熄)
Unity 触摸插件 TouchScript遇到的坑
在twoFingerTransformHandler这个名字的响应方法里实际执行的是“一指”操作,而manipulationTransformedHandler响应方法才是“两指”操作。这个在我改脚本时卡了很久。。。
Unity 触摸插件 TouchScript遇到的坑
因为之前以为这个很简单,直接放到项目里再改,结果一直失败。这次我先试试在Demo上面改,这个是修改并成功运行的结果。
在Rotation上我加入了限制,使其上下限制在一个角度里。
(后来搬到项目时我发现这样子转动会导致镜头水平倾斜,这是后话。)
然后缩放上我改成了用镜头的FieldOfView数值。

本来以为我后面会很顺利,结果。。。
搬到项目后,由于MoveGesture和RotateGesture是用在两个镜头中,而ZoomGesture是两个镜头都用到,所以得分开他们,然后我现在无论怎么搞,MoveGesture、RotateGesture和ZoomGesture中只能同时有一个能用,怎么搞也不行。
而且,MoveGesture出来效果是上下垂直动,只有右键一下才能水平移动,无解
另外RotateGesture明明是“一指”操作的,有时“一指”没有效果,这时候用“两指”操作才有效果,但放开手以后只能“一指”操作,“两指”操作无效。
ZoomGesture倒是没有什么问题。

这才是最让人头疼的地方,Gesture他们独立都有效果,也有各自加入对方的Friendly Gesture List,但无论怎么搞,每次都只有一个Gesture运作。

头疼,这东西咋搞的

相关文章:

  • 2021-04-20
  • 2022-12-23
  • 2021-05-24
  • 2021-11-23
  • 2021-12-04
  • 2022-12-23
  • 2021-09-17
  • 2021-08-13
猜你喜欢
  • 2021-12-10
  • 2021-08-08
  • 2021-08-14
  • 2021-09-05
  • 2022-12-23
  • 2022-12-23
  • 2021-09-10
相关资源
相似解决方案