繁体   English   中英

C#Unity在构造函数中创建对象

[英]c# Unity creating object in the constructor

我有这个脚本:

        public  PlayState ()
        {
              HydroElectric ec = new HydroElectric();
        }
        public void ShowIt()
        {
            ec.t1Bool = GUI.Toggle (new Rect (25, 55, 100, 50), ec.t1Bool, "Turbina 2 MW");

            ec.t2Bool = GUI.Toggle (new Rect (25, 95, 100, 50), ec.t2Bool, "Turbina 3 MW");

            ec.t3Bool = GUI.Toggle (new Rect (25, 135, 100, 50), ec.t3Bool, "Turbina 1 MW");



            GUI.Box (new Rect (Screen.width - 100, 60, 80, 25), ec.prod.ToString ());      // PRODUCED ENERGY                             

            GUI.Box (new Rect (Screen.width - 650, 10, 100, 25), TimeManager.gametime.ToString() );  // GAME TIME HOURS

            float test;

            if (LoadDiagram.diagramaCarga.TryGetValue(TimeManager.gametime, out test)) // Returns true.
            {
                GUI.Box (new Rect (Screen.width - 650, 275, 50, 25),  test.ToString ());
            }
        }

问题是我必须从“ ShowIt”方法中删除水电对象,因为每次创建“切换”按钮时都会创建该对象,因此我创建了一个构造函数来创建对象,但是现在变量“ ec”不是认识到,我在这里想念什么?

现在,变量仅存在于构造函数中:

public PlayState ()
{
    HydroElectric ec = new HydroElectric();
}

这意味着它已创建,然后在构造函数完成后立即丢失。 听起来您想让它成为班级成员:

private HydroElectric ec;

public PlayState ()
{
    ec = new HydroElectric();
}

这将使其在整个类中可用,并将为类的实例维护变量的单个实例。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM