gpt4 book ai didi

c# - 玩家位置的敌人射击

转载 作者:太空宇宙 更新时间:2023-11-03 12:04:33 27 4
gpt4 key购买 nike

我正在创建一个简单的 Bullet Hell 游戏,并且正在测试一些东西。我希望玩家一开火,敌人的子弹就射向玩家。

我尝试了很多四元数方法,包括 LookTowards、FromToRotation、AngleAxis 等,但似乎都不起作用。

void Start () {
...
StartCoroutine("Shooting");
}

IEnumerator Shooting()
{
while(dead != true)
{

Vector3 position = new Vector3(rb.position.x, rb.position.y - 5f, 0);
Instantiate(Ebullet, position, Quaternion.Euler(0, 0, player.transform.position.x));
yield return new WaitForSeconds(t);
}
}

我希望子弹直接移动到玩家最后已知的位置,而不是敌人以错误的角度射击,每次玩家移动时,角度都会根据玩家的左右移动而改变。

最佳答案

因为您正在制作 2D 游戏,而不是:

Instantiate(Ebullet, position, Quaternion.Euler(0, 0, player.transform.position.x);

尝试:

Vector3 direction = player.transform.position-transform.position;
direction .Normalize();
float rotation = Mathf.Atan2(direction .y, direction .x) * Mathf.Rad2Deg;
Instantiate(Ebullet, position, Quaternion.Euler(0f, 0f, rotation - 90));

关于c# - 玩家位置的敌人射击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55717264/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com