Unity3D学习交流(三)(萌新入)-安卓端触控方式的坑

在将Unity3D游戏移植到安卓端时,遇到触控冲突问题,即点击攻击按钮时,左侧摇杆会跟随点击方向。通过研究发现,问题在于未开启多点触控。解决方案是实现双摇杆控制,左边摇杆移动,右边按钮攻击,并且添加中间区域支持双指缩放视角。通过EasyTouchMove组件解决了移动控制问题。
摘要由CSDN通过智能技术生成

JoyStick 之前一直不知道发布到手机上怎么操作,看到网上有人说,桌面端上的鼠标点击和手机上的触控点击是一样的,把电脑上的WSAD键改成四个button就行,鼠标左键攻击也改成手机上的一个button,其他一些功能需要专门学习移动端的触控Touch方法,当时一想,改成button就很简单,Touch还是算了,懒得想,觉得很难。(不想用插件)
后面实际操作时,又想到玩手机游戏都是左边有摇杆,想想还是摇杆更好,就搜了大佬的教程,怎么判断移动呢,之前桌面端就利用 float x = Input.GetAxis(“Horizontal”); float z= Input.GetAxis(“Vertical”);现在手机上用摇杆,就用摇杆在X和Z方向的移动值传给float x,float z即可;

然后令我困扰一天的事情发生了,在使用左边摇杆控制人物移动,左边我点击攻击按钮就行攻击时,触控发生了冲突,我只要点击攻击按钮,左边的摇杆就变成朝我右手点击的按钮方向了,我很困扰为什么不能同时左边点击虚拟摇杆控制人物移动,右边点击按钮控制人物攻击,我用关键字搜索很多结果,也有我这样的问题,但没有明确的回答(现在想想知道了,因为太简单了。。emm),其中我看到一个关于双摇杆的实现,我觉得有点类似,都是两边触控,然后研究了一会,额,复杂,我不怎么看得懂,头疼,我只是想两边都能正常点击实现相应功能,两边同时点击的时候不冲突就行了;然后又硬着头皮搜了Touch相关的资料,实在没办法,不想学也要学习了,最后还是在双摇杆实现那个代码中,我看了几遍,突然想到,,不对,我这边是因为没有开启多点触控!!!这下子恍然大悟,懂了,然后我还想跟桌面端那样鼠标滑轮滚动控制视角的缩放,最后结合大佬的代码,我把屏幕分成三部分,左边虚拟摇杆的显示和控制移动,中间双指缩放控制视角,右边是按钮的点击;
代码如下:

(1) player移动控制:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;

public class EasyTouchMove : MonoBehaviour{
   

    //摇杆移动最大半径
    public float maxRadius = 100;
    //初始化背景图标位置
    public Transform moveBackPos;//虚拟摇杆背景位置(摇杆底盘)
    public Transform joy; //虚拟摇杆位置
    private Vector2 moveCenter;
 
    //hor,ver的属性访问器
    private float horizontal=0;
    private float vertical=0;
    
    public float Horizontal {
   
        get {
    return horizontal; }
    }
 
    public float Vertical {
   
        get {
    return vertical; }
    }
  
    void Start(){
   
        moveCenter = joy.position;
        Input.multiTouchEnabled = true;//开启多点触控
    }
       void Update () {
   
      	horizontal = (joy.position.x - moveCenter.x)/100;
       	vertical = (joy.position.y - moveCenter.y)/100;

        if 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值