【发布时间】:2017-01-15 14:04:03
【问题描述】:
为什么这个代码在触摸后不打印任何东西?
void Update()
{
if (Input.touchCount > 0)
{
RaycastHit2D hit = Physics2D.Raycast(Camera.main.ScreenToWorldPoint(Input.GetTouch(0).position), Vector2.zero);
if (hit)
{
print(hit.transform.name);
}
}
}
【问题讨论】:
-
因为它想让你给我们更多的信息。例如。您尝试使用光线投射击中的对象是否具有某种 collider2d,它们是否可以设置为忽略光线投射?
-
你想击中什么类型的对象?在选择它时放上它的屏幕截图会很有帮助。另外,将
print("inside touch");放入if (Input.touchCount > 0)。你必须告诉我们代码中的失败之处。 -
你不应该寻找转换附加到的游戏对象的名称吗?所以像
hit.transform.gameObject.name? -
@Programmer 为什么这个 Camera.main.ScreenToWorldPoint(Input.touches[0].position) 返回的是相机位置而不是触摸位置?
-
您的最后一个问题/评论是错误的。请考虑在我的第一条评论中回答我的问题。也不要忽视其他 cmets,因为他们的 cmets 表示他们想帮助你。
标签: c# unity3d unity5 unity3d-2dtools