我怎样才能有一个定向弹丸出来?

问题描述

这个问题是因为当我想实例化弹丸时,它的输出方式与方向不同

解决方法

假设您的 Angle 与您希望射弹的角度相同:
transform.rotation = Quaternion.AngleAxis(Angle,Vector3.forward);

如果它与正确方向成 90 度角,请将精灵旋转为朝上,或者尝试添加/减去 90 到/形成 Angle,例如:
transform.rotation = Quaternion.AngleAxis(Angle - 90,Vector3.forward);

,

将您的 CastSpell 函数重写为以下内容并告诉我它是否有效:

  void CastSpell(int slot) {
      var spellObject = Instantiate(spellPrefab,transform.position,Quaternion.identity);
      var mousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
      var dir = mousePos - transform.position;
      var angle = Mathf.Atan2(dir.y,dir.x) * Mathf.Rad2Deg + 90;
      spellObject.transform.rotation = Quaternion.AngleAxis(angle - 90,Vector3.forward);
      spellObject.GetComponent<SpellController>().srcPlayerID = playerID;
      StartCoroutine(SpellCooldown(slot,gameConstants.spellCooldown));
  }