You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity中VideoManager脚本‘got void’报错的解决及代码修复求助

Unity VideoManager脚本错误修复

原代码中的错误点:

  • 未引入UnityEngine.Video命名空间,导致VideoPlayer和VideoSource无法识别
  • GetComponent语法错误,尖括号前后多余空格且转义符使用错误
  • URLToVideo方法参数定义错误,写成string.Url,正确应为string url
  • 变量名拼写错误:videoPLayer应为videoPlayer(大小写不一致)
  • 事件订阅语法完全混乱:videoPlayer.prepareCompleted +=VideoPlayer)prepare Completed; 格式错误,方法名不能含空格,不符合C#事件订阅规则
  • 回调方法定义语法错误:VideoPlayer)prepareCompleted 括号位置错误,方法名格式不规范
  • 调用Play方法时未加括号,正确应为Play();

修复后的完整代码:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Video; // 新增Video命名空间

public class VideoManager : MonoBehaviour
{
    private VideoPlayer videoPlayer;

    private void Start()
    {
        // 修正GetComponent语法
        videoPlayer = GetComponent<VideoPlayer>();
    }

    public void Play()
    {
        videoPlayer.Play();
    }

    public void Pause()
    {
        videoPlayer.Pause();
    }

    public void Stop()
    {
        videoPlayer.Stop();
    }

    // 修正参数定义
    public void URLToVideo(string url)
    {
        videoPlayer.source = VideoSource.Url;
        videoPlayer.url = url;
        // 修正变量拼写错误
        videoPlayer.Prepare();
        // 修正事件订阅语法
        videoPlayer.prepareCompleted += VideoPlayer_PrepareCompleted;
    }

    // 修正回调方法定义语法
    private void VideoPlayer_PrepareCompleted(VideoPlayer source)
    {
        // 修正方法调用语法
        Play();
    }
}

关键修复说明:

  1. 命名空间:必须添加using UnityEngine.Video;,Unity视频播放相关类均在此命名空间下,缺失会导致类型未定义错误。
  2. 语法规范:C#对泛型写法、方法调用、事件订阅有严格要求,比如泛型尖括号不能加多余空格,方法调用必须带括号,事件订阅要使用正确的方法名格式。
  3. 变量一致性:变量名严格区分大小写,避免拼写错误引发空引用或编译错误。
  4. 事件回调:prepareCompleted是VideoPlayer的事件,订阅时需指定参数类型匹配的回调方法,确保事件触发后能正确执行逻辑。

内容的提问来源于stack exchange,提问作者Ang Jia Xing

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 21:03:31