raycasting

    0热度

    2回答

    我想设置透明的玩家和相机之间的所有树木,我的游戏是自上而下,并且相机和玩家之间的矢量改变。那么,如何在两点之间Raycast并获取所有被ray射击的对象呢?我知道在两点之间有一个用于raycast的Linecast,但是它只返回第一个对象,而另一方面RaycastAll只能在特定方向上投射......任何想法如何在播放器和相机之间投射光线并获取所有被击中的对象?

    1热度

    1回答

    我正在3D空间中工作。我有一条射线,或者更具体地说,是3D空间中光线的起始和透射向量。我也有一个三角形,我知道这个三角形是被射线击中的。用三角形表示我有三个三维点。我也可以很容易地计算出这个三角形的法线向量。 现在我需要得到一个新的射线,这将是特定命中后的反射。 我也不知道三角形的接触点在哪里,但显然必须考虑到获得反射光线。那一点将成为新射线的开始。 这在2D中很容易做,但我无法弄清楚如何在3D中

    0热度

    1回答

    我有一个问题,当我写这个播放声音时,播放器距离4单位米的距离并按下“e”,但它给了我一个错误,hit无法转换为float 。我现在应该怎么做? public AudioSource sound; public int rayLength = 4; public GameObject doorText; RaycastHit hit; void Update() { var

    0热度

    3回答

    我来检查,如果一个游戏对象可以看到其他的游戏对象,而无需任何阻断其视图功能: public bool CheckVision(GameObject target) { RaycastHit2D ray = (Physics2D.Raycast(transform.position, target.transform.position - transform.position, m_Vi

    0热度

    1回答

    我有一个摄像头,它将userInterface(画布)对象显示在我的相机前面。 我只更新我的用户界面位置,如果相机光线不击中我的userInterface对象对撞机。像这样 public class UIPlacerAtCamFront : MonoBehaviour { public GameObject userInterface; public float placem

    0热度

    1回答

    我有它被设计为可点击collider2d一个游戏物体,并且我也有一个UI按钮将跟随而玩家移动相机,事情是,他们有时可能会重叠,并且当它们重叠时,当用户点击重叠区域时,我确定用户想要点击对象(这是通过raycast2d命中的),所以我应该防止按钮被点击。 可点击游戏物体的光线投射植入该脚本如下: private void checkTouch() { if (Input.tou

    0热度

    1回答

    其实我使用下面的代码来检测鼠标和某个对象之间的碰撞。 我想要代码捕获多个GameObjects(不仅是第一个,但上面的那些)并将其存储在列表中。我看了,但我有点困惑。 void Update() { RaycastHit hit; Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); if(Ph

    1热度

    2回答

    我有一个脚本,我使用多个raycasts从一个对象来检查是否有一个特定的图层蒙版被命中,我在他们之间使用for循环,它工作正常。 但问题是:如果光线的一个被击中boolean将true,如果“所有”的光线没有命中,boolean将false。但问题是我不知道如何检查。 for (int i = 0; i < rays; i++) { Vector2 raysStart = raysSt

    0热度

    1回答

    我有使用SDF函数关于GLSL球体跟踪/光线跟踪一些问题: 我的主程序(C++,使用福尔康)生成画面四并将该顶点着色器与每顶点inPosition。顶点着色器可以访问窗口分辨率,投影矩阵和视图矩阵。投影矩阵由glm::perspective(45.0, 1920/1080, 0.1, 100.0);生成。 在顶点着色器中,我尝试通过图像平面计算从原点vec4(0.0, 0.0, 0.0, 1.0)

    0热度

    1回答

    在我的游戏中,玩家使用虚拟模拟来瞄准特定对象,当他释放模拟角色时应该朝该对象移动。 我要存储对象的位置(更像,玩家应移动基于对象的位置方向)的一个变量,但只有当它是光线与相撞的最后一件事: Vector3 targetPos; RaycastHit hit; if (Physics.Raycast (pos, dir, out hit, 10, targetLayer)) { V