之前总结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个方法实例化对象的返回值就是实例化的对象的副本。就是相当于复制了一个对象。
特别说明:
- Instantiate(Object original)方法,它会在世界原点创建一个与原始对象相同的副本。
- Instantiate(Object original,Transform parent)方法,它会在指定的父物体(参数parent)下创建一个与原始对象相同的副本。
- Instantiate(Object original,Transform parent,bool instantiateInWorldSpace)方法,在指定父物体的同时,它还要我们选择是在世界空间还是本地空间中实例化物体。当instantiateInWorldSpace为true时,实例化对象将以世界空间的坐标进行放置。这就意味着无论父级对象的位置和旋转如何,实例化对象都将保持在相同的位置和旋转。而instantiateInWorldSpace为false时,实例化对象将以相对于父级对象的本地空间坐标进行放置。这就意味着,实例化对象的位置和旋转将相对于父级对象的位置和旋转进行偏移。
- Instantiate(Object original,Transform parent,bool instantiateInWorldSpace)方法是我们实例化对象的同时指定位置和旋转角度。
- 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类,我们还可以实例化其它一些对象。文章来源:https://www.toymoban.com/news/detail-753286.html
有了上面10个实例化对象的方法,我们要实例化对象是可以很灵活的。文章来源地址https://www.toymoban.com/news/detail-753286.html
到了这里,关于Unity Instantiate的用法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!