Unity 2D:GameObject设置为活动状态对父母和所有孩子均无效

时间:2019-11-16 18:44:16

标签: c# unity3d

我为2d游戏统一制作了两个脚本。一个将布尔值设置为另一个布尔值,这是另一个的代码:

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

public class GameManagerScript : MonoBehaviour
{
    public float weapons;
    public float money;
    public bool tutorial = true;
    public bool tutorialcoins = false;
    public bool tutorialsword = false;
    public bool tutorialenemies = false;
    // Start is called before the first frame update
    void Start()
    {
        if (tutorial)
        {

    if (!tutorialcoins)
        {
            GameObject.Find("Coins").SetActive(false);
        }
        }

}

// Update is called once per frame
void Update()
{
    if (tutorialcoins)
    {
        GameObject.Find("Coins").SetActive(true);
    }

 }

因此,我使用了该代码和名为Coins的对象,它有很多子代。当我将tutorialcoins设置为true时,子代或代币都不会激活,什么也不会发生!请您知道我做错的任何事情

1 个答案:

答案 0 :(得分:0)

尝试一下

 public Transform coin;
     void Start()
     {
         for (int j = 0; j < coin.childCount; j++)
         {
             coin.GetChild(j).gameObject.SetActive(false);
         }
     }

void Update()
{
    if (tutorialcoins)
    {
        for (int j = 0; j < coin.childCount; j++)
             {
                 coin.GetChild(j).gameObject.SetActive(false);
             }
    }

 }

添加此代码后。转到将该脚本附加到的对象。在脚本组件上,您将看到Coin。将您的Coins obj从层次结构拖动到此并运行。