【发布时间】:2020-08-18 09:52:44
【问题描述】:
假设我有一个
public struct Level
{
public Level(int _Id)
{
Id = _Id;
}
public int Id { get; }
public void NextLevel()
{
}
}
在引用的库中, 还有这个:
static void Main(string[] args)
{
Level Lvl1 = new Level(0);
Level Lvl2 = new Level(1);
Level Lvl3 = new Level(2);
//some code..
//some code..
//some finish code..
Level.NextLevel();
}
在引用 dll 库的项目中。
现在我希望库中的 NextLevel() 方法通过 Id 从一个级别更改为另一个级别,即使该变量在库中不存在,但在项目中存在。
假设玩家完成关卡 1,正在调用该方法。 该方法应通过 Id 获得级别 2,如果级别不存在,则应抛出自定义异常。
注意:我没有使用 unity 或任何其他 C# 游戏引擎。我正在制作自己的引擎。
【问题讨论】:
-
您可能需要
class Game和关卡集合。方法game.NextLevel()更有意义。 -
好吧,没关系,我在问题中输入的代码只是我“可能”想要的一个例子。但我不知道如何从引用库中访问变量。
-
“如何从引用库中访问变量” - 什么变量?
Id?由于它不是静态的,因此您需要Level实例,例如Lvl1.Id。Level类型属于引用库这一事实没有区别。 -
我想说的是,如果库代码通过id向项目询问变量X,项目将给他变量,然后项目可以将其分配为下一个X。
-
我不明白这个问题。没有
X,你能更具体一点吗?提议的Game类可以包含属性CurrentLevel,所有方法(位于库内)都可以访问该属性。如果它是公共财产,那么您也可以通过Main访问它。
标签: c# .net class variables dll