问题描述
这个问题是因为当我想实例化弹丸时,它的输出方式与方向不同
解决方法
假设您的 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));
}