移動、拡大縮小、回転後にTag(Model)付きの6つのGameObjectがあります。ボタンをクリックすると、どのように開始位置に戻すことができますか?Unity:Gameobjects with tag、開始位置/位置にリセット
私はVuforiaとUnityを使用しています。
ありがとうございます、ありがとうございます。
移動、拡大縮小、回転後にTag(Model)付きの6つのGameObjectがあります。ボタンをクリックすると、どのように開始位置に戻すことができますか?Unity:Gameobjects with tag、開始位置/位置にリセット
私はVuforiaとUnityを使用しています。
ありがとうございます、ありがとうございます。
私はタグで約6ゲームオブジェクト(モデル)
はそれらすべてを検索し、配列にそれらを格納できます。
GameObject[] models = GameObject.FindGameObjectsWithTag("Model");
移動、スケール、私はボタンをクリックします たときに場所を開始するために戻ってそれらをリセットすることができ回しか。
for
ループと、Start()
関数の位置(Vector3
)、スケール(Vector3
)及び回転(Quaternion
)を取得し、一時的な変数にその値を格納します。 Button
をクリックすると、モデルの位置、位取り、回転をこれらの値に設定する関数を呼び出します。
ボタンのクリックで関数を呼び出すには、エディタまたはスクリプトから関数を呼び出すことができます。 ButtonInstance.onClick.AddListener(() => yourFunctionToCall());
私はここに複雑ユニティ初心者
何もしていません。
GameObject.FindGameObjectsWithTag
Vector3[] defaultPos;
Vector3[] defaultScale;
Quaternion[] defaultRot;
Transform[] models;
//Attach Button from the Editor
public Button resetButton;
void Start()
{
//Call to back up the Transform before moving, scaling or rotating the GameObject
backUpTransform();
}
void backUpTransform()
{
//Find GameObjects with Model tag
GameObject[] tempModels = GameObject.FindGameObjectsWithTag("Model");
//Create pos, scale and rot, Transform array size based on sixe of Objects found
defaultPos = new Vector3[tempModels.Length];
defaultScale = new Vector3[tempModels.Length];
defaultRot = new Quaternion[tempModels.Length];
models = new Transform[tempModels.Length];
//Get original the pos, scale and rot of each Object on the transform
for (int i = 0; i < tempModels.Length; i++)
{
models[i] = tempModels[i].GetComponent<Transform>();
defaultPos[i] = models[i].position;
defaultScale[i] = models[i].localScale;
defaultRot[i] = models[i].rotation;
}
}
//Called when Button is clicked
void resetTransform()
{
//Restore the all the original pos, scale and rot of each GameOBject
for (int i = 0; i < models.Length; i++)
{
models[i].position = defaultPos[i];
models[i].localScale = defaultScale[i];
models[i].rotation = defaultRot[i];
}
}
void OnEnable()
{
//Register Button Events
resetButton.onClick.AddListener(() => resetTransform());
}
void OnDisable()
{
//Un-Register Button Events
resetButton.onClick.RemoveAllListeners();
}
質問に対して申し訳ありませんが、あなたも試してくださいましたか?移動する前に位置、縮尺、回転を保存してから、クリックするだけでこれらの値にリセットしてください。 – TheDjentleman
私はUnity初心者ですが、いくつかの方法を試しましたが、私は間違いを続けていました。あなたが今提案したことを試してみます。ありがとう。 – Zinox
**いくつかの方法を試してみました。**正確に何を試したかについて世界に伝えることができますか? –