Unity 之大屏幕多点触控插件 TouchScript 9.0 入门指南

在端游上大家应该多数都使用过的EasyTouch插件,在EasyTouch 5.0.17 最新版本扩展方法中我有过简单的介绍,今天说一下另一款触摸插件,它非常适合做展示类大屏幕的多点触控TouchScript,在Unity上的AssetStore也是五星好评,而且还是免费资源,也可以在GitHub上下载对应的TouchScript

下面我们开始介绍TouchScript提供的每一个Example

第一个示例场景Camera

Camera.gif

这个例子演示了如何使用

  • ScreenTransformGesture
  • Pointer limits
  • FullscreenLayer

相互作用

  • 用一根手指拖动相机
  • 用2个手指拖动旋转相机
  • 捏缩放
  • 用2个手指旋转绕Z轴旋转

在这个场景中主要含有 主要逻辑和3个TouchScript组件

1. FullscreenLayer ---在这个图层中,你可以看到所有的 pointers 而不需要对场景进行任何raycast投射然后将目标设置为它所连接的GameObject,在这个例子中, FullscreenLayer 通常放在层次结构的底部以捕获所有剩余的pointer,但在本例中,它是唯一的层,因为我们对“Touching”任何对象不感兴趣。

我对他的理解为这个FullscreenLayer 只是接受TouchScript射线的一个层级,一般会把这个层级放在最底层,类似于背景,如果有其他层级在它前面会挡住摄像,然后对应的层级处理响应的事件,这个场景中只有这个层级,所以其他物理无法接受事件所以不会有操作

2. ScreenTransformGesture 将Transform Type设置为“Translation”并将Limit Pointers限制为1.此手势仅识别单指针平移移动。

3. 另一个ScreenTransformGesture,它具有Transform Type 设置为Translation、Rotation、Scaling和Limit Pointers to> = 2。 该手势可识别所有双指针变换。

4. CameraController脚本订阅ScreenTransformGestures并控制相机移动,如下所示:

/*
 * @author Valentin Simonov / http://va.lent.in/
 */

using UnityEngine;
using TouchScript.Gestures.TransformGestures;

namespace TouchScript.Examples.CameraControl
{
    /// <exclude />
    public class CameraController : MonoBehaviour
    {
        public ScreenTransformGesture TwoFingerMoveGesture;
        public ScreenTransformGesture ManipulationGesture;
        /// <summary>
        /// 移动速度
        /// </summary>
        public float PanSpeed = 200f;
        /// <summary>
        /// 旋转速度
        /// </summary>
        public float RotationSpeed = 200f;
        /// <summary>
        /// 缩放速度
        /// </summary>
        public float ZoomSpeed = 10f;

        private Transform pivot;
        private Transform cam;

        private void Awake()
        {
            pivot = transform.Find("Pivot");
            cam = transform.Find("Pivot/Camera");
        }

        private void OnEnable()
        {
            TwoFingerMoveGesture.Transformed += twoFingerTransformHandler;
            ManipulationGesture.Transformed += manipulationTransformedHandler;
        }

        private void OnDisable()
        {
            TwoFingerMoveGesture.Transformed -= twoFingerTransformHandler;
            ManipulationGesture.Transformed -= manipulationTransformedHandler;
        }
        /// <summary>
        /// 单指事件
        /// </summary>
        /// <param name="sender"></para
  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值