c# - C#类看不到另一个类的静态方法
问题描述
我的一个 Unity 项目遇到了一些可访问性问题。我创建了一个不继承自MonoBehaviour
. 它有一个方法public static void LoadScene(string sceneName)
。
当我尝试从另一个类调用此方法时,出现语法错误。这是我第一个使用静态方法的脚本:
public class GameLoader
{
public static void LoadScene(string sceneName)
{
SceneManager.LoadSceneAsync(sceneName);
}
}
这是我的另一个脚本:
public class GameHandler : MonoBehaviour
{
private void Start()
{
GameLoader.LoadScene("MyScene"); //Syntax error
}
}
通常,我会对可能出现的问题有所了解,但在这种情况下,GameHandler
识别GameLoader
为类,但在点 ( GameLoader.
) 之后,它根本找不到任何属性或函数。当我尝试在点之后写任何东西时,我得到一个语法错误。
我做了一些实验,似乎我不会使用名称跨越另一个类,GameLoader
并且还添加了必要的命名空间。
我在这里很迷茫,我希望有人能帮助我。
原始代码GameLoader
:
using UnityEngine.SceneManagement;
using UnityEngine;
namespace MyGame
{
namespace System
{
public class GameLoader
{
public static void LoadScene()
{
}
}
}
}
原文UIHandler
:
using UnityEngine;
using System;
namespace MyGame
{
namespace System
{
namespace UI
{
public class UIHandlerMenu : MonoBehaviour
{
GameLoader.LoadScene();
}
}
}
}
错误信息:
严重性代码 描述 项目文件行抑制状态错误 IDE1007 当前上下文中不存在名称“GameLoader.LoadScene”。
而同样的错误只是LoadScene
它本身。
解决方案
编辑:
编辑后,现在很明显问题出在哪里。尝试将您的呼叫GameLoader.LoadScene("bla");
转移到一个方法中。如果您希望在实例化处理程序时调用此方法,您可以将其移至构造函数。例子:
public UiHandlerMenu() {
GameLoader.LoadScene("bla");
}
推荐阅读
- sql - BigQuery - 创建视图时如何使用嵌套列更改架构的顺序?
- flutter - 为什么我的 AppBar 标题会更改缩进?
- php - php 返回 '?' 尽管它们已正确保存在 mysql 中,但仍以正方形而不是特殊字符
- php - Doctrine 固定装置加载,有问题设置引用(外键)违反 -not-null 约束
- python - 如何在熊猫数据框中添加具有重复值的列?
- php - 使用 PhpSpreadsheet 在单元格中插入 HTML 代码
- python - “utf-8-sig”是否适合解码 UTF-8 和 UTF-8 BOM?
- r - 用列表和数据框聚合,函数如何知道聚合级别?
- tomcat8 - AWS ALB 很多 504 响应代码
- javascript - 设置新状态不会使用 React Hooks 重新渲染组件