【发布时间】:2016-10-27 13:49:08
【问题描述】:
我正在为我的游戏制作食物系统。
我希望它使用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;
}
}
}
}
【问题讨论】:
-
您缺少
Physics.Raycastif 语句的左大括号。 -
别以为是这样的人,我会尝试
-
添加
Debug.Logs以检查您的光线投射是否有效,例如一个在光线投射之后(和标签检查之前),一个在标签检查中。 -
FoodAmount是否在检查器中更新?您现在不要更改text组件 (FoodUI.text),因此肯定无法更新。 -
@FatihTkale 如果您能够找到解决问题的好方法,请考虑发布您自己的问题答案。如果您还有其他与原始问题无关的问题...在网站上发布一个新问题,但前提是您完成了必要的研究并确定您自己无法解决。