1. virmint 2025-12-09

    你好,《节奏医生》的开发组目前正忙于修复新发售版本中的问题和调整细节,同时他们也需要一些休息时间,可能需要过一阵子才能响应非紧急的咨询和请求。未来有机会的话我们会问问开发者能否做一些技术分享~

    • DemonLord- 2025-12-09

      @virmint:感谢,非常理解他们的幸苦,能研究出这么夸张的技术,更别提还有如此优秀的体验。同为开发者,我现在都在想他们是不是应该去中海医院去接受几周的节奏疗法。也十分期待能看见他们在休息过后,能分享各种有趣的幕后故事。到时候恐怕还得麻烦Indienova的发行老师看看情况,能不能帮忙联系一下了。

  2. Sailing航 2025-12-09

    盲猜dll里调用创建窗口移动窗口这些windows native api
    然后unity端用多个camera render到texture
    把unity里渲染完的texture传递到dll部分

    • DemonLord- 2025-12-10

      @Sailing航:我想思路上大概是这样,但是重要的是——他们怎么做到的。在Unity里哪怕新建一个空白窗口都很困难,我完全无法想象要怎么样才能实现这个功能。

    • Sailing航 2025-12-10

      @DemonLord-:
      unity渲染的texture通过dll暴露的接口set到dll端,
      dll端只负责用gl相关的函数把texture展示出来就行
      至于创建空白窗口之类的则是统一通过dll端调用windows native api
      dll只需要暴露给c#诸如 创建窗口,移动窗口,销毁,放大缩小的接口就行
      之后就可以在c#里去做所有操作了
      举例子 dll暴露如下接口给c#:
      my_set_texture(void*pixels)
      my_window_init
      my_window_destroy
      就可以自由在unity里写逻辑了
      最终的结构是
      unity渲染多个camera target->把每个target最终渲染的texture序列化成像素信息传递给dll->dll把这些像素画在自己管理的窗口里

      最近由 Sailing航 修改于:2025-12-10 09:17:00
    • DemonLord- 2025-12-11

      @Sailing航:十分感谢您的指教!
      我以前使用过system.Windows.forms.dll在mono脚本里直接创建新的窗口,但是我发现用这种办法创建新的窗口会直接崩溃。按照您说的,看起来应该是额外去编写一个dll来调用api才对,节奏医生估计也是这样做的。
      我在编写dll方面完全没有任何经验,之前也不敢去尝试,也因此才觉得这个效果不可能实现。
      太感谢您的指点了,我得去研究下dll的编写了。

    • Sailing航 2025-12-11

      @DemonLord-:不客气,欢迎一起交流技术

您需要登录或者注册后才能发表评论

前往登录页面