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