unity中如何实例化指定地方的对象?

How to instantiate objects in a specified place in unity?

我有一个增强现实应用程序,它在检测到二维码时会显示对象。我这样做的方法是使用一个名为 model caller 的空对象,它有一个实例化模型的脚本,这是脚本:

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Android;
using UnityEngine.Networking;
using UnityEngine.UI;

public class Load_Models: MonoBehaviour
{
    // Start is called before the first frame update
    [Serializable]
    public class PlaceModel
    {
        public string Clave = "";
    }

    public GameObject[] model;

    public string[] clave_modelos;

    public string URL;

    public GameObject ModeloUI;

    public PlaceModel placeModel;

    Dictionary<string, GameObject> strGO = new Dictionary<string, GameObject>();


    public void Start()
    {
        
         StartCoroutine(GetRequest(URL));
        for (int i = 0; i < model.Length; i++)
        {
            strGO.Add(clave_modelos[i], model[i]);
        }
        

    }
    IEnumerator GetRequest(string uri)
    {
        using (UnityWebRequest webRequest = UnityWebRequest.Get(uri))
        {
            // Request and wait for the desired page.
            yield return webRequest.SendWebRequest();

            string jsonForm = uri;

            if (webRequest.isNetworkError)
            {
                Debug.Log("Error loading");

            }
            else
            {
                try
                {

                    PlaceModel model_1 = JsonUtility.FromJson<PlaceModel>(webRequest.downloadHandler.text); 
                    Instantiate(strGO[model_1.Clave], new Vector3(0, 0, 0), Quaternion.identity, transform); //instantiates the model
                    Debug.Log("Loaded");
                }
                catch
                {
                    Debug.Log("Error in connection");
                }
            }

        }
    }
}

这是当我检测到超过 1 个 QR 时发生的情况(它也只发生在一个 QR 上,只是没有模型相互“融合”):

说明:它应该显示 3 个模型,1 个简单的街道(白色方块)和 2 个“无模型”3d 文本,但是,这个想法是让模型显示为“附加”(我不知道如何措辞)到二维码。我试图通过将模型调用者作为 ImageTarget 的子级,并将模型调用者置于图像目标的死点,同时使用 new Vector3(0, 0, 0).

来做到这一点

有办法吗?

我知道我可以通过简单地使用预制件本身而不是脚本来做到这一点,但我需要根据网站更改模型(我已经这样做了)。

我为此使用 EasyAR 3

如果我没看错,请尝试以这种方式更改实例化行:

Instantiate(strGO[model_1.Clave], transform.position, Quaternion.identity, transform);

另外,也许您不需要设置父转换,这取决于您的实现。