Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 根据鼠标y位置发射子弹?_C#_Unity3d - Fatal编程技术网

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的教程可以做这类事情。看一个肯定会很有帮助。而且,如果这是一个游戏,它有一个整体。你可以试着问你的问题<代码>统一是上面的标签。