2d Portal远程端口问题

时间:2016-08-07 14:26:47

标签: unity3d unityscript

enter image description here

请参阅附图。有3个街区,每个都有一个门户,门户是黑色的孩子,现在有红球,所以球将击中门户,球将从另外两个门户出来,我想要一个正确的球形位置它出来的门户网站。例如,当球击中门户时,球应该从同一击中点上的另一个门户出来。

感谢

1 个答案:

答案 0 :(得分:0)

你没有照顾旋转的门户网站,这就是它无法正常工作的原因。

假设每个门户transform.right指向门户,Vector.forward垂直于你的2D平面,球从portal1到portal2,你可以这样: 1.计算向量Vector3 v = ballhitPoint - portal1.transform.position
2.确定portal1和portal2之间的定向旋转:float r = (Mathf.Atan2(portal2.forward.y, portal2.forward.x) - Mathf.Atan2(portal1.forward.y, portal1.forward.x)) * 180 / Mathf.PI
3.将v旋转相同的量vNew = Quaternion.AngleAxis(r, Vector3.forward)
4.设置球位置redball.transform.position = portal2.transform.position + vNew

总结您想要实现的目标(如果我正确理解您的问题):您在门户网站上有一个生命值,并希望将该生命值点投射到目标门户网站。

我还没有测试过这段代码,而且我也不知道你在2D游戏中使用3D矢量的准确程度,所以你可能需要改变一些计算以适应你的轴。有关我使用过的函数的更多信息,我想参考unitys文档。