我正在制作一个统一的3D游戏,玩家可以与图像和笔记交互(大约3-4段)。
我创建了画布,当玩家与地面上的音符交互时,菜单(画布)弹出。
我想知道,是否有任何方法将字符串变量与图像gameObjects存储在同一个数组中?另外,我要在画布上使用这些图像,所以我应该创建图像还是雪碧呢?
发布于 2019-05-27 15:34:23
Object来实现这一点。var list = new List<object>();
list.Add("Hello");
list.Add(5);
list.Add(MyImage);
foreach (object obj in list)
{
if (obj is string)
{
Debug.Log(obj.ToString());
}
}发布于 2019-05-27 17:51:47
您应该使用两个继承的公共基类型。如果您想要存储的两种东西都是MonoBehaviour类型的,那么使用它作为基本类型而不是object非常有意义。
public List<MonoBehaviour> List = new List<MonoBehaviour>();这至少为您提供了MonoBehaviour/Component实现的所有功能。这听起来像是后来在.transform.position中相互交织在一起。
如果您正在谈论诸如Image和Text之类的关于UI的内容,您甚至可以使用UI.MaskableGraphic作为常见类型。
public List<MaskableGraphic> List = new List<MaskableGraphic>();https://stackoverflow.com/questions/56328738
复制相似问题