【发布时间】:2018-06-16 09:54:33
【问题描述】:
我正在尝试计算击打台球的角度并预测球的去向.. 我认为目标球应该在正常方向上移动..但它会移动 完全不同的方向
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;
结果:
如何找到准确的移动方向,谢谢
编辑:
我已经尝试过双半径投射,这仅在中途有效.. 仅当光线在内圈内时
【问题讨论】:
-
将速度设置为 hit.normal * force?
-
我们可以为目标球 OnCollisionEnter2D 设置这个,手动改变目标球速度..但这有点作弊..)我认为(希望)有移动直观的方式来实现这一点..谢谢@弗雷德里克·维德伯格
-
它取决于许多属性,包括 i) 球的质量(比率),ii) 球之间的阻力系数(1 = 弹性碰撞),iii) 球之间的摩擦力球(导致角动量转移)和iv)是否考虑旋转(作为iii的直接结果))
-
你是否将球上的物理材料设置为零摩擦和零弹力?
-
@LincolnC 是的,我也尝试将所有内容设置为零,保持默认设置等等..
标签: unity3d physics game-physics raycasting billiards