C# 根据鼠标y位置发射子弹?
非常感谢您的帮助 我现在有一个角色正在拍摄。我在运行时实例化一个项目符号,并将其位置/旋转设置为与世界上的“生成点”相同。我该如何让子弹“击中”鼠标指向的地方,而不是在射击时直接向前移动C# 根据鼠标y位置发射子弹?,c#,unity3d,C#,Unity3d,非常感谢您的帮助 我现在有一个角色正在拍摄。我在运行时实例化一个项目符号,并将其位置/旋转设置为与世界上的“生成点”相同。我该如何让子弹“击中”鼠标指向的地方,而不是在射击时直接向前移动 //Bullet instaniate code bulletSpawned = Instantiate(bullet.transform, bulletSpawnPoint.transform.position, bulletSpawnPoint.transform.rotation); bulletS
//Bullet instaniate code
bulletSpawned = Instantiate(bullet.transform,
bulletSpawnPoint.transform.position,
bulletSpawnPoint.transform.rotation);
bulletSpawned.rotation = bulletSpawnPoint.transform.rotation;
//Bullet move code
transform.Translate(Vector3.forward * Time.deltaTime * bulletSpeed); maxDistance += 1 * Time.deltaTime;
if (maxDistance >= bulletFlyTime)
{
Destroy(this.gameObject);
}
谢谢-你的评论让我陷入了困境,找到了一个适合我的解决方案。下面是我使用的代码
RaycastHit hit;
Ray ray2 = Camera.main.ScreenPointToRay(Input.mousePosition);
if (Physics.Raycast(ray2, out hit))
{
Debug.Log("The ray hit at: " + hit.point);
bulletSpawnPoint.transform.LookAt(hit.point);
}
我不能完全回答这个问题,但我可以提供一些提示。涉及多个任务。1) 检测鼠标点击。2) 确定点击在游戏屏幕空间中的位置。3) 计算从项目符号位置到鼠标单击的矢量4)更新项目符号的矢量。Unity3d提供了执行这些操作的方法。但我不认识他们。然而,我知道有一些Unity3d的教程可以做这类事情。看一个肯定会很有帮助。而且,如果这是一个游戏,它有一个整体。你可以试着问你的问题<代码>统一是上面的标签。