0

我有一个小城市网格和一个公寓 3d 模型。我将网格添加到我的场景中,并将 3d 模型放置在网格上。

我尝试仅在 3d 模型上处理鼠标点击。我使用下面的代码。但我点击屏幕上的任意位置,它设置为 sound = true

我向 3d 模型游戏对象添加了一个网格对撞机。

if (Input.GetMouseButtonDown (0)) {
            Plane p = new Plane (Camera.main.transform.forward , transform.position);
            Ray r = Camera.main.ScreenPointToRay (Input.mousePosition);
            float d;
            if(p.Raycast (r, out d)) {
                sound = true;
}   

我该如何解决?

4

1 回答 1

0

您可以检查游戏对象的标签/名称。你需要这样使用:

void Update() 
{
    if (Input.GetMouseButtonDown (0)) {

        Plane p = new Plane (Camera.main.transform.forward , transform.position);
        Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
        RaycastHit hit;

        if (Physics.Raycast(ray, out hit, 100)) 
        {
            //Choose one of them below!!!

            /// Name Comparison
            if(hit.collider.gameObject.name.equals("NameOfTheObject")){
               ///Do Logic
            }

            //Tag Comparison
            if(hit.collider.gameObject.CompareTag("TagOfTheObject")){
                ///Do Logic
            }
        }
    }
}
于 2016-03-25T09:46:11.250 回答