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<ButtonManager>();
    this.GetComponent<Button>().onClick.AddListener(buttonManager.onButton_B_click);
}

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

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值