unity场景切换的一个问题与解决

unity场景切换的一个问题与解决

背景:假设场景一中有三个物体A,B,C,其中B、C是Button,给B和C在hierarchy面板添加onclick函数,分别为挂载在A上的脚本ButtonManager上的函数onButton_B_click()和onButton_C_click(),由于某些原因,需要A物体在场景切换时不销毁,并且当切回场景一时,此时会有两个A物体的存在,删除场景默认的那个A,保留一直没有销毁的A。

这样当我们回到场景一时,会发现点击B、C按钮没有任何效果,B、C上对应的响应函数变成了miss。

这是因为B、C是和原有的A上的脚本中的对应函数绑定,现在原有场景的A销毁了,保留的是一直没有销毁的A,所有会出现点击按钮无效的现象

解决办法:

不在hierarchy面板添加按钮响应函数,而是在脚本中添加。

在按钮B上挂载一个脚本,在start()中:

void start()
{
    GameObject A = GameObject.Find("A");
    ButtonManager buttonManager = A.GetComponent();
    this.GetComponent

同样的,在C上也可以挂载这样的一个脚本,把对应的响应函数修改一下即可

这样回到场景一时,B、C两个按钮就绑定上了A中的函数。

你可能感兴趣的:(Unity,Unity,场景切换)