光线投射的问题

时间:2016-10-27 13:49:08

标签: c# unity3d unity5

我正在为我的游戏制作食物系统。

我希望它使用Raycast所以你可以拿起它,但我不能让它工作。当我点击带有标签的对象时,它不起作用。

public Text FoodUI;
public int FoodAmount;
public float Distance;
public GameObject Hands;

void Start()
{
    FoodUI.text = "Food: " + FoodAmount;
}

void FixedUpdate()
{
   Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
   RaycastHit hit;
    if (Input.GetKeyDown(KeyCode.E))
    {
        if (Physics.Raycast(ray, out hit))
        {
            if (hit.collider.tag.Equals("Food"))
            {
                FoodAmount += 40;
            }
        }
    }
}

1 个答案:

答案 0 :(得分:0)

我建议使用 LayerMasks 来实现您尝试做的事情:这样您就可以节省性能,同时确保不会对不需要的项目进行光线投射。 另请注意,您可以使用Debug.DrawRay()场景视图中显示光线投射。