【发布时间】:2021-10-12 02:33:36
【问题描述】:
我曾经使用 raycast 来破坏游戏中的东西,除非我移动得很快,否则它不起作用我将这个脚本统一附加到我的主摄像机上,谁能告诉我我做错了什么,因为我希望它发生无论你是否静止不动。
void Update()
{
if (Input.GetMouseButtonDown(0))
{
Vector2 mousePos = new Vector2(Camera.main.ScreenToWorldPoint(Input.mousePosition).x, Camera.main.ScreenToWorldPoint(Input.mousePosition).y);
RaycastHit2D hit = Physics2D.Raycast(mousePos, Vector2.zero, 100f);
if (hit.collider.tag == "Ground")
{
Debug.Log("You clicked a block and tried to break it!");
Destroy(hit.collider.gameObject);
}
}
}
【问题讨论】:
-
您没有遇到错误吗?你假设命中对象总是被填充,你应该首先检查是否不为空。
标签: c# unity3d raycasting