Unity - A计划(永久有效期) 扫二维码继续学习 二维码时效为半小时

(197评价)
价格: 4431.00元
用easytouch 的joystick 做双摇杆的问题,joystick.onTouchStart.AddListener(FireInterval);点一下会运行几百次。
小白cs发起了话题2018-07-25
2
回复
440
浏览

左边控制坦克方向没有问题,右边控制炮管方向也没有问题,但是我用它的joystick.onTouchStart.AddListener(FireInterval);来控制发射子弹就有问题,手册上说这个只运行一次,但是为什么我的会一下子生成几百个子弹。我的代码如下,请问老师哪里出错了?

joystick是一右摇杆。

void Updata()

{joystick.onTouchStart.AddListener(FireInterval);}

//控制间隔

  public void FireInterval()
    {
        if (fireVal >= 2)
        {
            Debug.Log("发射子弹");
            CmdFire();
        }
        else
        {
            fireVal += Time.deltaTime;
        }

    }

//发射子弹

  [Command]
    public void CmdFire()
    {
        GameObject bullet = Instantiate(bulletPrefab, bulletSpawn.position, bulletSpawn.rotation) as GameObject;
        bullet.GetComponent<Rigidbody>().velocity = bullet.transform.forward * bulletSpeed*Time.deltaTime;
        Destroy(bullet, 2.0f);
        fireVal = 0;
        NetworkServer.Spawn(bullet);//在服务器出生
    }

所有回复
发表回复
你还没有登录,请先 登录或 注册!