8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

FFmpeg 安装后 Moviepy 没有更新 FFmpeg 版本?

scibuff 2月前

187 0

我正在尝试使用 Unity 中的 C# 检测鼠标是否位于 hud 元素上。我的 hud 元素占据了屏幕右侧约 1/5 的区域。我基本上想要执行 if mouse.x < hud_element....

我正在尝试使用 C# 在 Unity 中检测鼠标是否位于 hud 元素上。

我的 hud 元素占据了屏幕右侧约 1/5 的区域。

我基本上想做

if mouse.x < hud_element.x

如果我单击此处(HUD 面板左侧仅几个像素处的红色 x)

example of click

我有这个功能(我放了几个 Debug.Log 来解决一些问题)

        public bool is_mouse_left_of_hud() 
    {
        Vector3 mousePos = Input.mousePosition;
        float canvas_left = GameObject.Find("Canvas").GetComponent<RectTransform>().offsetMin.x;
        float main_hud_panel_left = GameObject.Find("main_hud_panel").GetComponent<RectTransform>().anchoredPosition.x;
        float info_panel = GameObject.Find("info panel").GetComponent<RectTransform>().offsetMin.x;
        Debug.Log("££££££££");
        Debug.Log("mouse x pos = " + mousePos.x);
        Debug.Log("main_hud_panel_left = " + main_hud_panel_left);
        Debug.Log("canvas offsetmin x = "+canvas_left);
        Debug.Log("info_panel offset = " + info_panel);
        Debug.Log("main hud offsetmin x + canvas offsetmin x + + info_panel offset = " + ( canvas_left +main_hud_panel_left + info_panel));
        if (mousePos.x < (canvas_left + main_hud_panel_left + info_panel))
        {
            return true;
        }
        return false;
    }

然后单击图像上的红色 x 位置,我得到此输出

££££££££
mouse x pos = 1299.395
main_hud_panel_left = 331
canvas offsetmin x = 560
info_panel offset = 0
main hud offsetmin x + canvas offsetmin x + + info_panel offset = 891

下图显示了编辑器 UI 中的 hud 元素。

element from editor ui

ps)我这样做的原因是:我使用内置的 OnMouseDown 函数来检查 GameObjects 中的点击检测。但令人讨厌的是,这通过我的 hud 起作用。所以我需要一个函数来检查鼠标是否在 hud 上。这样我就可以避免通过 hud 点击

这里还有通向“信息面板”的对象树以及检查器中的值

enter image description here

帖子版权声明 1、本帖标题:FFmpeg 安装后 Moviepy 没有更新 FFmpeg 版本?
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由scibuff在本站《ubuntu》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 我一直在玩 MoviePy,最近把一个项目转移到了家里的新电脑上,继续摆弄它。然而,我尝试运行我之前编写的程序(运行

    我一直在摆弄 MoviePy,最近把一个项目转移到了家里的一台新电脑上,继续摆弄它。然而,我尝试运行我之前编写的程序(在另一台电脑上运行得很好),结果如下:

    OSError: MoviePy error: failed to read the first frame of video file ./Gameplay/minecraft-
    gameplay2.mp4. That might mean that the file is corrupted. That may also mean that you are using 
    a deprecated version of FFMPEG. On Ubuntu/Debian for instance the version in the repos is 
    deprecated. Please update to a recent version from the website.
    
    

    阅读错误后,我按照它的指示进行操作,并更新了我的 FFmpeg:

    $ ffmpeg
    ffmpeg version N-115387-g8e27bd025f-20240525 Copyright (c) 2000-2024 the FFmpeg developers
      built with gcc 13.2.0 (crosstool-NG 1.26.0.65_ecc5e41)
      configuration: --prefix=/ffbuild/prefix --pkg-config-flags=--static --pkg-config=pkg-config --cross-prefix=x86_64-ffbuild-linux-gnu- --arch=x86_64 --target-os=linux --enable-gpl --enable-version3 --disable-debug --enable-iconv --enable-libxml2 --enable-zlib --enable-libfreetype --enable-libfribidi --enable-gmp --enable-openssl --enable-fontconfig --enable-libharfbuzz --enable-libvorbis --enable-opencl --enable-libpulse --enable-libvmaf --enable-libxcb --enable-xlib --enable-amf --enable-libaom --enable-libaribb24 --enable-avisynth --enable-chromaprint --enable-libdav1d --enable-libdavs2 --enable-libdvdread --enable-libdvdnav --disable-libfdk-aac --enable-ffnvcodec --enable-cuda-llvm --enable-frei0r --enable-libgme --enable-libkvazaar --enable-libaribcaption --enable-libass --enable-libbluray --enable-libjxl --enable-libmp3lame --enable-libopus --enable-librist --enable-libssh --enable-libtheora --enable-libvpx --enable-libwebp --enable-lv2 --enable-libvpl --enable-openal --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopenmpt --enable-librav1e --enable-librubberband --disable-schannel --enable-sdl2 --enable-libsoxr --enable-libsrt --enable-libsvtav1 --enable-libtwolame --enable-libuavs3d --enable-libdrm --enable-vaapi --enable-libvidstab --enable-vulkan --enable-libshaderc --enable-libplacebo --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxvid --enable-libzimg --enable-libzvbi --extra-cflags=-DLIBTWOLAME_STATIC --extra-cxxflags= --extra-libs='-ldl -lgomp' --extra-ldflags=-pthread --extra-ldexeflags=-pie --cc=x86_64-ffbuild-linux-gnu-gcc --cxx=x86_64-ffbuild-linux-gnu-g++ --ar=x86_64-ffbuild-linux-gnu-gcc-ar --ranlib=x86_64-ffbuild-linux-gnu-gcc-ranlib --nm=x86_64-ffbuild-linux-gnu-gcc-nm --extra-version=20240525
      libavutil      59. 20.100 / 59. 20.100
      libavcodec     61.  5.104 / 61.  5.104
      libavformat    61.  3.104 / 61.  3.104
      libavdevice    61.  2.100 / 61.  2.100
      libavfilter    10.  2.102 / 10.  2.102
      libswscale      8.  2.100 /  8.  2.100
      libswresample   5.  2.100 /  5.  2.100
      libpostproc    58.  2.100 / 58.  2.100
    Universal media converter
    usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...
    

    我继续收到相同的错误。所以我查看了我的 moviepy 使用的版本,它仍然是 4.X。我在某处读到你的 FFmpeg 版本是在第一次使用时确定的,这是有道理的,所以我卸载并重新安装,但仍然收到相同的错误。

    老实说,我现在很迷茫,因为我有最新版本的 FFmpeg,但我仍然从 moviepy 中得到这个:

    >>> import moviepy
    >>> print(moviepy.config.FFPMEG_BINARY)
    ffmpeg : /home/<username>/.local/lib/python3.9/site-packages/imageio_ffmpeg/binaries/ffmpeg-linux64-v4.2.2
    

    关于我做错什么有什么想法吗?

    (注意:我正在使用 Crostini,我相信它使用的是 Ubuntu 或类似 Ubuntu 的 shell)

    谢谢 :)

返回
作者最近主题: