微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用下拉列表在数组中播放视频的方法

如何解决使用下拉列表在数组中播放视频的方法

我是编码和统一方面的新手,正在寻求帮助。我正在尝试从统一的下拉列表中选择视频后播放视频。我有两 (2) 个脚本,一个 (1) 用于播放视频,另一个用于下拉列表。我可以播放视频,但我不知道如何从下拉列表中选择视频以便播放。我有一系列视频,下拉列表从资源文件夹动态填充。从下拉列表中选择视频后,我在 Unity 中收到以下错误IndexOutOfRangeException:索引超出数组范围。

如有任何帮助,我们将不胜感激。

这是我的方法代码

//THIS IS THE METHOD I'M HAVING TROUBLE WITH
    public void PlaySeletedVideo()
    {
       for (int videoClipIndex = 0; videoClipIndex <= videoClips.Length; videoClipIndex++)
        {
            videoPlayer.clip = videoClips[videoClipIndex];
            videoPlayer.Play();
        }

这是我的下拉代码

public class VideoDropdown : MonoBehavIoUr
{
    public Dropdown dropdown;
    
    void PopulateDropdown(Dropdown dropdown,VideoClip[] optionsArray)
    {
        List<string> options = new List<string>();
        foreach (var option in optionsArray)
        {
            options.Add(option.name);
        }

        dropdown.ClearOptions();
        dropdown.AddOptions(options);
    }
    private void Awake()
    {
        Dropdown myDropdown = GetComponent<Dropdown>();
        VideoClip[] dropdownVideos = Resources.LoadAll<VideoClip>("Videos") as VideoClip[];
        PopulateDropdown(myDropdown,dropdownVideos);
        
    }

解决方法

c# 中的数组索引基于 0 => 索引从 0theArray.Length - 1

在 C# 中迭代​​数组时你总是想使用

i < theArray.Length

不是

i <= videoClips.Length

最后,你为什么要迭代?您不想遍历整个数组并开始播放所有剪辑......您只想播放一个剪辑,例如

public void PlaySeletedVideo(int selectedIndex)
{
    videoPlayer.clip = videoClips[selectedIndex];
    videoPlayer.Play();
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。