ylxc_tu 2023-08-21 20:47 采纳率: 0%
浏览 7
已结题

Unity播放时无问题,打包后运行时报错NullRererenceException

在编辑器内可找到所需脚本组件,可打包后却报错
问题描述:
我设置了一个预制体,该预制体需要获取我写好的PlayerProperties脚本的信息,我的PlayerProperties挂载在gamecontroller(场景内一个空物体上),准备通过它的标签EditorOnly来获取该物体,进而获取该物体的PlayerProperties脚本,这个操作在编辑器里能实现,可是在打包后实现不了
这是打包后报错信息

img


这是具体错误代码

img

img


这是所需脚本物体

img

unity编辑器版本:2022.3.5f1c1
vs是2022版

  • 写回答

1条回答 默认 最新

  • hyh123a 全栈领域新星创作者 2023-08-21 21:18
    关注

    解决方法

    官方对NullRererenceException这个问题的介绍:


    如果不太清楚怎么操作的话,可以按照这个进行操作:

    1. 在 C# 中,通常这是由于引用尚未初始化的字段引起的。
      例如,如果您有一个字段public List<GameObject> items
      并且您稍后调用items.Add(foo)而没有先执行items = new List<GameObject>()
      那么您正在尝试将一个项目添加到不存在的列表中。

    2. 然而,特别是在 Unity 中,这最常见的原因是忘记在检查器中设置引用。
      当您创建新组件并添加字段时public Transform destination
      您很可能打算在检查器中分配预制件。
      如果你忘记了,你就是在试图引用一些不存在的东西。

    解决方案

    如果双击控制台窗口中的错误消息,
    Unity 将(有少数例外)突出显示层次结构中引发错误的 GameObject,
    然后打开代码编辑器并突出显示发生错误的脚本行。

    1. 如果您使用任何Find类似的方法来获取游戏对象,请确保该游戏对象处于活动状态,
      否则Find类似的方法将返回 null 或可能返回错误的游戏对象。
      如果您需要 GameObject 在找到时处于非活动状态,则需要使用不同的方式来获取对 GameObject 的引用,
      而不是使用类似方法Find直接查找 GameObject,例如让组件注册为 Manager 类型班级。

    2. 查看 GameObject,确保您已在检查器中分配了应分配的所有内容。

    3. 如果所有内容都已分配,请使用引发所选错误的游戏对象运行游戏。
      您可能有一些内容Awake()Start()否定了引用,并且您会看到检查器切换到None.

    两个未分配任何内容的 Unity 检查器字段的图像

    1. 请注意用于修改对象的方法的返回类型。例如,如果您GetComponent()在对象上调用或类似的操作并且未找到该组件,则不会抛出错误。它只会返回 null。这可以通过如下行轻松处理:

      if(thing == null) //log an error, or do something to fix the reference else //do what you wanted to do

    这应该涵盖最常见的 Unity 特定原因。如果这仍然不能解决您的问题,请访问 Unity 自己的关于 NullReferenceException 的页面,并且对于 C# 一般来说,此答案中有对 NullReferenceException 的更深入的解释。

    参考链接:


    如有问题随时沟通
    如有帮助欢迎采纳

    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 8月21日
  • 创建了问题 8月21日

悬赏问题

  • ¥15 无源定位系统的时差估计误差标准差
  • ¥15 请问这个代码哪里有问题啊
  • ¥20 python--version在命令端输入结果Python is not defined怎么办?还有pip不是exe格式是不是没安装成功?
  • ¥15 通过GaussianView进行结构微调消除虚频
  • ¥15 调用transformers库
  • ¥15 由于导出的数据名字中带有/,导致Matlab打不开,怎么办?
  • ¥15 新硬盘安装的程序总是崩溃,提示遇到错误
  • ¥15 openpcdet自制数据集评估bev精度和3d精度相同
  • ¥15 excel 上下按钮 显示行
  • ¥20 云卓h12pro 数传问题