看了UI框架,bug好多啊。 public void HandleUiState(UIState valua) { switch (valua) { ...
看了UI框架,bug好多啊。
public void HandleUiState(UIState valua)
{
switch (valua)
{
case UIState.INIT:
if (_uiState== UIState.NORMAL)
{
Init();
}
break;
case UIState.SHOW:
if (_uiState == UIState.NORMAL)
{
Init();
Show();
}
else
{
Show();
}
break;
case UIState.HIDE:
Hide();
break;
}
}
判断的参数要改成这个才对,否则子类的layer设置无效,全都是basic
这个是父物体
public void InitUi(UIBase script)
{
if (script.UiState == UIState.NORMAL)
{
Transform ui = script.transform;
//根据层级信息,添加到对应的父物体下
ui.SetParent(GetLayerObject?.Invoke(script.Layer));
ui.localPosition = Vector3.zero;
ui.localScale = Vector3.one;
//ui.RectTransform().offsetMax = Vector2.zero;
//ui.RectTransform().offsetMin = Vector2.zero;
}
}
那两个最好注释掉,否则会出现宽高为0,UI找不到的问题
public void HandleUiState(UIState valua)
{
switch (valua)
{
case UIState.INIT:
if (_uiState== UIState.NORMAL)
{
Init();
}
break;
case UIState.SHOW:
if (_uiState == UIState.NORMAL)
{
Init();
Show();
}
else
{
Show();
}
break;
case UIState.HIDE:
Hide();
break;
}
}
判断的参数要改成这个才对,否则子类的layer设置无效,全都是basic
这个是父物体
public void InitUi(UIBase script)
{
if (script.UiState == UIState.NORMAL)
{
Transform ui = script.transform;
//根据层级信息,添加到对应的父物体下
ui.SetParent(GetLayerObject?.Invoke(script.Layer));
ui.localPosition = Vector3.zero;
ui.localScale = Vector3.one;
//ui.RectTransform().offsetMax = Vector2.zero;
//ui.RectTransform().offsetMin = Vector2.zero;
}
}
那两个最好注释掉,否则会出现宽高为0,UI找不到的问题