C#Unity Raycast

时间:2016-10-14 08:57:03

标签: c# unity5 raycasting

我有一个反向网格球体,法线指向内部,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();
}

0 个答案:

没有答案