我们动态创建一个新的预制件,其中包含许多文本控件和一个按钮。动态创建时,按钮停止可点击。如果我在编辑器中运行,并且到达显示按钮的位置,则单击它不会执行任何操作。如果我在游戏运行时在画布上放置一个新的预制件,然后单击按钮,它就可以正常工作。我注意到另一个预制件的这种行为。所有静态按钮都可以正常工作。
我还检查过以确保预制件是画布上的最后一个(底部)项目 - 最顶层的对象。虽然它似乎落后于另一个对象。
要在编辑器中运行时进一步测试,我在编辑器中单击了EventSystem,然后单击了Game场景中的按钮。在检查器中,它显示没有选择对象,移动鼠标显示pointerEnter:BackgroundImage。
如果我在设计时放下相同的预制件并运行游戏,按钮工作正常。
我认为这在我们升级到2017.1.0f3之后就开始了。 这是我们创建的预制件之一的示例。
var eofl = Instantiate(endOfLevelTemplate, GameObject.FindObjectOfType<Canvas>().transform, false) as GameObject;
更新 我遗漏了一些信息,这些信息可能是原因,但我不知道为什么。 创建对象后,我将比例设置为0,然后使用LeanTween将其缩放到1。
eofl.transform.localScale = new Vector3(0, 0);
LeanTween.scale(eofl, new Vector3(1, 1), .5f).setOnComplete(EndOfLevelScalingComplete, eofl);
我试图评论这两行,这似乎使它再次起作用。 我不知道为什么会突然停止工作。我也升级到了最新的LeanTween,但没有改变。