我有一个反向网格球体,法线指向内部,6个平面在这个球体外面制作立方体图,算法指向内部。
我想知道从(0,0,0)中的相机拍摄的光线投射的位置,也是这两个数字的中心,到球体。
我尝试使用凸网格对撞机,但球体有很多顶点,Unity不支持它。我的想法是检查与立方体的碰撞,然后与球体(使用普通球体对撞机)发生碰撞,其方向与相机相反。
第二次Raycast应该到达第一次碰撞并与球体发生碰撞,但它会报告“打印(”我什么也看不见!“);”
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();
}