团结 - 如何迫使刚体脱离可见屏幕?

时间:2017-01-11 00:07:25

标签: c# unity3d physics

我需要知道是否有确定的方法来做到这一点,因为定义屏幕边界的内容取决于设备等。我有这些刚体不是运动学的,不受重力和轻质量的影响。当我实例化它们时,它们都是空的,球体与它们重叠以产生“爆炸”效果。

这很有效,但是在球体将刚体推开并发生爆炸之后,我需要身体一直保持移动直到用户视图/屏幕外。对于他们中的大多数人来说都会发生这种情况,但他们是一些散步者,有些人需要很长时间才能在屏幕中央停留。

我通常会使用一种力量,但我不知道每个刚体(有很多)它们需要根据它们的位置移动。

如何使用一种能够将所有这些装配体从屏幕上移开的力?爆炸应该是四面八方的。是否有某个Vector会这样做?

1 个答案:

答案 0 :(得分:0)

将对象的位置投影到相机的面向矢量上。然后从投影点制作一个矢量,返回到对象。

所以,像..

    var t = Vector3.Dot(Camera.main.transform.forward, obj.transform.position); //distance along view vector
    var p = Camera.main.transform.position + Camera.main.transform.forward * t; // position along view direction
    var d = obj.transform.position - p; //vector from center to object