小编Mar*_*Man的帖子

Inspector 中分​​配的 Unity 值在代码中抛出 Null

我是 Unity 的初学者,有一个问题我无法在任何板上找到答案。Awake()创建一个非常基本的 Unity C# 脚本,我的函数中有以下代码行:

Assert.IsNotNull(sfxJump);
Assert.IsNotNull(sfxDeath);
Assert.IsNotNull(sfxCoin);
Run Code Online (Sandbox Code Playgroud)

第三个断言 " Assert.IsNotNull(sfxCoin)抛出 as null,即使硬币AudioClip设置在检查器中:

检查器脚本值:

在此输入图像描述

然而 - 这是让我感到困惑的部分 - 由于某种原因,当从例程中在同一脚本中调用时,情况sfxCoin并非如此 nullOnCollisionEnter()

因此,Unity 似乎最终确实使用代码注册了该对象,但初始Awake()Start()Update()方法的断言失败了。

而这只发生在sfxCoin. sfxJump并且sfxDeath没有这个问题。

任何帮助,将不胜感激

整个脚本如下:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Assertions;

public class Player : MonoBehaviour
{
    [SerializeField] private float jumpForce = 100f;
    [SerializeField] private float forwardMomentum = 5f;
    [SerializeField] private AudioClip sfxJump;
    [SerializeField] private …
Run Code Online (Sandbox Code Playgroud)

c# unity-game-engine

6
推荐指数
1
解决办法
1523
查看次数

标签 统计

c# ×1

unity-game-engine ×1