【发布时间】:2014-07-05 06:17:32
【问题描述】:
我正在尝试设置一个通用类来处理 Unity3D 中的菜单。
以下代码我打算附加到一个空的游戏对象
import System.Collections.Generic;
#pragma strict
public enum MenuType { loadSceneOnMouseDown, enableGameObject, changeValue };
public class MenuClass extends System.Object
{
public var menuObject : GameObject;
public var menuType : MenuType;
}
public var menuItems = List.<MenuClass>();
这会在编辑器中产生以下结果:
我希望每个菜单类型都有自己的参数,因此在此示例中,一旦从枚举中选择 loadSceneOnMouseDown,我希望“loadSceneOnMouseDown”有另一个公共变量作为定义要加载的场景名称的字符串。而我希望“enableGameObject”类型将游戏对象作为公共变量。但是我不希望两者都出现在这两个领域。例如,我可以这样:
public class MenuClass extends System.Object
{
public var menuObject : GameObject;
public var menuType : MenuType;
public var sceneName : String
public var targetObject : GameObject
}
但这会使它出现在列表的每个元素之下。我考虑做一个进一步的子类来解决这个问题,但随后使用“public var menuItems = List.();”这一行那行不通。 (或者会吗?:D)
抱歉,如果我不清楚,请在这里尽我所能,但我觉得很难。可能有一个非常简单的解决方案,或者我正在以完全错误的方式进行瘦身。非常感谢您对此问题的任何帮助!
谢谢!
【问题讨论】:
标签: menu unity3d subclass unityscript