C# unity2D中的光线投射
我正在尝试创建一个脚本,当游戏对象检测到某个东西时,它将沿着光线投射移动,并且由于某种原因,3d中的某个东西正在发生并扰乱了光线投射的方向 ''' ''' 您可以忽略此部分堆栈溢出希望我添加更多详细信息,但我不知道还需要添加什么。主要错误是:期望作为参数的当前位置和目标位置不是一个方向 而不是C# unity2D中的光线投射,c#,unity3d,C#,Unity3d,我正在尝试创建一个脚本,当游戏对象检测到某个东西时,它将沿着光线投射移动,并且由于某种原因,3d中的某个东西正在发生并扰乱了光线投射的方向 ''' ''' 您可以忽略此部分堆栈溢出希望我添加更多详细信息,但我不知道还需要添加什么。主要错误是:期望作为参数的当前位置和目标位置不是一个方向 而不是 transform.position = Vector2.MoveTowards(transform.position, right, speed); 你宁愿使用 transform.position
transform.position = Vector2.MoveTowards(transform.position, right, speed);
你宁愿使用
transform.position = Vector2.MoveTowards(position, position + right, speed);
现在这仍然是错误的!如果你的命中率更高怎么办?前面提到的解决方案可能会超出范围。因此,您宁愿使用实际的最大目标位置,只需使用
transform.position = Vector2.MoveTowards(position, hitInfoR.point, speed);
不过,还有一些进一步的说明
- 如果你的多个光线投射命中了什么呢 → 您宁愿一次进行一次光线投射检查,并在第一次击中后停止
- 顺便说一句,你知道已经存在
,Vector2.up
,Vector2.down
和Vector2.right
Vector2.left
- 一般来说,
,并通过值存储Vector2是一个结构
这是相当多余的。。照办Vector2 position = new Vector2(transform.position.x, transform.position.y);
Vector2 position = transform.position;
Vector2 position = transform.position;