首先,我是Unity3D的新手,特别是编程。在这一刻,我尝试不同的东西,研究不同的文件,以创建一个经济模拟游戏。 如果我不立即理解你的解决方案,请怜悯我;)
我需要从另一个脚本访问二维列表。 在Script1中,我使用Class来制作2D
public class OrderArray : MonoBehaviour
{
List<Order> orders;
public class Order
{
public string company{ get; set; }
public string date{ get; set; }
public int quantity{ get; set; }
public string deliverdate{ get; set; }
}
void Start()
{
orders= new List<Order>();
orders.Add(new Order
{ company = "Woodpecker Corp",
date = "21.11.2014",
quantity= 250,
deliverdate= "29.11.2014" });
// To access the Data in the list Im using:
Order order1= orders[0];;
Debug.Log(order1.company)
}
到目前为止一切顺利。 Script1对我来说很好。
现在如何从同一个GameObject上的不同脚本访问“order1.company”?
我知道如何在Script1和Class Script中访问变量,但我不能让它在“Order”类中考虑变量。
我的Script2到现在的结果
public class menu : MonoBehaviour
{
OrderArray orderarray;
Orderarray.Order orderclass;
void start()
{
orderarray= gameObject.GetComponent<OrderArray>();
}
现在我可以访问OrderArray类,但我不知道如何在OrderArray中访问类Order。
也许你可以给我一个解决方案或我可以为我的问题转移的示例代码。谢谢。
答案 0 :(得分:0)
您可以使用GetOrderByIndex方法扩展OrderArray:
public Order GetOrderByIndex(int index){
return orders[index];
}
您可以在开头使用它:
void start()
{
orderarray= gameObject.GetComponent<OrderArray>();
Order order1 = orderarray.GetOrderByIndex(0);
//do what you want with order1
}
答案 1 :(得分:0)
做像Mark Smit这样的事情可能是最好的。你应该考虑的一件事是制作&#34; Order&#34;一个结构而不是一个类,因为它不包含大量数据,而且你会想到一堆它们。有关详细信息,请查看this。并将一个构造函数添加到&#34; Order&#34;为了更容易创建一个新的 - &gt;
new Order("Woodpecker Corp", "21.11.2014", 250, "29.11.2014")