我有地形和球的场景。球在移动。我想检测它上面的切片。我怎样才能做到这一点? 我有这样的сode:
if (Input.touchCount > 0)
{
if (Input.GetTouch(0).phase == TouchPhase.Began)
{
Vector3 pos = Input.GetTouch(0).position;
pos.y = 0.2f;
Ray ray = Camera.main.ScreenPointToRay(pos);
RaycastHit hit = new RaycastHit();
if (Physics.Raycast(ray, out hit))
{
timeToShoot = true;
}
Debug.Log(hit.transform.name);
}
if (Input.GetTouch(0).phase == TouchPhase.Moved)
{
//drag
if (timeToShoot)
{
update = false;
timeToShoot = false;
shoot(Input.GetTouch(0).deltaPosition * 5);
}
}
}
在日志中我只能看到“地形”。 谢谢
答案 0 :(得分:1)
您可以使用图层蒙版过滤光线投射。如果在MonoBehavior中将变量公开为公共成员变量,则可以在检查器中指定哪些图层是图层蒙版的一部分。
public LayerMask layerMask;
然后,将其传递给你的光线投射
if (Physics.Raycast(ray, out hit, Mathf.Infinity, layerMask))
{
timeToShoot = true;
}
如果您不熟悉,可能需要阅读layers。