我试图计算撞到球池的角度并预测球将进入的位置。 我认为目标球应该在正常方向上移动..但它会移动 完全不同的方向
RaycastHit2D hit = Physics2D.CircleCast(cue.position, _radius, dir, 100f, ~(ignoreLayer));
if (hit.collider != null)
{
Debug.DrawRay(hit.collider.transform.position, -1f * hit.normal,
Color.green, Time.fixedDeltaTime);
}
结果如下:
设定速度
rb.velocity = dir * force;
结果:
如何找到确切的移动方向,谢谢
修改
我尝试过双半径投射这只有一半工作..只有在内圈内的光线
答案 0 :(得分:0)
我想这只是物理引擎的局限性,物理引擎针对速度和在游戏中的使用进行了优化,并不是那么精确。
在一个简单的2D场景中自己尝试一下,我发现如果将摩擦力设置为0.01,将反弹度设置为1.0,则它会按我期望的方式工作。 (在Unity 2020.1中)
在我添加的小样本场景中,有一个球瞄准另一个球,因此最终角度应为45度。并且在将phyics-mat设置为具有0.01的摩擦力和1.0的反弹度的特性之后,所得的角度如预期的那样。
使用默认垫,我得到的行为与您描述的相同。
您忘记分配物理材料了吗?
您是否单步走到联络点并检查瞄准是否正确?