unity3d 在Unity的类中实现接口时出现错误C#(CS0246)

wydwbb8l  于 2023-02-09  发布在  C#
关注(0)|答案(2)|浏览(322)

在Unity中制作游戏时,我逐渐熟悉了OOP的多态性。
我尝试使用一个接口,将参加一个损害系统.
下面是接口代码:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public interface IDamageable 
{
    int Health { get; set;}
    void Damage();
}

下面是一个骷髅敌人的代码,它继承自父类Enemy,并且必须实现IDamageable接口:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Skeleton : Enemy, IDamageable
{
    public int Health { get; set; }

    public override void Init()
    {
        base.Init();
        Health = base.health;
    }

    public void Damage()
    {
    }
}

因此,Unity中的控制台不会显示任何有关接口的错误消息。
但是VS代码将IDamageable保留为下划线,并显示错误CS 0246:
未能找到类型或命名空间名称“”IDamageable "“(是否缺少using指令或程序集引用?”“
看起来VS代码甚至没有看到接口-也不能在智能感知中找到接口。
我试着为其他一些敌人实现接口,但情况是一样的:Unity控制台中没有错误,并且该接口也由VS代码标记。
抱歉,这个问题很蠢!

atmip9wb

atmip9wb1#

你必须重新编译脚本,看看有什么问题。如果问题仍然存在,删除脚本,重新编写它。最有可能的是有一些BS与汇编

jecbmhm3

jecbmhm32#

好吧,这花了时间,但我找到了这个问题的解决方案。
问题是在这种情况下命名空间不是必需的。我确实读过关于命名空间的书,但还不确定如何使用它们。而且我所学习的课程也不使用命名空间。
所以关于这个问题。由于错误的出现-它只出现在VS代码中,我决定做以下事情:
1.在Unity中输入首选项-〉外部工具
1.在字段中看到外部脚本编辑器我有按文件扩展名打开
1.已将该字段更改为Visual Studio代码
1.按下重新生成项目文件
VS代码中的错误CS 0246消失,接口实现成功。

相关问题