unity 2D中的向着鼠标点击方向进行射击

在做一个地牢游戏时,我的玩家原型是一个魔法师一样的角色,他的攻击方向是由鼠标点击方向决定的。然而在这个问题上,我犯了很多错误,自己也很焦躁,到最后,才发现,其实只需要知道鼠标在屏幕上的点击位置(用Input.mouseposition来获取),再知道屏幕的宽高即可。大致如下:

  void FixedUpdate()
    {
        //计时器,子弹发射有间隙
        NextFire += Time.fixedDeltaTime;
        //如果按下了鼠标左键且计时器大于发射间隙
        if (Input.GetMouseButton(0) && NextFire > FireRate)
        {
            //记录鼠标位置
            Vector3 direction = Input.mousePosition;

            //计时器归零
            NextFire = 0;

            //生成子弹
            GameObject b = Instantiate(Bullet, Spwan.transform.position, Quaternion.identity) as GameObject;

            //子弹速度由鼠标点击的位置减去屏幕的宽高的1/2得到
            //主要就是坐标的转换
            b.GetComponent<Rigidbody2D>().velocity = (new Vector3(direction.x - Camera.main.pixelWidth / 2,direction.y - Camera.main.pixelHeight / 2, 0).normalized * BulletSpeed);    
      //将所有子弹放在一个父物体下,方便操作
     b.transform.SetParent(GameObject.Find("Bullets").transform);
        }
  • 8
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值