Unity中Instantiate一个prefab时需要注意的问题
生活随笔
收集整理的這篇文章主要介紹了
Unity中Instantiate一个prefab时需要注意的问题
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
在調(diào)用Instantiate()方法使用prefab創(chuàng)建對象時,接收Instantiate()方法返回值的變量類型必須和聲明prefab變量的類型一致,否則接收變量的值會為null.
比如說,我在腳本里面定義: public GameObject myPrefab; 那么在使用這個myPrefab做Instantiate()的時候,接收返回值變量的類型也必須是GameObject,如下: GameObject newObject = Instantiate(myPrefab) as GameObject;注意Instantiate()后面的as也要是GameObject。
又比如我們的prefab類型是我們自定義的UserObject,
public UserObject prefab;那么在使用Instantiate()時我們需要寫成:
UserObject newObject = Instantiate(myPrefab) as UserObject;比較容易犯的一個錯誤是我們聲明的類型是:
public GameObject myPrefab;在Instantiate()返回值卻想要用Transform,如下:
Transform newObject = Instantiate(myPrefab) as Transform;這個時候就會出現(xiàn)newObject為null的問題。
這個問題看起來很詭異,也曾經(jīng)給我?guī)砹艘恍┞闊?#xff0c;后來經(jīng)過搜索和自己的實(shí)驗(yàn)證明了以上的結(jié)論,希望看到這篇文章的朋友可以避免這個問題。
導(dǎo)致這個問題的具體原因還不是很清楚,也許和C#語言的某些特性有關(guān),自己也是剛接觸C#沒多久,如果之后搞明白會在這篇文章的下面補(bǔ)充。
轉(zhuǎn)載于:https://www.cnblogs.com/android-blogs/p/6145911.html
總結(jié)
以上是生活随笔為你收集整理的Unity中Instantiate一个prefab时需要注意的问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: @Repository , @Servi
- 下一篇: 第十一次实验总结