在你第一眼看到这个问题的时候可能会想到只需将物体的position重置就可以,这样做可能忽略的是物体的rotation。
在start()函数中存取要复位物体的transform,然后再赋值 ?
如果这么做了你会发现,
那个存取transform的左值,是随着物体transform变化而变化的
如果将它debug.log一下你会发现,输出的就是你要复位的物体名称
原因是tranform类的拷贝到变量中而不是一个赋值操作,要储存的物体和变量指向同一个对象(况且tranform只有get方法)
所以,要对物体进行复位操作,需要分别保存 transform.postion和transform.R0oattion文章来源:https://www.toymoban.com/news/detail-573352.html
代码如下文章来源地址https://www.toymoban.com/news/detail-573352.html
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class reset_test : MonoBehaviour {
public GameObject g;
Vector3 start_position;
Quaternion start_rotation;
void Start () {
start_position= g.tranforn.position;
start_rotation= g.tranforn.rotation;
}
public void Reset()
{
Debug.Log("Reset");
g.transform.position = start_position;
g.transform.rotation = start_rotation;
}
}
到了这里,关于unity物体位移 旋转后的复位问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!