在调用Instantiate()方法使用prefab创建对象时,接收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;

这个时候就会出现newObject为null的问题。

这个问题看起来很诡异,也曾经给我带来了一些麻烦,后来经过搜索和自己的实验证明了以上的结论,希望看到这篇文章的朋友可以避免这个问题。

导致这个问题的具体原因还不是很清楚,也许和C#语言的某些特性有关,自己也是刚接触C#没多久,如果之后搞明白会在这篇文章的下面补充。

转载于:https://www.cnblogs.com/android-blogs/p/6145911.html

Unity中Instantiate一个prefab时需要注意的问题相关推荐

  1. 学习在Unity中创建一个动作RPG游戏

    游戏开发变得简单.使用Unity学习C#并创建您自己的动作角色扮演游戏! 你会学到什么 学习C#,一种现代通用的编程语言. 了解Unity中2D发展的能力. 发展强大的和可移植的解决问题的技能. 了解 ...

  2. 学习用C#在Unity中创建一个2D Metroidvania游戏

    学习用C#在Unity中创建一个2D Metroidvania游戏 你会学到: 构建2D Unity游戏 用C#编程 玩家统计,水平提升,米尔和远程攻击 敌方人工智能系统 制定级别和级别选择 Lear ...

  3. 学会在Unity中创建一个Match-3益智游戏 Learn To Create a Match-3 Puzzle Game in Unity

    MP4 |视频:h264,1280×720 |音频:AAC,44.1 KHz,2 Ch 语言:英语+中英文字幕(根据原英文字幕机译更准确) |时长:48场讲座(6h 38m) |大小解压后:2.8 G ...

  4. Unity:图片的一个像素单位对应Unity中的一个距离单位

    当我们使用unity开发时2D项目时,如果需求是一个像素单位就要对应unity中的一个距离单位, 也就是:图片的1像素 = unity中的1个距离单位. 在该图片的属性面板中可以看到有个属性是:Pix ...

  5. Android在ListView中嵌套一个GridView时只显示一行的原因及解决方法

    在之前的编程里,我还没有遇到过要在一个ListView中嵌套一个GridView或是在一个GridView中嵌套一个ListView.所以今天事儿来了!我花了一将近3个小时,找到了为什么我在一个Lis ...

  6. listview当选中某一个item时设置背景色其他的不变

    2019独角兽企业重金招聘Python工程师标准>>> listview当选中某一个item时设置背景色其他的不变: 可以使用listview.setOnFoucsChangeLis ...

  7. Unity中获取一个物体下所有的子物体的方法

    Unity中获取一个物体下所有的子物体的方法 方法1(获取全部子物体,无论子物体SetActive是否为true): using System.Collections; using System.Co ...

  8. Unity中使用SteamVR Plugin时不显示HTC Vive手柄控制器的解决办法

    Unity中使用SteamVR Plugin时不显示HTC Vive手柄控制器的解决办法 出错原因: 开发应用程序时用的SteamVR Plugin版本太高(1.2.1及以后)(也可以说是SteamV ...

  9. 如何利用UGUI在Unity中实现一个本地排行榜

    write by 书封影 前置知识:Unity的基本操作,C#基础,List泛型集合基本操作,GameManager,string的基本使用方法.注意,本文默认你已经掌握上述知识,并在后文中不会对上述 ...

最新文章

  1. 那些年你用过哪些消息中间件?为什么又弃了?现在用的是什么?
  2. linux脚本 程序输入,[转]Linux中shell脚本如何自动输入…
  3. html追加行clone,jQuery - 使用.clone()方法克隆拷贝元素
  4. AJAX 缓存问题的两种解决方法(IE
  5. 2017年9月分c语言,2020年9月中国编程语言排行榜
  6. Ambari--服务管理
  7. 【使用技巧】【图像编辑和处理】将GIF图缩放
  8. 常用股票软件linux,在 Linux 下看股票?
  9. 教学流程图怎么画?画流程图好用的软件
  10. c语言入门if语句(嵌套)
  11. IT服务台基础概念及创建方法
  12. 使用Java程序接口备份数据库的思路与实现
  13. keepalived实现高可用nginx反向代理(Web集群)
  14. 矿大计算机考研上岸分数,2021--2022中国矿业大学动力工程考研上岸心得及分数线报录比...
  15. js的slice,splice,split的使用
  16. c++primer(第五版) 第十五章 面向对象程序设计习题答案
  17. 探究 PHP_CodeSniffer 的代码静态分析原理
  18. Mac下Cornerstone错误异常导致打不开
  19. 关于NTLDR的一些注意事项
  20. 把握好每一个属于自己的清晨

热门文章

  1. mac 完全卸载mysql
  2. 系统开发基础:UML相关知识笔记
  3. 树莓派的几种登录方式及树莓派的网络配置
  4. mysql 判断字段为null表示 false 其它为true_日拱一卒,MySQL数据库 常用SQL优化技巧 十一式...
  5. Mybatis Integer类型参数值为0时判断为空、空字符串不通过
  6. 按钮 交互_SwiftUI中的微交互—菜单按钮动画
  7. 07_00_加载资源(Webpack Book)
  8. 信号为E时,如何让语音识别脱“网”而出?
  9. 持久化的基于L2正则化和平均滑动模型的MNIST手写数字识别模型
  10. 谷歌Gboard输入法新增“无痕模式”:仅在Chrome隐身窗口中适用