C#unity使用光线投射命中信息更改变量

时间:2016-05-01 11:56:15

标签: c# unity3d camera raycasting

这款游戏中的相机有一个目标,可以通过点击其他模型进行更改,然后是相机焦点,下面的脚本是我到目前为止所得到的,但每次我点击游戏中的对象时目标只说没有,而不是任何模型。

Ray toMouse = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hitInfo;
bool didHit = Physics.Raycast(toMouse, out hitInfo);

if (didHit)
{
    if (hitInfo.collider.tag == "Cell" && Input.GetMouseButtonDown(0))
    {
        Debug.Log("Cell hit");

        target = hitInfo.transform.Find(gameObject.name);       
    }
}

1 个答案:

答案 0 :(得分:1)

如果此脚本在相机上,则应执行以下操作:

GameObject target;
// or
Transform target;

void Update()
{
    if(Input.GetMouseButtonDown(0))
    {
        RaycastHit hit;
        Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
        if(Physics.Raycast(ray, out hit))
        {
            target = hit.transform.gameObject;
            // or
            target = hit.transform;
        }
    }   
}