在Unity中,我想创建一个像螺旋桨一样旋转的平台。当它击中一个物体时,我希望该物体沿着合理的方向飞行。如果我只是每帧更新对象的旋转,则对象往往会粘在平台上并以更高的速度通过它。我认为Unity的物理将是最好的解决方案 - 如何以恒定的速度旋转平台,以便它可以做我想要的?此外,如何在没有加速或减速的情况下开始和停止旋转?我正在使用C#。
答案 0 :(得分:0)
如果您希望将Unity的物理特性纳入您的平台行为,但又不想处理增加力/扭矩以改变其转速,请考虑使用Rigidbody.angularVelocity
。这样,您也可以立即开始和停止轮换(当您使用FixedUpdate()
时使用RigidBody
。)
所以你的代码可能如下:
Vector3 activeVelocity = new Vector3(0, 10, 0);
bool isStopped = false;
RigidBody rBody;
void Start() {
rBody = GetComponent<Rigidbody>();
}
void FixedUpdate() {
if (!isStopped){
rBody.angularVelocity = activeVelocity;
}
else{
rBody.angularVelocity = Vector3.zero;
}
}
public void ActivateRotation() {
isStopped = false;
}
public void FreezeRotation() {
isStopped = true;
}
希望这有帮助!如果您有任何问题,请告诉我。