【问题标题】:Unity 2D Spinning Platform With Physics具有物理功能的 Unity 2D 旋转平台
【发布时间】:2015-10-24 23:24:34
【问题描述】:

在 Unity 中,我想创建一个像螺旋桨一样旋转的平台。当它撞到一个物体时,我希望那个物体朝着一个合乎逻辑的方向飞行。如果我只是每帧更新对象的旋转,对象往往会粘在平台上并以更高的速度通过它。我认为 Unity 的物理特性将是最好的解决方案 - 我怎样才能以恒定的速度旋转平台,以便它可以做我想做的事情?此外,如何在不加速或减速的情况下启动和停止旋转?我正在使用 C#。

【问题讨论】:

    标签: unity3d 3d rotation 2d physics


    【解决方案1】:

    如果您希望将 Unity 的物理特性融入您的平台行为,但又不想通过增加力/扭矩来改变其旋转速度,请考虑使用 Rigidbody.angularVelocity。有了这个,您还可以立即开始和停止旋转(在使用 RigidBody 时使用 FixedUpdate())。

    所以你的代码可能看起来像:

    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;
    }
    

    希望这会有所帮助!如果您有任何问题,请告诉我。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多