【问题标题】:Awaken Rigidbody in Unity在 Unity 中唤醒刚体
【发布时间】:2019-04-06 23:12:54
【问题描述】:

好的 - 我是 Unity 的超级新手(只是为了好玩而学习),并且希望在玩家在 Z 轴上 15 以内时让敌人的立方体掉落。我可以让敌人立方体的刚体功能“休眠”但是当我在 15 或更少时,它不会醒来并开始下降。你能帮我写代码吗? Debug.Log 在我运行它时告诉我我想要什么,但刚体没有在敌人立方体上重新激活。对不起,如果这是一个超级简单的请求...只是想学习!

     using UnityEngine;

public class activatefall : MonoBehaviour
{
    public Transform Player;
    public Rigidbody rbgo;
    private float coolnumber;
    private float badtogood;

    // Update is called once per frame
    void FixedUpdate()
    {
        coolnumber = transform.position.z;
        badtogood = coolnumber - Player.position.z;
        Debug.Log(badtogood);

        if (badtogood < 15f)
        {
            rbgo.WakeUp();
            Debug.Log("Falling!");
        }
        else
        {
            rbgo.Sleep();
            Debug.Log("Frozen");
        }

    }
}

【问题讨论】:

  • 您是否尝试过只为它切换重力而不是这样做?

标签: c# unity3d


【解决方案1】:

如果你想让刚体停止然后摔倒,你可以使用rbgo.useGravity = false/true

还有其他方法,您可以使用RigidbodyConstraints,使刚体在 Y 轴上冻结,然后移除此约束。

如果您想在刚体移动后完全停止它,您可以执行rbgo.constraints = RigidbodyConstraints.FreezeAllrbgo.velocity = Vector3.zero(然后,如果您想禁用重力,您可以执行rbgo.useGravity = false

如果您不想处理刚体本身,也可以使用transform.position 和/或transform.Translate

【讨论】:

    猜你喜欢
    • 2019-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多