C# class 看不到另一个 class 的静态方法
C# class can't see static method of another class
我 运行 在我的一个 Unity 项目中遇到了一些可访问性问题。我创建了一个不继承自 MonoBehaviour
的 class。它有一个方法 public static void LoadScene(string sceneName)
.
当我尝试从另一个 class 调用此方法时,出现语法错误。这是我使用静态方法的第一个脚本:
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
识别为 class,但在点 (GameLoader.
),它根本找不到任何 属性 或函数。当我尝试在点后面写任何东西时出现语法错误。
我做了一些实验,似乎我不会跨另一个名为 GameLoader
的 class,并且还添加了必要的命名空间。
我在这里很迷路,希望有人能帮助我。
原码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();
}
}
}
}
错误信息:
Severity Code Description Project File Line Suppression State
Error IDE1007 The name 'GameLoader.LoadScene' does not exist in the current context.
并且 LoadScene
本身也有同样的错误。
编辑:
编辑后,问题所在就很明显了。
尝试将您的调用 GameLoader.LoadScene("bla");
移动到一个方法中。
如果您希望在实例化您的处理程序时调用此方法,您可以将其移至构造函数。
示例:
public UiHandlerMenu() {
GameLoader.LoadScene("bla");
}
我 运行 在我的一个 Unity 项目中遇到了一些可访问性问题。我创建了一个不继承自 MonoBehaviour
的 class。它有一个方法 public static void LoadScene(string sceneName)
.
当我尝试从另一个 class 调用此方法时,出现语法错误。这是我使用静态方法的第一个脚本:
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
识别为 class,但在点 (GameLoader.
),它根本找不到任何 属性 或函数。当我尝试在点后面写任何东西时出现语法错误。
我做了一些实验,似乎我不会跨另一个名为 GameLoader
的 class,并且还添加了必要的命名空间。
我在这里很迷路,希望有人能帮助我。
原码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();
}
}
}
}
错误信息:
Severity Code Description Project File Line Suppression State Error IDE1007 The name 'GameLoader.LoadScene' does not exist in the current context.
并且 LoadScene
本身也有同样的错误。
编辑:
编辑后,问题所在就很明显了。
尝试将您的调用 GameLoader.LoadScene("bla");
移动到一个方法中。
如果您希望在实例化您的处理程序时调用此方法,您可以将其移至构造函数。
示例:
public UiHandlerMenu() {
GameLoader.LoadScene("bla");
}