【发布时间】:2019-01-18 20:23:36
【问题描述】:
我实际上是在尝试在 Unity 2018 上制作 2D 动作游戏。 我想在用枪射击时进行子弹扩散,我需要指定枪在鼠标光标上射击。我在网上搜索了所有内容,几乎没有找到解决方案。所以我用教程编写的代码不能像我想要的那样工作, 要么子弹散开并朝向光标,但在错误的轴上旋转,并且出现错误。
void Shoot()
{
Vector3 fireDirection = spawnPoint.right;
Quaternion fireRotation = Quaternion.LookRotation(fireDirection);
Quaternion randomRotation = Random.rotation;
fireRotation = Quaternion.RotateTowards(fireRotation, randomRotation, Random.Range(0.0f, maxBulletSpreadAngle));
nextFire = Time.time + 1f / fireRate;
Instantiate(Balle, spawnPoint.position, fireRotation);
ballesRestantes--;
}
或者离开传播,在好轴上旋转,但不要跟随光标,直接向前射击。
void Shoot()
{
Vector3 fireDirection = spawnPoint.forward;
Quaternion fireRotation = Quaternion.LookRotation(fireDirection);
Quaternion randomRotation = Random.rotation;
fireRotation = Quaternion.RotateTowards(fireRotation, randomRotation, Random.Range(0.0f, maxBulletSpreadAngle));
nextFire = Time.time + 1f / fireRate;
Instantiate(Balle, spawnPoint.position, fireRotation);
ballesRestantes--;
}
我希望有人可以帮助我,抱歉英语不好,我是法国人。
【问题讨论】:
-
他们跟随光标的代码在哪里?
-
对不起,我解释得不好,子弹不跟随光标,武器射击是我的光标。
-
我也没有看到代码......看起来你的子弹要么向前射击,要么向右射击,你提供的内容中没有任何内容表明你正在向鼠标射击位置。
-
类似
Vector3 fireDirection = (Camera.ScreenToWorldPoint(Input.mousePosition) - spawnPoint.position).normalized;... -
你发布了两段代码,它们是相同的。
标签: c# visual-studio unity3d