您当前的位置: 首页 > 

野奔在山外的猫

暂无认证

  • 8浏览

    0关注

    85博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

【解决吧】DontDestroyOnLoad only works for root GameObjects or components on root GameObjects.

野奔在山外的猫 发布时间:2022-08-30 22:23:28 ,浏览量:8

开发平台:Unity 编程平台:Visual Studio 2020以上 使用语言:C#  

问题描述

|原译|XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX|
|--|--|
|现译|XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX|

备注:这是一个 Warnig + Normal 的警告组合消息。即时实际运行过程中达到效果,也仍需要注意这个问题的警告信息。  

原因分析

  Unity 中 DontDestroyOnLoad() 用于场景发生变换时,保留该场景内特定对象至下一场景继续延用。对 非父对象(子对象)由于其本身不为根父对象,须解决父子层级关系后才可有效执行。而在一些情况中,例如 Scene 下根对象中,理论上使用 DontDestroyOnLoad(this.gameObject) 并不会违背 Unity 的解释。但仍然出现该类问题。

猜想(待验证):是否存在一个父对象未出现于 Scene 视图中。  

解决方案:使用 transform.root 替代
public void Start()
{
	DontDesctroyOnLoad(this.gameObject.root);
}

  this.gameObject.root:返回该 GameObject 对象的最顶层级对象,如果没有则返回自身。绝不为 NULL。

关注
打赏
1659777066
查看更多评论
立即登录/注册

微信扫码登录

0.0371s