【问题标题】:Access Class in Class from another Script?从另一个脚本访问类中的类?
【发布时间】:2014-11-21 12:12:09
【问题描述】:

首先,我是 Unity3D 的新手,尤其是编程方面的新手。此时我尝试不同的事物并研究不同的文档来创建一个经济模拟游戏。 因此,如果我不能立即理解您的解决方案,请对我仁慈;)

我需要从另一个脚本访问二维列表。 在 Script1 中,我使用一个类来制作 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 对我来说运行良好。

现在我怎样才能访问“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 类。

也许你可以给我一个解决方案的方法或我可以为我的问题转移的示例代码。谢谢。

【问题讨论】:

    标签: c# list multidimensional-array unity3d


    【解决方案1】:

    您可以使用 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
         }
    

    【讨论】:

    • 你能给我一个具体的例子,然后我怎么能访问这个类?
    【解决方案2】:

    像 Mark Smit 提到的那样做可能是最好的。你应该考虑的一件事是让“Order”成为一个结构而不是一个类,因为它不包含大量数据,而且我想你会有一堆。如需更多信息,请查看this。并为“Order”添加一个构造函数以便于创建一个新的 ->

    new Order("Woodpecker Corp", "21.11.2014", 250, "29.11.2014")
    

    【讨论】:

      猜你喜欢
      • 2012-05-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-04
      • 2023-04-07
      • 2020-11-24
      • 1970-01-01
      • 2017-03-22
      相关资源
      最近更新 更多