用的Unity2017 + DoozyUI3.1,已经有点对不上,也不确定最新版本Unity匹配的是哪个版本
虽然我也吹过Unity是最好的工具,可惜开源的工具永远是3~5,是最好的版本,其实,真的Unity4.x是最好的版本,可惜大家都错过了
上看瞎看,DoozyUI这个插件,和其他插件一样,”商业化“,“可视化",”基于Unity“基本都有这个版本不匹配问题,而其自身的代码框架也没做多好
不过,也不怪谁,Unity自家的package都搞成大乱炖,你觉得第三方能好过吗?
总之,各位自求多福
下面部分代码参数没粘贴出来,请自行补充
if (mPopup == null)
{
mPopup = UIPopupManager.GetPopup("popLuan");
//阅读代码后发现,无论UIPopupManager,还是UIPopup->GetPopup()后会克隆一份,所以必须通过模组级别变量持有,
//否则,一直New Popup对象,都是全新的,并不是我们真正需要的那一个Popup实例
//也就是下面代码都没什么卵用
//popup = UIPopup.GetPopup("popLuan");
//UICanvas canvas = popup.GetTargetCanvas();
//popup.Container.RectTransform = canvas.RectTransform;
//popup.Overlay.RectTransform = popup.Container.RectTransform;
//UIPopupManager.AddToQueue(popup);
}
UICanvas canvas = mPopup.GetTargetCanvas();
mPopup.Container.RectTransform = canvas.RectTransform;
mPopup.Overlay.RectTransform = mPopup.Container.RectTransform;
/ 还特喵的需要补上这一句(才能Show和Hide安全调用)//
if (canvas.gameObject.activeSelf == false)
canvas.gameObject.SetActive(true);
mPopup.Show();