unity public的坑
public Rect windowRect=new Rect(250,250,80,80);
//public Rect windowRect=new Rect(500,500,80,80);
void OnGUI()
{
windowRect=GUI.Window(0,windowRect,DoMyWindow,"My Window");
}
void DoMyWindow(int windowID)
{
if(GUI.Button(new Rect(10,20,20,20),"Hello World"))
{
print("Got a click");
}
GUI.DragWindow(new Rect(0,0,1000,1000));
}
先运行一下,然后把第一行注释掉,并去掉第二行注释,然后再运行会发现,画面没改变。
为什么呢?
主要是,第一次运行时,Editor会保留这个值,下次运行直接用这保留值,而不是用代码里的初始化值。
如果希望每次按初始化的值去运行,可以加static。
public static Rect windowRect=new Rect(400,200,80,80);