我搜索了整个互联网,但找不到任何有用的东西。我想在光线撞击物体的位置“做”一个触摸输入,并且只有当它碰到某个物体时才会这样做。我希望你能理解我的意思,而且我知道用光线投影做这件事并不常见,但我需要这样才能获得htc vive。提前致谢。或者更容易说,我如何从我的脚本触摸屏幕,意味着没有真正触摸屏幕?
您可以在代码中使用camera.ScreenToWorldPoint(新的Vector3(您要检查点击的位置))。
//you can change the start position in your code.
var startPos =
camera.ScreenToWorldPoint(new Vector3(2,2, 10));
那么您可以使用此功能检测点击而无需实际点击。
public void CalculateEndPositions(Vector3 start)
{
//forward
var rayForward = new Ray(start, Vector3.up);
Debug.DrawRay(start,Vector3.up, Color.green);
RaycastHit rayForwardInfo;
if (Physics.Raycast(rayForward, out rayForwardInfo))
{
Debug.Log("Collider Name = " + rayForwardInfo.collider.name);
}
}
我希望这段代码对你有用。