命名空间不能直接包含 2D 无限运行器中的字段或方法等成员 [重复]

Posted

技术标签:

【中文标题】命名空间不能直接包含 2D 无限运行器中的字段或方法等成员 [重复]【英文标题】:A namespace cannot directly contain members such as fields or methods in a 2D endles-s-runner [duplicate] 【发布时间】:2021-02-10 10:47:06 【问题描述】:

您好,我制作了一个 2D 无尽的跑步者,现在我为 obstacelspawner 编写脚本,但错误仍然存​​在。 这是生成器的代码

IEnumerator SpawnRandomObstacle()   

    yield return new WaitForSeconds(Random.Range(1.5f, 4.5f));
    int index = Random.Range(0, obstaclesToSpawn.Count);
    while (true)
    
        if (!obstacleToSpawn[index].activeInHierarchy)
        
            obstaclesToSpawn[index].SetActive(true);
            break;
        
        else
        
            index = Random.Range(0, obstaclesToSpawn.Count);
        
    

    StartCoroutine (SpawnRandomObstacle ());
      

【问题讨论】:

有什么错误。调试器控制台窗口没有错误输出,无法推测。 【参考方案1】:

你应该把你的方法/协程放在一个单一行为类中:

public class TrainingManagerEditorFreeRouteManager : MonoBehaviour 

    IEnumerator SpawnRandomObstacle()   
    
        yield return new WaitForSeconds(Random.Range(1.5f, 4.5f));
        int index = Random.Range(0, obstaclesToSpawn.Count);
        while (true)
        
            if (!obstacleToSpawn[index].activeInHierarchy)
            
                obstaclesToSpawn[index].SetActive(true);
                break;
            
            else
            
                index = Random.Range(0, obstaclesToSpawn.Count);
            
        

        StartCoroutine (SpawnRandomObstacle ());
          

为了更好地理解,您可以阅读 namespaces 是什么。它们用作组织代码的范围。如果你不放,它是全局命名空间,你不能直接放方法/corroutenes。

【讨论】:

以上是关于命名空间不能直接包含 2D 无限运行器中的字段或方法等成员 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

命名空间不能直接包含字段或方法等成员(DayNight)

命名空间不能直接包含字段或方法等成员。

错误:命名空间不能直接包含字段或方法等成员[重复]

我正在尝试统一编写枪支脚本,但它说命名空间不能直接包含字段或方法等成员[重复]

Assets\Footsteps.cs(5,20):错误 CS0116:命名空间不能直接包含字段或方法等成员 [重复]

错误“命名空间不直接包含字段或方法等成员”