LOFTER for ipad —— 让兴趣,更有趣

点击下载 关闭
Unity-预制体实例化Instantiate
Zeiod 2022-04-03

预制体实例化

游戏中大多情况下我们都需要通过代码生成子弹、刷新小兵等,所以需要将预制体实例化到场景中

Game0bject.Instantiate()   :有多个重载,根据情况选择

Game0bject.Instantiate<>()    :有泛型的用于特殊情况,不是用来预制体


重载1:public static Object Instantiate(Object original);

GameObject.Instantiate(物体)

创造了一大堆预制体在同一个位置,原点(0,0,0),与挂载脚本物体位置无关。

重载2:public static Object Instantiate(Object original,Transform parent);

重载3:public static Object Instantiate(Object original,Transform parent, bool instantiateInWorldSpace);

重载4:public static Object Instantiate(Object original,Vector3 position,Quaternion rotation);

重载5:常用:
public static Object Instantiate(Object original,Vector3 position,Quaternion rotation,Transform parent);

GameObject.Instantiate(物体,位置,旋转值,父物体的Transfrom)

GameObject.Instantiate(Prefab,new Vector3(0,1,0),Quaternion.identity,transform);

参数中的 Quaternion.identity  : Quaternion(翻译为:四元数)identity(翻译为:本体;相同)就是没有旋转值

Quaternion.identity

public static Quaternion identity;

Description:

The identity rotation (Read Only).

This quaternion corresponds to "no rotation" - the object is perfectly aligned with the world or parent axes.

该四元数对应于“无旋转”——对象与世界轴或父轴完全对齐。

参数中的 transform 直接写就是自己的Transform

实例化出的预制体Position就是new Vector3(0,1,0)

父物体就是transform,即挂载组件的GameObject

推荐文章
评论(0)
分享到
转载我的主页