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