进行射线投射以在统一2D游戏中找到对对象的鼠标单击

进行射线投射以在统一2D游戏中找到对对象的鼠标单击

本文介绍了进行射线投射以在统一2D游戏中找到对对象的鼠标单击的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试删除单击鼠标的对象.我正在使用新的Unity3D 4.3制作2D游戏.这是我正在使用的代码

I am trying to delete the object on which the mouse is clicked. I am making a 2D game using the new Unity3D 4.3. Here is the code I'm using

void Update () {

    if (Input.GetMouseButtonDown(0))
    {
        Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
        RaycastHit hit;
        if(Physics.Raycast(ray,out hit))
        {
            isHit = false;
            Destroy(GameObject.Find(hit.collider.gameObject.name));

        }
    }

}

该控件未进入内部if循环. (未将isHit设置为false).

The control is not entering the inner if loop. (isHit is not being set as false).

推荐答案

您不能在新的2D材质上使用3D物理功能.请使用 2D函数.示例:

You cannot use 3D physics functions on the new 2D stuff. Use the 2D functions instead. Example:

RaycastHit2D hit = Physics2D.Raycast(Camera.main.ScreenToWorldPoint(Input.mousePosition), Vector2.zero);

if(hit.collider != null)
{
    Debug.Log ("Target Position: " + hit.collider.gameObject.transform.position);
}

这篇关于进行射线投射以在统一2D游戏中找到对对象的鼠标单击的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-15 02:24