playOneShot报错,求教

新人在学习阿信的教程,一个拼图小游戏,点击音效这里一直报错,和作者源码和设置对比后一模一样,不知道为什么我的就一直报错。实在无计可施了。求助

  • Creator 版本: <3.4.2->

  • 目标平台:
    以下是AudioManager.ts内容,控制台一直提示playOneShot报错

import { _decorator, Component, Node,AudioClip,AudioSource } from ‘cc’;

const { ccclass, property } = _decorator;

@ccclass(‘AudioManager’)

export class AudioManager extends Component {

@property({ type: AudioClip})

public clickClip: AudioClip = null;

private audioSource: AudioSource;

onload() {

    this.audioSource = this.getComponent(AudioSource);

}

//播放点击音效

playSound() {

   

    this.audioSource.playOneShot(this.clickClip, 1);

}

}

以下是Chrome控制台信息
Uncaught TypeError: Cannot read properties of undefined (reading ‘playOneShot’)
at AudioManager.playSound (AudioManager.ts:21:26)
at Game.onClickPic (Game.ts:170:39)
at Director.emit (callbacks-invoker.ts:346:34)
at Block.onBlockTouch (Block.ts:22:18)
at CallbacksInvoker.emit (callbacks-invoker.ts:346:34)
at NodeEventProcessor.dispatchEvent (node-event-processor.ts:366:33)
at Node.dispatchEvent (base-node.ts:1168:30)
at NodeEventProcessor._handleTouchStart (node-event-processor.ts:577:18)
at NodeEventProcessor._handleEventTouch (node-event-processor.ts:554:25)
at PointerEventDispatcher.dispatchEventTouch (pointer-event-dispatcher.ts:134:47)。

已经通过GPT自检,通过和教程提供的源代码逐字对比,一模一样,然而教程文件demo运行不会报错。cocos软件内设置也是一模一样。

看看这个组件的节点上有没有添加AudioSource组件。

把onLoad 改成 onEnable/start 看下
this.audioSource = this.getComponent(AudioSource) || this.addComponent(AudioSource);

你的帖子已经被社区标记并被临时隐藏。

添加了,没有用。是一点击就报错,点击音效的问题。这是工程文件
我用夸克网盘分享了「demo-006.zip」,点击链接即可保存。打开「夸克APP」,无需下载在线播放视频,畅享原画5倍速,支持电视投屏。
链接:夸克网盘分享

谢谢大佬偶像回复,不是audiosource的问题,背景音乐没问题。是下面点击音效的问题,就是一点击就报错。playSound() {

this.audioSource.playOneShot(this.clickClip, 1);

}这里的问题。这是工程文件,空了可以看下。感谢。现在还是有问题demo-006.rar (3.6 MB)

这是工程文件demo-006.rar (3.6 MB),麻烦空了可以帮我看下,感谢

添加了,点击才会报错,应该是点击音效的问题。麻烦空了可以帮我看下工程文件。感谢demo-006.rar (3.6 MB)

代码命名问题
是onLoad,不是onload

1赞

谢谢谢谢谢谢,太感谢了,正常了。确实这里没检查到。谢谢您,祝你生活顺心