我需要知道是否有确定的方法来做到这一点,因为定义屏幕边界的内容取决于设备等。我有这些刚体不是运动学的,不受重力和轻质量的影响。当我实例化它们时,它们都是空的,球体与它们重叠以产生“爆炸”效果。
这很有效,但是在球体将刚体推开并发生爆炸之后,我需要身体一直保持移动直到用户视图/屏幕外。对于他们中的大多数人来说都会发生这种情况,但他们是一些散步者,有些人需要很长时间才能在屏幕中央停留。
我通常会使用一种力量,但我不知道每个刚体(有很多)它们需要根据它们的位置移动。
如何使用一种能够将所有这些装配体从屏幕上移开的力?爆炸应该是四面八方的。是否有某个Vector会这样做?
答案 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