无法将Unity连接到Visual Studio

时间:2018-08-23 14:55:56

标签: c# visual-studio unity3d

我正在尝试将Unity应用于我的游戏设计课程,但似乎无法使代码正常工作。我怀疑这是因为Visual Studio(我在上面编写代码的地方)未正确连接到Unity,这就是我认为的原因:

一方面,每当我尝试将代码放在对象上时,它都会打印出此错误:

  

无法添加脚本行为CallbackExecutor。该脚本需要从MonoBehaviour派生!

尽管事实是没有代码CallbackExecutor,而且脚本显然确实源自MonoBehaviour

第二,当我将代码加载到Visual Studio上时,出现以下错误消息:

  

C:\ Users \ cemya \ Documents \ D&D Roguelight Project \ Assembly-CSharp.csproj:错误:无法加载项目文件。找不到文件“ C:\ Users \ cemya \ Documents \ D&D Roguelight Project \ Assembly-CSharp.csproj”。 C:\ Users \ cemya \ Documents \ D&D Roguelight Project \ Assembly-CSharp.csproj

问题是我不知道为什么它没有连接。没有导入该软件包的选项(这意味着它已经导入),并且我确实有一个Unity软件包。

我正在使用Visual Studios 2017(特别是,我大部分时间都在使用2d设置),Unity版本2018.2.4f1,该程序包称为Visual Studio 2017 Tools for Unity [Experimental],这就是当我开始为Unity设置编码时自动下载了。由于我是自动获得此版本的,所以我认为这应该是一个普遍的问题,但是我似乎找不到真正的答案(我什至在Unity表单上问过!)

如果您认为有帮助,我可以向您显示代码。

更新:我刚刚将Unity更新为2018.2.5f1,并使用具有实际代码的代码对其进行了测试。所发生的一切只是错误消息的名称不同:

  

无法添加脚本行为TMP_CoroutineTween。该脚本需要从MonoBehaviour派生!

此外,如果有帮助,以下是我正在测试的代码:

public class RollScript : MonoBehaviour 
{
    Random rand = new Random();
    int r = 20;
    int m = 5;

    // Use this for initialization
    void Start () 
    {
        int rolling = DieRoll(r, m);
        print(rolling);
    }

    // Update is called once per frame
    void Update () 
    {       
    }

    int DieRoll (int roll, int mod)
    {
        int get = rand.next(1, roll);
        int result = get + mod;
        return result;
    }
}

更新2:我已经检查了Visual Studio,并且那里不再存在错误消息,所以这是一种改进。

更新3:我创建了一个新项目,但没有遇到任何问题。我想问题是代码与旧版本的连接。

1 个答案:

答案 0 :(得分:0)

few places on internet中已提到此Can't add script behaviour TMP_CoroutineTween. The script needs to derive from MonoBehaviour!错误,但没有令人满意的答案。这似乎是关于此的唯一StackOverflow问题。

怀疑,当您向游戏对象添加脚本时出现未解决的编译时错误时,就会发生这种情况。我现在遇到了这个问题,并且在纠正错误之后,我能够添加脚本。但是,我尝试通过添加语法错误然后添加脚本来确认这一点,但是我仍然没有收到Can't add script behavior错误。所以这很奇怪,但是如果您遇到该错误,我建议您修复所有编译时错误,然后看看是否可行。 (无论是否奏效,请在结果中回答此问题。)