如何使StartCoroutine统一工作?

问题描述 投票:0回答:1

我是C#的新手,我试图让玩家站在平台上时摔倒。我使用了StartCoroutine,所以平台在五秒钟后掉了下来,但是由于某些原因,我的couroutine无法正常工作。

这是代码:

public GameObject player;




   private Rigidbody rb;

    void Start()
    {
       rb = GetComponent<Rigidbody>();

       rb.useGravity = false;

        //rb.isKinematic = false;
    }

    // Update is called once per frame
    void Update()
    {

    }


    private void OnTriggerEnter(Collider other)
    {
        if (other.gameObject.tag == "player")

        {

            StartCoroutine(ObjectFall());

        }
    }

    IEnumerator ObjectFall()
    {

        yield return new WaitForSeconds(5f);
        Debug.Log("Its working");


        this.rb.useGravity = true;

        //this.rb.isKinematic = true;
    }



}
c# visual-studio unity3d game-engine
1个回答
0
投票

如果您没有该函数的参数,则无需使用IEnumerable。您可以使用Invoke(“ ObjectFall”,5)并将IEnumerable变为void,而不会产生收益。它可能不是问题的根源,但请尝试一下。

© www.soinside.com 2019 - 2024. All rights reserved.