如何解决unity c# 的问题 - Object.Destroy 不工作
所以我在协程中创建了许多对象,当然我想删除它们,但是 Object.Destroy 不起作用。有什么想法吗?
`public class Spawner : MonoBehaviour
{
[SerializeField] Obstacle obstaclePrefab;
private void Start()
{
StartCoroutine(SpawnNewObstacle());
}
IEnumerator SpawnNewObstacle()
{
do
{
float range = Random.Range(-2.55f,3.35f);
Vector3 position = new Vector3(12.5f,range,-1);
var obstacle = Instantiate(obstaclePrefab,position,Quaternion.identity);
yield return new WaitForSeconds(2f);
DestroyImmediate(obstacle);
}
while (true);
}
}`
解决方法
我想,您使用的是 DestroyImmediate
而不是 Object.Destroy
,这是推荐的做法。
最终对象被销毁,销毁被延迟到对象没有任何引用。
特别是当您使用协程时,执行会暂停并将控制权返回给调用代码,并且您的对象可能仍在使用中。在这种情况下,破坏的延迟更加明显。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。