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

Unity集成OpenAI GPT API封装库时IAsyncEnumerable冲突问题

Unity项目集成OpenAI API时IAsyncEnumerable类型冲突解决方法

问题背景

  • 环境:Unity 2022.2.6f1 2D项目,API兼容级别为.NET Standard 2.1
  • 集成目标:OpenAI-API-dotnet v1.6封装库,已导入Newtonsoft.Json 12.0.1及OpenAI_API文件夹
  • 核心错误:IAsyncEnumerable类型在System.Interactive.Async和netstandard中重复定义,报错信息:

Assets\3rd Party\OkGoDoIt\OpenAI_API\Completions\CompletionEndpoint.cs(153,10): error CS0433: The type 'IAsyncEnumerable' exists in both 'System.Interactive.Async, Version=3.0.1000.0, Culture=neutral, PublicKeyToken=94bc3704cddfc263' and 'netstandard, Version=2.1.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'

  • 已尝试无效操作:切换API兼容级别到.NET Framework,修改.csproj设置别名但被Unity自动重置

解决方案

1. 移除冗余的System.Interactive.Async依赖

  • .NET Standard 2.1原生支持IAsyncEnumerable,无需额外依赖System.Interactive.Async库。找到项目中所有相关dll文件(通常在Assets/Plugins或第三方库子文件夹内),直接删除。
  • 检查OpenAI_API文件夹内是否包含该dll,一并移除。

2. 重置API兼容级别并刷新项目

  • 打开Edit > Project Settings > Player,在Other Settings > Configuration中,将API Compatibility Level重新设置为.NET Standard 2.1。
  • 执行Assets > Reimport All,等待项目重新加载,确保配置生效。

3. 修正代码中的命名空间引用

  • 打开报错的CompletionEndpoint.cs文件,定位到第153行的IAsyncEnumerable使用位置。
  • 删除代码中可能存在的using System.Interactive.Async;语句,替换为using System.Collections.Generic;,确保使用.NET Standard 2.1原生的IAsyncEnumerable类型。

4. 用Assembly Definition隔离第三方库

  • 在OpenAI_API文件夹根目录右键创建Assembly Definition文件(Create > Assembly Definition),命名为OpenAI_API。
  • 在Inspector面板中,将该Assembly的Api Compatibility Level设置为.NET Standard 2.0,让库以兼容环境编译,避免和主项目的.NET Standard 2.1冲突。
  • 确保主项目Assembly引用这个新创建的Assembly Definition。

5. 升级OpenAI库到最新版本

  • 旧版本的OpenAI-API-dotnet对.NET Standard 2.1兼容性较差,尝试升级到官方最新版本(注意确认版本对Unity的支持性),新版本大概率已修复类型冲突问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 09:02:41