在你第一眼看到这个问题的时候可能会想到只需将物体的position重置就可以,这样做可能忽略的是物体的rotation。
在start()函数中存取要复位物体的transform,然后再赋值 ?
如果这么做了你会发现,

那个存取transform的左值,是随着物体transform变化而变化的

如果将它debug.log一下你会发现,输出的就是你要复位的物体名称
原因是tranform类的拷贝到变量中而不是一个赋值操作,要储存的物体和变量指向同一个对象(况且tranform只有get方法)
所以,要对物体进行复位操作,需要分别保存 transform.postion和transform.R0oattion
代码如下
using System.Collections;
using System.Collections.Generic

该文章讨论了在Unity中正确复位物体位置和旋转的方法。通过在Start函数中存储初始的transform.position和transform.rotation,在Reset函数中分别还原这些值,以确保物体的状态完全恢复。注意,直接赋值transform对象不会持久保存,而应该分别保存position和rotation。

948

被折叠的 条评论
为什么被折叠?



