Unity事件重写——外加移动端多指触控并解决冲突

本文介绍了Unity事件重写的基本原理,并提供了一段实现移动端多指触控且解决冲突的脚本。在讲解中,作者强调了Unity事件动态挂载的特性,以及在处理多点触控时遇到的难点——由于Input.touches数组存储方式,识别特定手指的挑战。通过采用距离判断的方法,找到最接近方向盘的手指以确定fingerId,从而解决了这个问题。
摘要由CSDN通过智能技术生成

萌新报道

首先放上事件重写脚本

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;
public class EventTriggerManager : EventTrigger//需继承自EventTrigger
{
   
    //重写事件脚本

    public delegate void ClickDownListener(GameObject game);//点击事件委托
    public ClickDownListener onClickDown;//点击事件委托实例

    public delegate void ClickUpListener(GameObject game);//弹起事件委托
    public ClickUpListener onClickUp;//弹起事件委托实例

    public delegate void Move(GameObject game);//移动事件委托
    public Move onMove;//移动事件委托实例

    public static EventTriggerManager Get(GameObject game)//Get方法
    {
   
        EventTriggerManager eventTriggerManager = game.GetComponent<EventTriggerManager>();//得到目标物体上的此脚本
        if (eventTriggerManager == null)//若为空
        {
   
            eventTriggerManager= game.AddComponent<EventTriggerManager>();//动态挂载
        }
        return eventTriggerManager;//返回此脚本
    }
    public override void OnDrag(PointerEventData eventData)//重写父类中的移动方法,以下同理
    {
   
        if (onMove != null)//若委托不为空,则执行此委托
        {
   
            onMove.Invoke(gameObject);
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值