Unity Instantiate的用法

之前总结Unity实例化物体的文章:Unity 实例化物体以及赋予到父物体之下-CSDN博客

现在回头看来,感觉总结得不够全面,尤其关于Instantiate的用法,过于简陋了。

关于Instantiate,它实际上有10个语法:

  • Object Object.Instantiate(Object original);
  • Object Object.Instantiate(Object original,Transform parent);
  • Object Object.Instantiate(Object original,Transform parent,bool instantiateInWorldSpace);
  • Object Object.Instantiate(Object original,Vector3 position,Quaternion rotation);
  • Object Object.Instantiate(Object original,Vector3 position,Quaternion rotation,Transform parent);

上面5个语法中,其中,original参数是要实例化的对象,

parent参数是实例化对象的父级Transform,

instantiateInWorldSpace参数是指是否在世界空间中实例化,

position参数是指实例化对象的位置,

rotation参数是指实例化对象的旋转。

以上5个方法实例化对象的返回值就是实例化的对象的副本。就是相当于复制了一个对象。

特别说明:

  1. Instantiate(Object original)方法,它会在世界原点创建一个与原始对象相同的副本。
  2. Instantiate(Object original,Transform parent)方法,它会在指定的父物体(参数parent)下创建一个与原始对象相同的副本。
  3. Instantiate(Object original,Transform parent,bool instantiateInWorldSpace)方法,在指定父物体的同时,它还要我们选择是在世界空间还是本地空间中实例化物体。当instantiateInWorldSpace为true时,实例化对象将以世界空间的坐标进行放置。这就意味着无论父级对象的位置和旋转如何,实例化对象都将保持在相同的位置和旋转。而instantiateInWorldSpace为false时,实例化对象将以相对于父级对象的本地空间坐标进行放置。这就意味着,实例化对象的位置和旋转将相对于父级对象的位置和旋转进行偏移。
  4. Instantiate(Object original,Transform parent,bool instantiateInWorldSpace)方法是我们实例化对象的同时指定位置和旋转角度。
  5. Instantiate(Object original,Vector3 position,Quaternion rotation,Transform parent)方法是我们实例化对象的同时指定位置、旋转角度和父物体。

除了上面5个语法,还有下面五个语法:

  • T Object.Instantiate(T original);
  • T Object.Instantiate( T original,Transform parent);
  • T Object.Instantiate(T original,Transform parent,bool instantiateInWorldSpace);
  • T Object.Instantiate(T original,Vector3 position,Quaternion rotation);
  • T Object.Instantiate(T original,Vector3 position,Quaternion rotation,Transform parent);

有了对上面五个语法的理解,再来看这5个语法就很好理解了,其中,

parent参数、instantiateInWorldSpace参数、position参数、rotation参数跟上面5个语法对应参数是一样的。

唯一不同的是实例化对象和返回对象不同。它使用了个泛型对象T original,而返回值自然就是泛型的实例化对象的副本。

可以说后面5个语法是上面5个语法的拓展,它使我们示例化的对象不止是Object类,我们还可以实例化其它一些对象。

有了上面10个实例化对象的方法,我们要实例化对象是可以很灵活的。

  • 32
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不在同一频道上的呆子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值