好的,所以这是我的代码。这应该非常简单,但由于某些原因它并不想与我合作。 Raycast从鼠标发送光线,如果它遇到带有标签的对象,它会为变量分配一个数字。如果它没有命中对象,则将变量设置为-99。出于某种原因,我的意思是:
一个。我没有点击对象,它第一次输出-99但在此之后它会挂起以获得指定4。
B.我点击对象,它会正常工作。点击OFF对象后,它会挂在我之前点击过的对象的变量上。
em.Collections;
using System.Collections.Generic;
using UnityEngine;
public class GameFunctions : MonoBehaviour {
int Hitnum = -99;
void Start () {
}
void Update () {
if (Input.GetMouseButtonDown (0)) {
objectCheck ();
}
}
//end of UPDATE function
public void objectCheck () {
RaycastHit hit;
Ray ray = camera.ScreenPointToRay (Input.mousePosition);
if (Physics.Raycast (ray, out hit, 10000.0f)) {
if (hit.collider.tag == "Box") {
Hitnum = 1;
} else if (hit.collider.tag == "Sphere") {
Hitnum = 2;
} else if (hit.collider.tag == "Pyramid") {
Hitnum = 3;
} else if (hit.collider.tag == "Trapezoid") {
Hitnum = 4;
} else {
Hitnum = -99;
}
}
Debug.Log (Hitnum);
}
//end of check
}
提前致谢。这让我疯了,因为它应该很简单。
编辑:这次发布完整代码,是的全部。我应该提到没有其他带有标签的对象,它只是零空间。这应该是孩子们非常基本的形状标识符。
编辑:编辑:如果你没有击中对象,我希望它能推出-99。后来我可能会对这些数字做点什么,但现在我开始需要解决这个问题。
答案 0 :(得分:1)
重新启动统一,现在一切正常。谢谢。查看我的设置,看看有什么变化。我之前删除了背景标签上的背景。我猜团结决定如果没有点击光线投射,它会得到它最后命中的对象吗?