Unity的画面高质量传输( FMETP STREAM 实时画面传输案例)

该博客介绍了如何在Unity中实现实时画面传输。通过使用FMETPSTREAM插件,创建Server和Game物体挂载相应脚本,再为Client设置相应配置,可以在同一局域网内将小屏内容传输到大屏。关键步骤包括在Server和Client两端配置FMNetworkManager和相应的编码、解码脚本,并在Client端的FMNetworkManager中指定传输目标设备。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • Unity中实现画面传输首先要保证在同一个局域网下,其次,用到的FMETP STREAM插件进行画面传输的时候不分Server端和Client端,下面我们看一个案例
  • 用大屏和小屏举例,我们要实时把小屏内容传输到大屏上,首先建两个空物体Server和Game,分别挂上FM Network Manager.cs和Game View Encoder.cs,然后进行配置ServeS
  • Game
  • 接下来我们给大屏建两个空物体Client和Game,分别挂上FM Network Manager.cs和Game View Decoder.cs,然后进行配置Client
    Game
  • 在这里我们可以指定自己传输的画面到某一台设备上,我们需要在Client上的FM Network Manager.cs脚本中进行配置
    找到 Init() 方法进行如下修改,即可实现指定设备的画面传输
    void Init()
    {
        if (NetworkType == FMNetworkType.Server)
        {
            Server = this.gameObject.AddComponent<FMServer>();
            Server.Manager = this;

            Server.ServerListenPort = ServerSettings.ServerListenPort;
            Server.ClientListenPort = ClientSettings.ClientListenPort;

            Server.UseAsyncListener = ServerSettings.UseAsyncListener;
            Server.UseMainThreadSender = ServerSettings.UseMainThreadSender;
        }
        else
        {
            Client = this.gameObject.AddComponent<FMClient>();
            Client.Manager = this;

            Client.ServerListenPort = ServerSettings.ServerListenPort;
            Client.ClientListenPort = ClientSettings.ClientListenPort;

            Client.UseMainThreadSender = ClientSettings.UseMainThreadSender;
            Client.AutoNetworkDiscovery = ClientSettings.AutoNetworkDiscovery;
            if (ClientSettings.ServerIP == "") ClientSettings.ServerIP = XMLData.Read()[1];
            if (!Client.AutoNetworkDiscovery) Client.ServerIP = ClientSettings.ServerIP;

            NetworkTransform = new FMNetworkTransform[NetworkObjects.Length];
            for (int i = 0; i < NetworkTransform.Length; i++)
            {
                NetworkTransform[i] = new FMNetworkTransform();
                NetworkTransform[i].position = Vector3.zero;
                NetworkTransform[i].rotation = Quaternion.identity;
                NetworkTransform[i].localScale = new Vector3(1f, 1f, 1f);
            }
        }

        Initialised = true;
    }

以上就是本次案例实现的画面传输的全部内容

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值