Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 统一:带标签的游戏对象,重置为开始位置/位置_C#_Unity3d_Vuforia - Fatal编程技术网

C# 统一:带标签的游戏对象,重置为开始位置/位置

C# 统一:带标签的游戏对象,重置为开始位置/位置,c#,unity3d,vuforia,C#,Unity3d,Vuforia,在移动、缩放、旋转之后,我有大约6个带有标签(模型)的游戏对象。当我点击按钮时,如何将它们重置回起始位置 我正在使用Vuforia和Unity 任何帮助都将不胜感激,谢谢 我有大约6个带标签的游戏对象(模型) 找到它们并将它们存储到数组中 GameObject[] models = GameObject.FindGameObjectsWithTag("Model"); 移动、缩放、旋转当我 点击一个按钮 使用for循环获取Start()函数中的位置(Vector3)、比例(Vector3)和旋

在移动、缩放、旋转之后,我有大约6个带有标签(模型)的游戏对象。当我点击按钮时,如何将它们重置回起始位置

我正在使用Vuforia和Unity

任何帮助都将不胜感激,谢谢

我有大约6个带标签的游戏对象(模型)

找到它们并将它们存储到数组中

GameObject[] models = GameObject.FindGameObjectsWithTag("Model");
移动、缩放、旋转当我 点击一个按钮

使用
for
循环获取
Start()
函数中的位置(
Vector3
)、比例(
Vector3
)和旋转(
Quaternion
)并将其值存储到临时变量中。单击
按钮
时,调用将模型位置、比例和旋转设置为这些值的函数

要在单击按钮时调用函数,可以从编辑器或脚本中执行
ButtonInstance.onClick.AddListener(()=>yourFunctionToCall())

我是一个团结的新手

这里没什么复杂的

Vector3[]defaultPos;
向量3;尺度;
四元数;
转换[]模型;
//从编辑器中选择“附加”按钮
公共按钮重置按钮;
void Start()
{
//在移动、缩放或旋转游戏对象之前调用以备份变换
反向转换();
}
void backUpTransform()
{
//查找带有模型标记的游戏对象
GameObject[]tempModels=GameObject.FindGameObjectsSwithTag(“模型”);
//创建位置、缩放和旋转,根据找到的六个对象变换数组大小
defaultPos=新矢量3[tempModels.Length];
defaultScale=新矢量3[tempModels.Length];
defaultRot=新的四元数[tempModels.Length];
models=新变换[tempModels.Length];
//获取变换上每个对象的原始位置、缩放和旋转
对于(int i=0;iresetTransform());
}
无效可禁用()
{
//取消注册按钮事件
resetButton.onClick.RemoveAllListeners();
}

一种非常简单的方法,只需很少的编码,就可以对游戏对象进行预设并重新实例化,在这种情况下,预设具有对象的初始状态,因此每个值都将重置。 为了使它更容易,您可以创建一个父对象并对其进行预制

然后简单地说:

Destroy(Parent);
Instantiate(Resources.Load("Prefabs/Parent"));

很抱歉问你这个问题,你试过了吗?在移动它们之前存储它们的位置、缩放和旋转,然后单击鼠标将它们重置为这些值。我是Unity的新手,尝试了几种方法,但不断出错。我现在就试试你的建议。谢谢。我试过几种方法。。你能告诉全世界你到底做了什么吗?谢谢。现在尝试一下效果很好,同时也感谢您提供了非常有用的链接和注释代码。我将在您的帮助下进一步探索。:)
Destroy(Parent);
Instantiate(Resources.Load("Prefabs/Parent"));