好的,所以我有一个游戏,其中的物体漂浮在空中。我想通过沿着同一风向推动浮动物体来模拟风。
我一直在互联网上寻找,但我没有找到关于如何通过(方向)向量移动对象而不是将其移向空间中的点的信息。
Vector.lerp,translate等都使用了一个参考点,其中,我想使用一个长度(理想情况下为1)的方向向量,从对象的中心朝向它想要的方向。使用内置前向矢量可以实现这一点,但即使对象在自身旋转,我也希望这样做。
任何人都有想法或指示进入?
PS:所有对象的方向向量应该是平行的。到目前为止,我唯一的想法是通过风向量设置一个点,并根据每个对象进行调整。但这对于这样一个愚蠢的任务来说似乎有点复杂和麻烦。
谢谢!
答案 0 :(得分:0)
这只是将一个向量添加到对象的位置(如果你想要更真实的话,还是速度)
transform.position += wind * Time.deltaTime
或
rigidbody.velocity += wind * Time.deltaTime
第二个选项要求GameObject具有Rigidbody组件
答案 1 :(得分:0)
我认为Transform有一个名为Translate的成员,它将翻译作为方向处理:
ConnectivityManager conMan = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
if (conMan != null) {
//mobile
NetworkInfo.State mobile = conMan.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState();
//wifi
NetworkInfo.State wifi = conMan.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState();
if (mobile == NetworkInfo.State.CONNECTED || wifi == NetworkInfo.State.CONNECTED)
{
Toast.makeText(getApplicationContext(),"Connection available",Toast.LENGTH_LONG).show();
}
else
{
Toast.makeText(getApplicationContext(),"Connection not available",Toast.LENGTH_LONG).show();
}
} // end if
else
{ //do nothing
}
这会将对象2个单位移动到现在的位置。
编辑:这是http://docs.unity3d.com/ScriptReference/Transform.Translate.html