美文网首页
二、摇杆控制:摇杆补充

二、摇杆控制:摇杆补充

作者: GameObjectLgy | 来源:发表于2021-01-19 22:03 被阅读0次
补充1:

有时,有的游戏需要第三种模式的摇杆,即摇杆可以全屏跟随点击点移动,同时,要求点击屏幕任意处可以调用普通攻击的输入。因为拖拽也会产生一次点击,但是拖拽的时候我们并不想产生普通的效果。这是就需要进行额外的处理。

using UnityEngine;
using System;

/// <summary>
/// 副本人物移动控制
/// </summary>
public class CharTouchInput : TouchEvtsHandlerBase
{
    private Vector2 currentDir;
    private bool isNormalAtk = true;
    protected override void Start()
    {
        base.Start();
        Action acClick = ActionClick;
        Action acDown = ActionClickDown;
        Action acClickUp = ActionClickUp;
        Action<Vector2> acDrag = ActionDrag;
        base.RegisterTouchEvts(acClick, acDown, acClickUp, acDrag);
    }

    private void ActionClick()
    {
        
    }

    private void ActionClickDown()
    {
        
    }

    private void ActionClickUp()
    {
        //Debug.Log("ActionClickUp");
        currentDir = Vector2.zero;
        //BattleSys.Instance.SetMoveDir(Vector2.zero);
        EventManager.DispatchEvent(EventTypeList.TouchCtlEvt, currentDir.normalized);
        //因为每次拖拽结束时也会产生一次ActionClickUp,所以需要进行一下判断
        if (isNormalAtk)
        {
            //EventManager.DispatchEvent(EventTypeList.TouchClickUp);
            //Debug.Log("普攻");
        }
        isNormalAtk = true;
    }

    private void ActionDrag(Vector2 dir)
    {
        //Debug.Log("ActionDrag : " + dir);
        currentDir = dir.normalized;
        //BattleSys.Instance.SetMoveDir(dir);
        EventManager.DispatchEvent(EventTypeList.TouchCtlEvt, dir);
        isNormalAtk = false;
    }
}

如上代码所示,在点击ClickUp时,进行是否是普攻判断,在拖拽时ActionDrag比ActionClickUp先执行,所以ActionDrag时对isNormalAtk 进行标记,排除是普通攻击,在ActionClickUp的最后再进行恢复。

补充2:

有时需要在摇杆处实现,双击的响应,比如双击实现闪烁技能。

private void ActionClick()
    {
        if (Time.time - lastClickTime < 0.2)
        {
            EventManager.DispatchEvent(EventTypeList.TouchDoubleClick);
        }
        lastClickTime = Time.time;
    }

如上,在ActionClick里进行一个时间上的间隔判断即可实现。

相关文章

网友评论

      本文标题:二、摇杆控制:摇杆补充

      本文链接:https://www.haomeiwen.com/subject/donczktx.html