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

UnityWebPlayer与Winform之间的通信底层机制是什么?

WinForms嵌入UnityWebPlayer的双向通信方案

我最近开发了一款嵌入UnityWebPlayer模块的WinForms应用,最开始想着用Socket来实现两者的通信,折腾了好一阵才发现,UnityWebPlayer本身就提供了更便捷的双向通信API,完全没必要绕远路!

从WinForm向UnityWebPlayer发送消息

直接调用UnityWebPlayer控件的SendMessage方法就能轻松实现,代码示例如下:

// 在WinForm中调用
axUnityWebPlayer1.SendMessage( "Sphere", "Down", null );

简单解释下参数:

  • 第一个参数"Sphere"是Unity场景中目标对象的名称
  • 第二个参数"Down"是该对象挂载的脚本中定义的方法名
  • 第三个参数是要传递给该方法的参数,这里传null表示无参数

从UnityWebPlayer向WinForm反向通信

如果需要Unity主动给WinForm发消息,可以通过订阅控件的OnExternalCall事件来实现,对应的事件处理方法示例:

private void axUnityWebPlayer1_OnExternalCall_1(object sender, AxUnityWebPlayerAXLib._DUnityWebPlayerAXEvents_OnExternalCallEvent e)
{
    // 在这里处理Unity传过来的消息,e参数中包含了Unity发送的内容
}

在Unity端,只需要调用Application.ExternalCall()方法就能触发这个事件,把消息传递给WinForm。

内容的提问来源于stack exchange,提问作者choxsword

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 06:25:45