实例化对象有多种方式(来源:InstantiateChildObject)
public static Object Instantiate(Object original);
public static Object Instantiate(Object original, Transform parent);
public static Object Instantiate(Object original, Transform parent, bool instantiateInWorldSpace);
public static Object Instantiate(Object original, Vector3 position, Quaternion rotation);
public static Object Instantiate(Object original, Vector3 position, Quaternion rotation, Transform parent);
如果您想在世界空间中将预制件实例化为 GameObject 的子对象,那么:
GameObject childGameObject = Instantiate(yourPrefab, parentOfObject, true);
childGameObject.name = "Enemy01";
不要忘记在作为父对象后重置转换(或设置您自己的转换)
所有类型的子实例化函数列表:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class InstantiateAsChild : MonoBehaviour
{
public GameObject prefab;
public Transform parent;
public Vector2 position;
public Quaternion rotation;
public void childInstantiate()
{
GameObject childGameObject = Instantiate(prefab);
childGameObject.name = "Instantiate";
}
public void childInstantiateAsChild()
{
GameObject childGameObject = Instantiate(prefab, parent);
childGameObject.name = "InstantiateChild";
}
public void childInstantiateAsChildWorldSpace()
{
GameObject childGameObject = Instantiate(prefab, parent, true);
childGameObject.name = "InstantiateWorldSpace";
}
public void childInstantiateWithPositionRotation()
{
GameObject childGameObject = Instantiate(prefab, position, rotation);
childGameObject.name = "InstantiatePosAndRot";
}
public void childInstantiateAsChildWithPositionRotation()
{
GameObject childGameObject = Instantiate(prefab, position, rotation ,parent);
childGameObject.name = "InstantiateChildPosAndRot";
}
}