我有一个反向网格球体,法线指向内部,6个平面在这个球体外面制作立方体图,算法指向内部 .
我想知道从(0,0,0)中的摄像机射出的光线投射的位置,也是这两个数字的中心,到球体 .
我尝试使用凸网格对撞机,但球体有很多顶点,Unity不支持它 . 我的想法是检查与立方体的碰撞,然后与球体发生碰撞(使用普通的球体对撞机)与相机反转的方向 .
第二次Raycast应该到达第一次碰撞并与球体碰撞,但它报告说"print("我什么都没看! ");"
public void launchBttn()
{
GameObject.FindGameObjectWithTag("coordText").GetComponent<Text>().text = transform.forward.ToString();
Ray rayBox = GetComponent<Camera>().ViewportPointToRay(transform.forward);
RaycastHit hit;
if (Physics.Raycast(rayBox, out hit))
print("I'm looking at " + hit.transform.name);
else
print("I'm looking at nothing!");
GameObject.FindGameObjectWithTag("collText").GetComponent<Text>().text = hit.transform.position.ToString();
Vector3 fwd = -transform.TransformDirection(Vector3.forward);
RaycastHit hitSphere;
if (Physics.Raycast(hit.transform.position, fwd, out hitSphere))
{
print("I'm looking at " + hitSphere.transform.name);
}
else
{
print("I'm looking at nothing!");
}
GameObject.FindGameObjectWithTag("sphereCollText").GetComponent<Text>().text = hitSphere.transform.position.ToString();
}