unity3d .setActive(true)在第二次调用Unity后不工作

ldxq2e6h  于 2023-02-19  发布在  其他
关注(0)|答案(1)|浏览(293)

我是一个相当新的统一,我真的不知道如何直接问这个问题。基本上,我只是在玩Unitiy一般,我试图创建脚本,最初有它设置为活动,然后消失3秒后,然后回来作为活动再次,有人能解释任何具体的东西,与这个问题有关吗?这是我的代码:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ScriptTwo : MonoBehaviour
{

    public GameObject theBall;

    // Start is called before the first frame update
    void Start()
    {
        theBall.SetActive(true);
        StartCoroutine(BallCode());
    }

    IEnumerator BallCode() {
        yield return new WaitForSeconds(3);
        theBall.SetActive(false);
        Debug.Log("Set Active: False");
        Debug.Log("Test Before");
        yield return new WaitForSeconds(3);
        theBall.SetActive(true);
    }
    
}
mrfwxfqh

mrfwxfqh1#

你的代码应该做的是:-activating -waiting 3 seconds -disabled-waiting 3 seconds -activating如果它正在执行除此之外的任何操作,则是您编写的另一个代码有问题。如果您希望它继续无限次,而不是:

IEnumerator BallCode()
{
    while (true)
    {
        yield return new WaitForSeconds(3);
        theBall.SetActive(!theBall.activeInHierarchy);
        Debug.Log("Set Active: " + theBall.activeInHierarchy);
    }
}

相关问题