开发平台:Unity 2022
编程平台:Visual Studio 2022
编程语言:CSharp 6.0
 

问题描述


  • Assets/路径/Class.cs(91,32): error CS1061: ClassName’ does not contain a definition for ‘方法名’ and no accessible extension method ‘方法名’ accepting a first argument of type ‘脚本名’ could be found (are you missing a using directive or an assembly reference?)

翻译参考:

  • Assets/路径/Class.cs(91,32):错误 CS1061:“ClassName”不包含“Method()”的定义,并且找不到接受“Class”类型的第一个参数的可访问扩展方法“Method()”(您是否缺少 using 指令或程序集引用?
     

解决方法 | 针对个人编写Class


  • 检查 Class 内是否包含 Method 方法。原因:引用方法名称错误 或 未更新此方法至该类中
  • 使用其他存在该方法名的类引用作为替代

 

解决方法 | 针对三方编写Class


示例程序

#if UNITY_EDITOR
	public void FromXML(string text)
	{
	 	//....
	}
#endif

  如上所示,FromXML 被宏定义限制在 Unity Editor 平台上可用。在其他平台上不可使用。实际开发功能中,期望一部分数据可通过本地配置文件形式加载,以方便后续修改数据。结果造成 Unity Build工程过程中无法成功编译至目标平台造成问题报错。

注意:该三方类库的使用者为非类开发者。

  • 解决一:寻求类库作者询问相关替代方法
  • 解决二:修改类目标平台。如上示例 删除 #if...#endif 宏定义。但仅在部分情况下可用。
  • 解决三:使用其他三方库 或 自定库 平替开发

更多推荐