Unity 如何使 GameObject Speed 获得速度
Posted
技术标签:
【中文标题】Unity 如何使 GameObject Speed 获得速度【英文标题】:Unity How to make GameObject Speed gain velocity 【发布时间】:2015-01-25 20:00:31 【问题描述】:我在 Unity3D 中制作的 Unity3D 游戏中有一个鱼雷,并且我有一个从潜艇发射的鱼雷。我怎样才能让鱼雷像鱼雷一样开火(开始时非常慢),然后像电影中那样获得大量动力并加快速度。
以下是我如何执行此操作的代码,但效果不是很好。
float torpedoSpeed = (0.00001f) * 155.2f;
//move
gameObject.transform.position += new Vector3(velocity, 0, 0) * 15.5f;
【问题讨论】:
“效果不佳”对您意味着什么?它会变得更快吗? 使鱼雷依赖于时间变量,时间越长自然会增加。物体的速度也是如此。 哇,太棒了!这样就行了! gameObject.transform.position += new Vector3(velocity * timeLiving, 0, 0) * 5.5f; (这是修复) 您可能想使用 Time.deltaTime 而不是 timeliving 以使其更顺畅,对于您的下一个问题,请使用标签 unity3d。这不是你所说的统一(是的,有区别) 你可能想设置最大速度,因为鱼雷也不能通过一定的速度 【参考方案1】:现代鱼雷实际上可以加速,因为它们是被推进的。因此,诀窍是加速鱼雷。
加速需要一个方向的力。您必须首先确定鱼雷的质量,这将允许您对其施加力以使其加速。
所以加速度是施加的力除以物体的质量。
话虽如此,您可以在 Unity 中通过简单地使用以下方式为对象添加力:
gameObject.rigidbody.mass = 0.5;
gameObject.rigidbody.AddForce(100, 0, 0);
或者您可以添加一个恒定的力,使鱼雷始终保持加速。
gameObject.constantForce.relativeForce = Vector3(0, 0, 1);
【讨论】:
哇!非常感谢您的精彩回答!我试试看:)以上是关于Unity 如何使 GameObject Speed 获得速度的主要内容,如果未能解决你的问题,请参考以下文章
unity3d 中如何去除掉一个GameObject的MeshRenderer